第6章 图像处理
6.3 形态学滤波(1):腐蚀与膨胀
6.3.1 形态学概述
1.数学形态学(Mathematical morphology):建立在格论和拓扑学基础上的图像分析学科,是数学形态学图像处理的基本理论。
2.基本运算:二值腐蚀和膨胀、二值开闭运算、骨架抽取、极限腐蚀、击中击不中变换、形态学梯度、Top-hat变换、颗粒分析、流域变换、灰值腐蚀和膨胀、灰值开闭运算、灰值形态学梯度等
3.基本形态学操作:膨胀(dilate)、腐蚀(erode)
6.3.2 膨胀
1.求局部最大值的操作,数学角度:将图像与核进行卷积,即计算核覆盖区域的像素点最大值,并把最大值赋值给参考点指定像素,这样就会使图像中高亮区域逐渐增长。
2.核:带有一个参考点(锚点,anchor point),任意形状大小的区域。
3.膨胀数学表达式:
4.封装函数:dilate函数
5.函数原型:
void dilate(InputArray src,OutputArray dst,InputArray kernel,Point anchor=Point(-1,-1),int iteration=1,int borderType=BORDER_CONSTANT,const Scaler& borderValue=morphologyDefaultBorderValue());
6.参数说明:
(1)输入图像
(2)目标图像
(3)膨胀操作的核,为NULL时表示使用参考点位于中心3*3的核,常使用getStructuringElement返回指定形状和大小的结构元素
1)形状:矩型:MORPH_RECT,交叉型:MORPH_CROSS,椭圆形:MORPH_ELLIPSE
2)内核尺寸
3)锚点位置
4)调用示例:
Int g_nStructElementSize = 3;
Mat element = getStructuringElement(MORPH_RECT, Size(2*g_nStructuringElement+1, 2*g_nStructElementSize+1), Point(g_nStructElementSize,g_nStructElementSize ));
(4)锚的位置,默认(-1,-1)表示位于中心
(5)迭代使用dilate()函数的次数,默认1
(6)用于推断图像外部像素的某种边界模式,默认值BORDER_DFALUT
(