图像的卷积操作是图像处理中最常用的操作之一,一般是用核算子来实现卷积操作。什么叫核算子?请移步博文https://blog.youkuaiyun.com/lehuoziyuan/article/details/84101788
OpenCV用函数filter2D来实现对图像或矩阵的卷积操作。这个函数本质上做的是协相关操作,但是当核算子是对称的,则协相关操作也是卷积操作,计算公式如下。
当核算子不是对称的时候,则需要把核算子旋转180度,然后再把核算子的锚点改为(kernel.cols - anchor.x - 1, kernel.rows - anchor.y - 1),这样做的运算就是卷积运算了。
函数filter2D的原型如下:
C++: void filter2D(InputArray src, OutputArray dst, int ddepth, InputArray kernel, Point anchor=Point(-1,-1), double delta=0, int borderType=BORDER_DEFAULT )
参数意义说明:
src:源矩阵或图像
dst:输出矩阵或图像
ddepth:输出图像的深度。如果这个值是负者,那么输出图像的深度和源图像一致。可以是如下的组合:
src.depth() = CV_8U, ddepth = -1/CV_16

本文介绍了如何使用OpenCV的filter2D函数进行图像卷积操作,强调了该函数实际上执行的是协相关操作。当核矩阵对称时,两者等价。文章详细解析了filter2D函数的参数,并提供了示例代码,说明了如何通过调整核矩阵实现低通滤波效果,从而消除图像细节。
最低0.47元/天 解锁文章
2688

被折叠的 条评论
为什么被折叠?



