OpenCV之形态学滤波总结
1、膨胀(dilate)
操作:求局部最大值操作。
API函数:C++ void dilate(参数表)。
2、腐蚀(erode)
操作:求局部最小操作。
API函数:C++ void erode(参数表)
3、开运算
操作:先腐蚀再膨胀。
API函数:C++ dst=open(src,element)=dilate(erode(src,element))。
效果:消除小物体,在前纤细点分离为例,并且在平滑大物体的边界的同时不明显改变其面积。
4、闭运算
操作:先膨胀再腐蚀。
API函数:C++ dst=close(src,element)=erode(dilate(src,element))。
效果:排除小型黑洞。
5、形态学梯度
操作:膨胀图与腐蚀图之差。
API函数:C++ dst=morph-grad(src,element)=dilate(src,element)-erode(src,element)。
效果:保留物体边缘轮廓。
6、顶帽
操作:原图与开运算结果图之差。
API函数:C++ dst=tophat(src,element)=src-open(src,element)。
效果:突出了比原图轮廓周围的区域更明亮的区域,且与核有关,常用来分离比邻近点亮一些的斑块,大背景,微小物体比较有规律时,可用来提取背景。
7、黑帽
操作:闭运算结果图与原图之差。
API函数:C++ dst=blackhat(src,element)=close(src,element)-src。
效果:突出了比原图轮廓周围的区域更暗的区域,且与核有关,常用来分离比邻近带你暗的一些斑块。
** 注:3-7操作,都可以调用morphologyEx()来实现,不同的参数可实现不同的操作。**
本文深入探讨OpenCV中形态学滤波的七大核心操作:膨胀、腐蚀、开运算、闭运算、形态学梯度、顶帽及黑帽。通过详细解析各操作原理与应用场景,帮助读者掌握如何利用这些技术进行图像处理,如消除噪声、提取边缘和分离目标等。
555

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



