OpenCV4入门教程032:腐蚀与膨胀
索引地址:系列索引
OpenCV图片默认背景色为黑色
腐蚀的作用是消除物体边界点,使目标缩小,可以消除小于结构元素的噪声点;
膨胀的作用是将与物体接触的所有背景点合并到物体中,使目标增大,可添补目标中的空洞。
简单来说,腐蚀会放大黑色区域使图片变黑,膨胀会缩小黑色区域使图片变白。
腐蚀
腐蚀函数:
1 |
|
- InputArray类型的src,输入图像,即源图像,填Mat类的对象即可。图像通道的数量可以是任意的,但图像深度应为CV_8U,CV_16U,CV_16S,CV_32F或 CV_64F其中之一。
- OutputArray类型的dst,即目标图像,需要和源图片有一样的尺寸和类型。
- InputArray类型的kernel,膨胀操作的核。若为NULL时,表示的是使用参考点位于中心3x3的核。
- Point类型的anchor,锚的位置,其有默认值(-1,-1),表示锚位于中心。
- iterations,迭代使用erode()函数的次数,默认值为1。
- borderType,用于推断图像外部像素的某种边界模式。注意它有默认值BORDER_DEFAULT。
- borderValue,当边界为常数时的边界值,有默认值morphologyDefaultBorderValue,一般我们不用去管他。需要用到它时,可以看官方文档中的createMorphologyFilter函数得到更详细的解释。
腐蚀膨胀操作需要的核获取腐蚀固定,调用函数获取就行了。
使用erode函数,一般我们只需要填前面的三个参数,后面的四个参数都有默认值。
测试代码:
1 |
|
腐蚀结果:
可以看出图片中黑色像素增加了。
膨胀
1 |
|
参数为输入,输出,处理核等等,和腐蚀类似。
测试代码:
1 |
|
结果如下:
结果中白色像素增加,整体变亮。
动态显示
通过滑动栏动态调整参数
1 |
|
代码没什么难点,就是函数整合。需要了解前面所说的回调函数。当然了C++不会的话我也没办法。
效果在B站中:腐蚀膨胀动态效果
OpenCV4入门教程032:腐蚀与膨胀
https://blog.jackeylea.com/opencv/opencv-erode-dilate/