对图像进行分析时,往往是把图像进行分割,并用其二值图像进行分析,对二值图像首先要提取目标物,然后对不同目标物的特征差异进行描述与计算,最后获得所需要分析的结果
在提取目标物的过程中存在以下难题:
- 提取的目标中存在伪目标
- 在多目标的情况下存在粘连和断裂
- 多个目标形态不同
1 膨胀与腐蚀运算
要解决上述问题,就需要运用数学形态学的一些方法,腐蚀与膨胀是形态学处理的基础,许多形态学算法都是在这两种运算的基础上进行拓展的。
1.1 膨胀运算
1.1.1 定义
集合
A被集合
B膨胀,定义为:
A⊕B={ z∣(B^)z∩A̸=∅ }其中集合
B也称为结构元素;
(B^)z表示
B的反射平移
z后得到的新集合
于是该定义式解释为:若
(B^)z能击中
A,则其所有
z点组成的集合称为
A对
B的膨胀
实例:
1.1.2 不同结构元素对原始图像的影响
不同结构元素长宽的设计会使原图像膨胀后的形态各不相同,例如下图展示了长宽分别为
4d×4d和
d×4d的结构元素对原始图像进行膨胀运算后的结果:
1.1.3 应用场景
膨胀运算的一些经典应用:
1.1.3.1 桥接裂缝
1.1.3.2 填充孔洞
1.2 腐蚀运算
1.2.1 定义
集合
A被集合
B腐蚀,定义为:
A⊖B={ z∣(B)z⊆A }其中集合
B也称为结构元素;
(B^)z表示
B平移
z后得到的新集合
于是该定义式解释为:若
(B)z仍包含于
A中,则其所有
z点组成的集合称为
A对
B的腐蚀
腐蚀的结果表现在原图的外围被剥除:
1.2.2 不同结构元素对原始图像的影响
不同结构元素长宽的设计会使原图像腐蚀后的形态各不相同,例如下图展示了长宽分别为
4d×4d和
d×4d的结构元素对原始图像进行腐蚀运算后的结果:
这里要注意的是,若结构元素
B是对称的,即
B^=B,则原图
X被
B、
B^腐蚀的结果一样;若结构元素
B是非对称的,则原图
X被
B、
B^腐蚀的结果不同
1.3 膨胀与腐蚀运算的性质
1.3.1 对偶性
膨胀与腐蚀运算可以相互转换,对目标进行膨胀就是对背景进行腐蚀,反之同理
(X⊖B)∁=X∁⊕B^∁
(X⊕B)∁=X∁⊖B^∁
1.3.2 互换性
膨胀运算具有互换性,即结构元素对原图进行操作的顺序可以互换,但腐蚀运算不具有互换性
(X⊕B1)⊕B2=(X⊕B2)⊕B1
(X⊖B1)⊖B2̸=(X⊖B2)⊖B1
1.3.3 组合性
若结构元素可分解,即有
B=B1+B2,则有:
X⊕B=X⊕(B1⊕B2)=(X⊕B1)⊕B2在结构元素较大时可以将之分解以提高运算速度
2 开运算与闭运算
膨胀与腐蚀运算对目标物的后期处理有非常好的作用,但同时却改变了原目标的大小。考虑到膨胀与腐蚀是一对对偶运算,将膨胀与腐蚀运算相结合,便构成了开运算与闭运算
2.1 开运算
使用结构元素
B对集合
X进行开运算,定义为:
A∘X=(A⊖B)⊕B常见应用:
- 消除细小对象
- 消除微小连粘
- 平滑目标边缘
例如:
在进行开运算的过程中需要注意的是,若结构元素
B非对称,则做膨胀运算时应用
B的对称集
B^,否则开运算结果将发生平移
2.2 闭运算
使用结构元素
B对集合
X进行闭运算,定义为:
A∙X=(A⊕B)⊖B常见应用:
- 填充对象内部细小空洞
- 连接邻近对象
- 平滑目标边缘
例如:
同样的,若结构元素
B非对称,则做膨胀运算时应用
B的对称集
B^,否则闭运算结果将发生平移
2.3 开闭运算的性质
2.3.1 对偶性
开闭运算可以相互转换,对目标进行开运算就是对背景进行闭运算,反之同理
OPEN(X)∁=CLOSE(X∁)
CLOSE(X)∁=OPEN(X∁)
2.3.2 开运算性质
- 缩小性:
X∘B是
X的子集
- 单增性:若
X1是
X2的子集,则
X1∘B是
X2∘B的子集
- 单运算性:
(X∘B)∘B=X∘B
2.3.3 闭运算性质
- 扩大性:
X是
X∙B的子集
- 单增性:若
X1是
X2的子集,则
X1∘B是
X2∘B的子集
- 单运算性:
(X∙B)∙B=X∙B