Ch9 形态学图像处理
blog点此处!<---------
四大算子相应性质。
腐蚀、膨胀、开闭之间的含义、关系
文章目录
- Ch9 形态学图像处理
- 预备知识(Preliminaries)
- 膨胀和腐蚀(Dilation and Erosion)
- 腐蚀
- 膨胀
- 膨胀与腐蚀的对偶关系
- 开闭操作(Opening and Closing)
- 开运算
- 闭运算
- 性质
在二值图像中,所讨论的集合是二维整数空间 Z 2 \mathbb{Z}^{2} Z2中的成员。 Z 2 \mathbb{Z}^{2} Z2空间中,集合的每个元素都是一个二维向量(元组),元组的坐标是图像中目标(前景)像素的坐标。
灰度数字图像可以表示为各个集合,这些集合的分量位于 Z 3 \mathbb{Z}^{3} Z3空间中:前两个值是坐标,第三个值对应离散灰度值。
在图像处理中,我们使用两类像素集合的形态学:目标元素和结构元(SE)。目标定义为前景像素集合,结构元按照前景像素和背景像素确定。
预备知识(Preliminaries)
集合的元素关系
设 A A A是 Z 2 \mathbb{Z}^{2} Z2中的一个集合。如果 a = ( a 1 , a 2 ) a=(a_{1},a_{2}) a=(a1,a2)是 A A A的一个元素,那么我们写作 a ∈ A a\in A a∈A。
类似地,如果 a a a不是 A A A的元素,我们写作 a ∉ A a\notin A a∈/A。
没有元素的集合称为空集,用符号 ∅ \varnothing ∅表示。
集合间的关系
如果集合 A A A的每个元素也是集合 B B B的元素,那么 A A A被称为 B B B的子集,记为 A ⊆ B A\subseteq B A⊆B。
两个集合 A A A和 B B B的并集,记为 C = A ∪ B C = A\cup B C=A∪B,是属于 A A A、 B B B或两者的所有元素的集合。
两个集合 A A A和 B B B的交集,记为 D = A ∩ B D = A\cap B D=A∩B,是属于 A A A和 B B B两者的所有元素的集合。
两个集合 A A A和 B B B如果没有共同元素,则称它们是不相交或互斥的。在这种情况下, A ∩ B = ∅ A\cap B=\varnothing A∩B=∅。
集合的运算
集合 A A A的补集是不包含在 A A A中的元素的集合, A c = { ω ∣ ω ∉ A } A^{c}=\{\omega|\omega\notin A\} Ac={ω∣ω∈/A}。
两个集合 A A A和 B B B的差,记为 A − B A - B A−B,定义为 A − B = { ω ∣ ω ∈ A , ω ∉ B } = A ∩ B c A - B=\{\omega|\omega\in A,\omega\notin B\}=A\cap B^{c} A−B={ω∣ω∈A,ω∈/B}=A∩Bc。
集合的变换:反射和变换都是相对于集合的原点定义的。
集合 B B B的反射,记为 B ^ \hat{B} B^,定义为 B ^ = { ω ∣ ω = − b , b ∈ B } \hat{B}=\{\omega|\omega = -b,b\in B\} B^={ω∣ω=−b,b∈B}。
集合 A A A通过点 z = ( z 1 , z 2 ) z=(z_{1},z_{2}) z=(z1,z2)的平移,记为 ( A ) z (A)_{z} (A)z,定义为 ( A ) z = { c ∣ c = a + z , a ∈ A } (A)_{z}=\{c|c = a + z,a\in A\} (A)z={c∣c=a+z,a∈A}。
膨胀和腐蚀(Dilation and Erosion)
膨胀扩展集合的组成部分、腐蚀缩小集合的组成部分。
腐蚀
一些通俗的解释:腐蚀的过程可以想象成图像中的目标“收缩”或“缩小”。具体来说,只有当结构元 B 完全覆盖在 A 的某个部分时,位置 z 才会被保留在腐蚀后的集合 A ⊖ B A \ominus B A⊖B 中。
对于 Z 2 \mathbb{Z}^{2} Z2中的集合 A A A和 B B B, A A A被 B B B腐蚀(erosion),记为 A ⊖ B A\ominus B A⊖B,定义为:
A ⊖ B = { z ∣ ( B ) z ⊆ A } A\ominus B=\{z|(B)_{z}\subseteq A\} A⊖B={z∣(B)z⊆A}
B是结构元。即 A A A被 B B B腐蚀是所有点 z z z的集合,使得 B B B平移 z z z后包含于 A A A。
集合A元素是图像I的前景像素,背景显示白色。©中的虚线边界内的实线边界是B的原点的位移界限。在这个界限内, ( B ) z ⊆ A (B)_z\subseteq A (B)z⊆A.
(d)是一个加长的结构元,它腐蚀的结果如(e)所示,是一条线。
膨胀
膨胀的过程可以想象成图像中的目标“扩展”或“增长”。具体来说,结构元 B 在图像 A 上滑动,当结构元的某部分与 A 重叠时,将该位置 z 添加到膨胀后的集合 A ⊕ B A \oplus B A⊕B 中。
当 A A A和 B B B是 Z 2 \mathbb{Z}^{2} Z2中的集合时, A A A被 B B B膨胀(dilation),记为 A ⊕ B A\oplus B A⊕B,定义为:
A ⊕ B = { z ∣ ( B ^ ) z ∩ A ≠ ∅ } A\oplus B=\{z|(\hat{B})_{z}\cap A\neq\varnothing\} A⊕B={z∣(B^)z∩A=∅}
这个等式基于获取 B B B关于原点的反射并将这个反射平移 z z z。 A A A被 B B B膨胀就是所有位移 z z z的集合,使得 B ^ \hat{B} B^和 A A A至少有一个元素重叠,即:
A ⊕ B = { z ∣ [ ( B ^ ) z ∩ A ] ⊆ A } A\oplus B = \{z|[( \hat{B})_{z}\cap A]\subseteq A\} A⊕B={z∣[(B^)z∩A]⊆A}
膨胀与腐蚀的对偶关系
膨胀和腐蚀在集合补集和反射方面是相互对偶的,即:
( A ⊖ B ) c = A c ⊕ B ^ ( A ⊕ B ) c = A c ⊖ B ^ (A\ominus B)^{c}=A^{c}\oplus\hat{B}\\ (A\oplus B)^c=A^c\ominus \hat B (A⊖B)c=Ac⊕B^(A⊕B)c=Ac⊖B^
上式表明:B对A的腐蚀是 B ^ \hat B B^对 A c A^c Ac的膨胀的补集,vice versa。当结构元相对于其原点对称的时候,有 B ^ = B \hat B=B B^=B, 因此对偶性特别有用。
证明如下:
( A ⊖ B ) c = { z ∣ ( B ) z ⊆ A } c = { z ∣ ( B ) z ∩ A c = ∅ } c = { z ∣ ( B ) z ∩ A c ≠ ∅ } = A c ⊕ B ^ ( A ⊕ B ) c = { z ∣ ( B ^ ) z ∩ A ≠ ∅ } c = { z ∣ ( B ^ ) z ∩ A = ∅ } = { z ∣ ( B ^ ) z ⊆ A c } = A c ⊖ B ^ \begin{align} (A\ominus B)^{c}&=\{z|(B)_{z}\subseteq A\}^{c}\\ &=\{z|(B)_{z}\cap A^{c}=\varnothing\}^{c}\\ &=\{z|(B)_{z}\cap A^{c}\neq\varnothing\}\\ &=A^{c}\oplus\hat{B}\\\\ (A\oplus B)^c&=\{z|(\hat{B})_{z}\cap A\neq\varnothing\}^c\\ &=\{z|(\hat{B})_{z}\cap A=\varnothing\}\\ &=\{z|(\hat{B})_{z}\subseteq A^c\}\\ &=A^c\ominus \hat B \end{align} (A⊖B)c(A⊕B)c={z∣(B)z⊆A}c={z∣(B)z∩Ac=∅}c={z∣(B)z∩Ac=∅}=Ac⊕B^={z∣(B^)z∩A=∅}c={z∣(B^)z∩A=∅}={z∣(B^)z⊆Ac}=Ac⊖B^
开闭操作(Opening and Closing)
- 开运算常用于平滑物体的轮廓、断开狭窄的狭颈、消除细长的突出物;
- 闭运算同样平滑轮廓,但会弥合狭窄的断裂和细长的沟壑、消除小孔、填补轮廓中的缝隙。
开运算
集合 A A A被结构元素 B B B的开运算(opening),记为 A ∘ B A\circ B A∘B,定义为:
A ∘ B = ( A ⊖ B ) ⊕ B A\circ B=(A\ominus B)\oplus B A∘B=(A⊖B)⊕B
即 A A A被 B B B的开运算就是 A A A被 B B B腐蚀后再被 B B B膨胀的结果。
闭运算
集合 A A A被结构元素 B B B的闭运算(closing),记为 A ⋅ B A\cdot B A⋅B,定义为:
A ⋅ B = ( A ⊕ B ) ⊖ B A\cdot B=(A\oplus B)\ominus B A⋅B=(A⊕B)⊖B
即 A A A被 B B B的闭运算就是 A A A被 B B B膨胀后再被 B B B腐蚀的结果。
开运算的另一种定义:
A ∘ B = ⋃ { ( B ) z ∣ ( B ) z ⊆ A } A\circ B=\bigcup\{(B)_z|(B)_z\subseteq A\} A∘B=⋃{(B)z∣(B)z⊆A}
开运算和闭运算在集合补集和反射方面是相互对偶的,即:
( A ⋅ B ) c = ( A c ∘ B ^ ) ( A ∘ B ) c = ( A c ⋅ B ^ ) (A\cdot B)^c=(A^c\circ\hat{B})\\ (A\circ B)^c=(A^c\cdot\hat{B}) (A⋅B)c=(Ac∘B^)(A∘B)c=(Ac⋅B^)
证明:
$$
\begin{align}(A\circ B)^c&=\left[(A\ominus B)\oplus B\right]^c\
&=(A\ominus B)^c\ominus \hat B\
&=A^c\oplus \hat B\ominus \hat B\
&=(A^c\cdot \hat B)\\
(A\cdot B)^c&=\left[(A\oplus B)\ominus B\right]^c\
&=(A\oplus B)^c\oplus \hat B\
&=A^c\ominus \hat B\oplus \hat B\
&=(A^c\circ\hat{B})
\end{align}
$$
性质
开运算的性质:
- A ∘ B A\circ B A∘B是 A A A的子集(子图像)。
- 如果 C C C是 D D D的子集,那么 C ∘ B C\circ B C∘B是 D ∘ B D\circ B D∘B的子集。
- ( A ∘ B ) ∘ B = A ∘ B (A\circ B)\circ B = A\circ B (A∘B)∘B=A∘B
闭运算的性质:
- A A A是 A ⋅ B A\cdot B A⋅B的子集(子图像)。
- 如果 C C C是 D D D的子集,那么 C ⋅ B C\cdot B C⋅B是 D ⋅ B D\cdot B D⋅B的子集。
- ( A ⋅ B ) ⋅ B = A ⋅ B (A\cdot B)\cdot B = A\cdot B (A⋅B)⋅B=A⋅B
由开闭运算的第三个性质可知,对一个集合多次进行开运算或闭运算,在操作一次后就不再有效果。
此图展示了用于得到开运算和闭运算结果的形态学运算。
D D D的子集,那么 C ⋅ B C\cdot B C⋅B是 D ⋅ B D\cdot B D⋅B的子集。
- ( A ⋅ B ) ⋅ B = A ⋅ B (A\cdot B)\cdot B = A\cdot B (A⋅B)⋅B=A⋅B
由开闭运算的第三个性质可知,对一个集合多次进行开运算或闭运算,在操作一次后就不再有效果。
[外链图片转存中…(img-5c57BwfX-1735225214230)]
此图展示了用于得到开运算和闭运算结果的形态学运算。