OpenCV之形态学滤波总结

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)