如何利用filter2D函数进行图像卷积
1、在OpenCV说明文档中可以看到函数的定义及参数意义
七个参数分别表示:(原图,目标图,图像深度,核函数,模板中心点,delta,边界类型)
一般卷积操作只涉及到前五个参数。

2、首先需要载入进行卷积操作的图像并所它转换为浮点类型
g_srcImage = imread(".\\sourcePicture\\3.bmp");
g_srcImage.convertTo(g_srcImage, CV_32F);

3、根据需要定义自己的卷积核函数,下面定义了一个3*3的核函数,中心点为5
Mat myKnernel = (Mat_<double>(3, 3) << 0, -1, 0, -1, 5, -1, 0, -1, 0);

4、编写卷积函数,并填写相应参数
filter2D(g_srcImage, dstImage, -1, myKnernel, Point(-1, -1), 0, BORDER_DEFAULT);
其中-1表示通道数与原图通道数相同

5、将目标图像转换为无符号字符型并显示经过卷积后的图像
dstImage.convertTo(dstImage, CV_8UC3);
imshow("after convolution", dstImage);

6、上面的全部代码如下图所示

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
阅读量:90
阅读量:20
阅读量:76
阅读量:40
阅读量:133