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()来实现,不同的参数可实现不同的操作。**