C++ OpenCV 计算机视觉入门精通与实践
https://www.bilibili.com/cheese/play/ss14962
vs2013+opencv3.2
// 图像锐化
#include "stdafx.h"
#include <iostream>
#include <opencv2/opencv.hpp>
using namespace std;
using namespace cv;
// 二维卷积方法:边缘锐化卷积核
int func1();
// 增强图像中边缘部分的明暗变化幅度来提高视觉效果的锐化算法
int func2();
int main(int argc, char* argv[])
{
func2();
return 0;
}
int func1(){
Mat src_img = imread("girl.jpg");
Mat out_img;
//边缘锐化卷积核
Mat kernal = (Mat_<char>(3, 3) << 0, -1, 0, -1, 5, -1, 0, -1, 0);
filter2D(src_img, out_img, -1, kernal);
imshow("原图", src_img);
imshow("边缘锐化", out_img);
waitKey();
return 0;
}
int func2(){
Mat src_img = imread("girl.jpg");
Mat blur_img, result1, result2, result3, result4;
GaussianBlur(src_img, blur_img, Size(3, 3), 0);
Laplacian(src_img, result1, -1, 1, 1.0, BORDER_DEFAULT);
// 通过调节第4个参数可以控制锐化的程度
addWeighted(blur_img, 1.0, result1, -0.5, 0, result2);
addWeighted(blur_img, 1.0, result1, -1, 0, result3);
addWeighted(blur_img, 1.0, result1, -1.5, 0, result4);
imshow("原图", src_img);
imshow("边缘锐化轻", result2);
imshow("边缘锐化中", result3);
imshow("边缘锐化重", result4);
waitKey();
return 0;
}
方法1结果
方法2结果
C++ OpenCV 计算机视觉入门精通与实践
哔哩哔哩_bilibili