卷积概念自定义线性滤波


自定义卷积模糊

代码演示

卷积概念:

              卷积是图像处理中的一个操作,是kernel在图像上的每个像素上的操作

kernel本质上是一个固定大小的矩阵数组,其中心点成为锚点

卷积如何工作的:把kernel放到像素数组之上,求锚点周围覆盖的像素乘积之和(包括锚点) 用来替换锚点覆盖下像素点值成为卷积处理 数学表达式如下

自定义线性滤波





常见算子:自定义线性滤波




#include<opencv2\opencv.hpp>
#include<highgui\highgui.hpp>
#include<math.h>
#include<core\core.hpp>
#include<iostream>
using namespace std;
using namespace cv;
int main(int argc, char** argv) {
Mat src, dst1,dst2;
int ksize = 0;
src = imread("1.jpg");
if (src.empty())
{
printf("could not load image...");
return -1;
}
char INPUT_WIN[] = "input image";
char OUTPUT_WIN[] = "result image";
namedWindow(INPUT_WIN, CV_WINDOW_AUTOSIZE);
namedWindow(OUTPUT_WIN, CV_WINDOW_AUTOSIZE);
imshow(INPUT_WIN, src);
//X方向  提取边缘
Mat  kernel1 = (Mat_<int>(2, 2) << 1, 0, 0, -1);
filter2D(src, dst1, -1, kernel1, Point(-1, -1));
imshow(OUTPUT_WIN, dst1);
Mat  kernel2 = (Mat_<int>(2, 2) << 0, 1, -1, 0);
filter2D(src, dst2, -1, kernel2, Point(-1, -1));
imshow("Y方向", dst2);
waitKey(0);
return 0;
}

自定义卷积模糊:


自定义线性滤波

相关文章: