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);
运行效果:
腐蚀效果如下:
从效果看,膨胀使图变明亮,腐蚀使图变得暗沉