OPENCV入门(3)

不足之处,欢迎指正!

1.概念

图像的形态学操作(腐蚀,膨胀,开,闭),基于集合论基础上的形态学数学,一般作用于二值化图

膨胀dilate将图像的轮廓加以膨胀。一种卷积操作,将目标像素的值替换为卷积核覆盖区域的局部最大值,通常,膨胀所采用的核是一个四边形或圆形的实心核,其锚点在中心。

腐蚀erode:物体的边缘加以腐蚀。核覆盖范围内的局部最小值。

总的说,膨胀扩张了明亮区域,腐蚀缩减了明亮区域,膨胀填充凹面,腐蚀消除凸面。

2.应用:

  • 消除噪声
  • 分割独立的图像元素,以及连接相邻的元素。
  • 寻找图像中的明显的极大值区域或极小值区域。

3.示例

getStructuringElement(int shape, Size ksize, Point anchor)  

  • 形状 (MORPH_RECT \MORPH_CROSS \MORPH_ELLIPSE) 
  • 大小  :中心像素点,奇数
  • 锚点 默认是Point(-1, -1)意思就是中心像素

dilate(src, dst, kernel)

erode(src, dst, kernel)

膨胀部分代码:

    int kernel = element_size*2 + 1;
    Mat  structureElement = getStructuringElement(MORPH_RECT, Size(kernel, kernel), Point(-1, -1));
    Mat dst;
    dilate(src, dst, structureElement, Point(-1, -1),1);

运行效果:

OPENCV入门(3)

 腐蚀效果如下:

OPENCV入门(3)

从效果看,膨胀使图变明亮,腐蚀使图变得暗沉