文章目录
引言
- 用 数学形态学(也称图像代数)表示以 形态 为基础对图像进行分析的数学工具
- 基本思想 是用具有 一定形态的结构元素 去 度量和提取 图像中的对应形状以达到对 图像分析识别 的目的。即 将数字形态学作为 工具 从图像中 提取表达和描绘区域形状的有用 图像分量
一、预备知识 P402 - P404
1.1 回顾 2.4.2 数字图像表示 P31 - P32
-
令 Z 和 R 分别表示 整数集 和 实数集。可将图像的平面(即xy平面)分为 网格,网格中每个单元的中心位置是笛卡尔积 Z 2 Z^2 Z2 中的一对元素, Z 2 Z^2 Z2 是所有有序元素对 ( z i , z j ) (z_i,z_j) (zi,zj) 的集合, z i z_i zi 和 z j z_j zj 是 Z 中的整数。在数字图像中,令$ x \in Z, y \in Z $ ,(x,y)表示图像中的某一坐标位置, ( x , y ) ∈ Z 2 (x,y) \in Z^2 (x,y)∈Z2。
-
类似的 使用 Z 3 Z^3 Z3 表示所有有序元素 ( z i , z j , z k ) (z_i,z_j,z_k) (zi,zj,zk) 的集合, z i z_i zi 、 z j z_j zj 和 z k z_k zk 是 Z 中的整数。在数字图像中,令 x ∈ Z , y ∈ Z , f ( x , y ) ∈ Z x \in Z,y \in Z,f(x,y) \in Z x∈Z,y∈Z,f(x,y)∈Z ,(x,y)表示图像中的某一坐标位置,f(x,y) 表示该位置上的灰度值, ( x , y , f ( x , y ) ) ∈ Z 3 (x,y,f(x,y)) \in Z^3 (x,y,f(x,y))∈Z3。
-
可以类似的定义 R 2 R^2 R2、 R 3 R^3 R3
1.2 回顾 2.6.4 集合和逻辑操作 P46 - P49
-
基本集合操作
a) 令 A 为一个 实数序对组成的集合( R 2 R^2 R2)
① a ∈ A a \in A a∈A
表示 a = ( a 1 , a 2 ) a = (a_1,a_2) a=(a1,a2) 是 A 的一个元素② a ∉ A a \notin A a∈/A
表示 a = ( a 1 , a 2 ) a = (a_1,a_2) a=(a1,a2) 不是 A 的一个元素,不包含任何元素的集合称为 空集,用符号 ∅ \varnothing ∅ 表示③ 集合由两个大括号中的内容表示,即 {.}。
eg. 对于 C = { w ∣ w = − d , d ∈ D } C = \{w| w = -d,d \in D\} C={w∣w=−d,d∈D} ,所表达的意思是:集合C是元素 w 的集合,而 w 是通过用 -1 与集合D中的所以元素相乘得到的④ A ⊆ B A \subseteq B A⊆B
表示集合A中的所有元素又是另一个集合B中的一个元素,称 A 为 B 的子集⑤ C = A ∪ B C = A \cup B C=A∪B
表示两个集合 A 和 B 的并集⑥ D = A ∩ B D = A \cap B D=A∩B
表示两个集合 A 和 B 的交集,如果 A 和 B 两个集合没有共同的元素,则称这两个集合是 不相容的或互斥的,此时 A ∩ B = ∅ A \cap B = \varnothing A∩B=∅⑦ 全集 U 是给定应用中所有元素的集合
eg. 处理实数集合,则集合的全集是实数域⑧ A c = { w ∣ w ∉ A } A^c = \{w|w \notin A\} Ac={w∣w∈/A}
表示集合 A 的补集,即不包含A的所有其他元素(在全域U中的其他元素)的集合⑨ A − B = { w ∣ w ∈ A , w ∉ B } = A ∩ B c A - B = \{w| w \in A,w \notin B\} = A \cap B^c A−B={w∣w∈A,w∈/B}=A∩Bc
表示集合 A 和 B 的差,结果仍是一个集合,并且该集合的元素属于A 而不属于B。或 描述为所有属于 集合A 但不属于 集合B 的元素集合
b) 上述所有的集合操作均在
R
2
R^2
R2 中讨论,其中的定义可应用到 不考虑灰度值 或 考虑各像素点灰度值相等(如:二值图像中的 白 或 黑 像素)的 数字图像对应的
Z
2
Z^2
Z2 中,但是对于 灰度数字图像的
Z
3
Z^3
Z3 集合是不适用的,对于图像灰度的集合操作 如下:
令灰度级图像的元素用集合 A 来表示,这些元素的三元组形式(x,y,z) ,其中 x 和 y 是空间坐标,z是灰度
①
A
c
=
{
(
x
,
y
,
K
−
z
)
∣
(
x
,
y
,
z
)
∈
A
}
A^c = \{(x,y,K - z) | (x,y,z) \in A\}
Ac={(x,y,K−z)∣(x,y,z)∈A}
表示 A 的补集,它简单的表明 像素集合A的灰度已从常数K中减去(相当于做图像的灰度反转)。该常数等于
2
k
−
1
2^k - 1
2k−1,其中 k 是用于表示 z 的灰度值的比特数。
②
A
∪
B
=
{
m
a
x
z
(
a
,
b
)
∣
a
∈
A
,
b
∈
B
}
A \cup B = \{ max_z(a,b) | a \in A,b \in B \}
A∪B={maxz(a,b)∣a∈A,b∈B}
表示两个灰度集合 A 和 B 的并集,其表明了:两个灰度集合(图像)的并集 是一个由空间相应元素对 间的最大灰度形成的阵列
③
A
∩
B
=
{
m
i
n
z
(
a
,
b
)
∣
a
∈
A
,
b
∈
B
}
A \cap B = \{ min_z(a,b) | a \in A,b \in B \}
A∩B={minz(a,b)∣a∈A,b∈B}
表示两个灰度集合 A 和 B 的交集,其表明了:两个灰度集合(图像)的并集 是一个由空间相应元素对 间的最小灰度形成的阵列
- 逻辑操作
① 对于二值图像,图像中白色部分像素值为 1,图像中黑色部分像素值为 0
② 在处理二值图像时,即 执行 OR、AND、NOT逻辑操作(也就是普通的 并、交、求补操作),就是对图像的像素值(1或0)进行相应的逻辑操作
1.3 数学形态学 P402 - P404
-
数学形态学的语言是 集合论(即以集合的形式讨论数学问题)
-
数学形态学的 集合 表示 图像中的对象
eg. 二值图像中的白色像素集合表示图像中的对象 -
二值图像 中,所讨论的集合是二维整数空间 z 2 z^2 z2 的成员,在该空间中,集合的每个元素都是一个 多元组(二维向量) ,这些 多元组的坐标(二维向量值) 是图像中的一个 白色(或黑色,取决于事先的约定,即约定哪种颜色的像素能表示为图像的对象)像素的坐标
-
灰度数字图像 可以表示为 其分量在 z 3 z^3 z3 中的集合。在这种情况下,集合中 每个元素的两个分量提供一个像素的坐标,第三个分量则对应其离散灰度值
-
总结:
① 二值图像的集合 包含用于描述其图像对象的所有 像素点坐标(二维向量)元素
② 灰度图像的集合 包含用于描述其图像对象的所有 像素点坐标 与 像素值(灰度值) 元素 -
集合的 反射 和 平移
① B ^ = { w ∣ w = − b , b ∈ B } \hat B = \{w | w = -b,b \in B\} B^={w∣w=−b,b∈B}
表示 集合 B 的反射,如果 B 是描述图像中物体的像素的集合(二维点),则 B ^ \hat B B^ 是 B 中(x,y)坐标被(-x,-y)替代的点的集合
② ( b ) z = { c ∣ c = b + z , b i n B } (b)_z = \{c | c = b + z,b\ in B\} (b)z={c∣c=b+z,b inB}
表示 集合B按照点 z = ( z 1 , z 2 ) z = (z_1,z_2) z=(z1,z2) 的平移,若 B 是描述图像中物体的像素集合,则 ( B ) z (B)_z (B)z 是 B 中(x,y)坐标被 ( x + z 1 , y + z 2 ) (x + z_1,y + z_2) (x+z1,y+z2) 替代的点的集合
-
结构元(SE)
① 结构元(SE):用于研究一幅图像中感兴趣特性所用的 小集合 或 子图像
上图第一行显示了一些结构元的例子,其中每个涂阴影的方块表示SE的一个成员
② 结构元必须指定 原点 (原点一般被放在结构元的重心位置,如上图第一行 各结构体中的黑点)
③ 对图像操作时,我们要求 结构元是矩形阵列。这是通过 添加最小适合数量的背景元素 形成一个矩阵阵列来实现
④ 当无所谓给定结构元中的一个位置是否是该SE集合的成员时,该位置用 "X" 来标记
-
形态学中使用结构元
对于简单的集合 A 与 结构元 B
① 在处理前,对集合 A 与 结构元 B 均添加最小适合数量的背景元素 形成一个矩阵阵列来实现
② 使用结构元 B 在集合 A 上 滑动,并在新的集合中生成元素(类似于空间滤波的卷积操作,结构元相当于 掩模),当结构元原点位于原始集合(即未填充背景元素的集合 A)的边界上时,背景边界要大到足以容纳整个结构元。这里也是填充背景元素个数的考虑因素之一(类似于空间滤波在边界处滑动时使用的零填充)
③ 考虑使用 结构元B 在 集合A 上滑过时生成新的集合点的其中一种操作(腐蚀):
注意:与空间滤波一样,使用 结构元的中点 与 集合A中各元素重合,每重合一次生成与原集合对应的元素值
a) 若 B 完全被 A 包含(只关注二者的阴影部分的包含情况),则 将该位置标记为新集合的一个成员(即标注为阴影)
b) 若 B 没有完全被 A 包含(只关注二者的阴影部分的包含情况),则 将该位置标记为非新集合的一个成员(即标注为非阴影)
c) 最终集合 A 的 边界被腐蚀
二、腐蚀与膨胀 P404 - P427
2.1 腐蚀 P404 - P406
- 作为二维整数空间
Z
2
Z^2
Z2 的集合 A 和 B ,表示为
A
Θ
B
A \Theta B
AΘB 的 B 对 A 的腐蚀定义为
A Θ B = { z ∣ ( B ) z ⊆ A } A \Theta B = \{z | (B)_z \subseteq A\} AΘB={z∣(B)z⊆A}
(当集合B为结构元时,此处是上述结构元 在集合中 滑动操作的数学公式。其结果为符合包含关系时,结构元原点所移动的轨迹的集合)
等价于
A Θ B = { z ∣ ( B ) z ∩ A c = ∅ } A \Theta B = \{z | (B)_z \cap A^c = \varnothing \} AΘB={z∣(B)z∩Ac=∅}
2.2 膨胀 P406 - P407
- A 和 B 是
Z
2
Z^2
Z2 中的集合,表示为
A
⊕
B
A \oplus B
A⊕B 的 B 对 A 的膨胀定义为
A ⊕ B = { z ∣ ( B ^ ) z ∩ A ≠ ∅ } A \oplus B = \{ z | (\hat B)_z \cap A \neq \varnothing \} A⊕B={z∣(B^)z∩A=∅}
当集合B为结构元时,此处是对于:[ 结构元 在 集合 上滑动时,若结构元与原始集合相交(指阴影部分相交),则将结构体中心点 标记为新集合的一个成员] 这一处理方式 的数学公式。其结果为符合相交关系时,结构元原点所移动的轨迹的集合
等价于
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}
2.3 对偶性 P407
- 膨化 和 腐蚀 彼此关于集合求补运算和反射运算是对偶的,即:
( A Θ B ) c = A c ⊕ B ^ (A \Theta B)^c = A^c \oplus \hat B (AΘB)c=Ac⊕B^
和
( A ⊕ B ) c = A c Θ B ^ (A \oplus B)^c = A^c \Theta \hat B (A⊕B)c=AcΘB^
或表示为:
A Θ B = ( A c ⊕ B ^ ) c A \Theta B = (A^c \oplus \hat B)^c AΘB=(Ac⊕B^)c
和
A ⊕ B = ( A c Θ B ^ ) c A \oplus B = (A^c \Theta \hat B)^c A⊕B=(AcΘB^)c
总结
- 膨胀 会 扩大 一幅图像的组成部分
- 腐蚀 会 缩小 一幅图像的组成部分
三、开操作与闭操作 P407 - P411
-
开操作 一般会平滑物体的轮廓、断开较窄的狭颈并消除较细的突出物
-
闭操作同样也会 平滑轮廓的一部分,但与开操作相反,它通常会弥合较窄的尖端 和 细长的沟壑,消除 较小的孔洞,填补轮廓线中的断裂
-
开操作
① 使用结构元B对集合A进行开操作,定义为
A ∘ B = ( A Θ B ) ⊕ B A \circ B = (A \Theta B) \oplus B A∘B=(AΘB)⊕B
即 先用 a) 结构元B 对 集合A 腐蚀,再用 b) 结构元B 对前一腐蚀结果进行 膨胀② 与①中等价的数学表达式:
A ∘ B = ∪ { ( B ) z ∣ ( B ) z ⊆ A } A \circ B = \cup \{ (B)_z | (B)_z \subseteq A\ \} A∘B=∪{(B)z∣(B)z⊆A }
其几何解释如下:
假设结构元B 视为一个(扁平的) “转球” 。然后
A
∘
B
A \circ B
A∘B 的边界由 B 中的点建立:当 B 在 A的边界内侧滚动时,B 所能到达的 A 的边界的最远点
也就是说,平移结构元B,使 集合A 与 结构元B存在包含关系(阴影部分相包含),
A
∘
B
A \circ B
A∘B 等于:所有结构体B内 点的轨迹 的集合
-
闭操作
① 使用结构元B对集合A进行闭操作,定义为
A ⋅ B = ( A ⊕ B ) Θ B A \cdot B = (A \oplus B) \Theta B A⋅B=(A⊕B)ΘB
即 先用 a) 结构元B 对 集合A 膨胀,再用 b) 结构元B 对前一膨胀结果进行 腐蚀② 闭操作对应的几何解释如下:
结构元B 在集合A 的边界外侧滚动。当且仅当包含 w 的 ( B ) z (B)_z (B)z 进行的任何平移都有 ( B ) z ∩ A ≠ ∅ (B)_z \cap A \neq \varnothing (B)z∩A=∅ 时,点 w 才是 A ⋅ B A \cdot B A⋅B的一个元素
-
形态学的开操作与闭操作
-
开操作 与 闭操作的对比
开操作 和 闭操作彼此 关于集合求补和反射也是对偶的,即:
( A ⋅ B ) c = ( A c ∘ B ^ ) (A \cdot B)^c = (A^c \circ \hat B) (A⋅B)c=(Ac∘B^)
和
( A ∘ B ) c = ( A c ⋅ B ^ ) (A \circ B)^c = (A^c \cdot \hat B) (A∘B)c=(Ac⋅B^)
开操作 | 闭操作 |
---|---|
A ∘ B A \circ B A∘B是A的子集合 | A 是 $ A \cdot B$ 的子集 |
如果C是D的子集,则 C ∘ B C \circ B C∘B 是 D ∘ B D \circ B D∘B 的子集 | 如果C是D的子集,则 C ⋅ B C \cdot B C⋅B 是 D ⋅ B D \cdot B D⋅B 的子集 |
( A ∘ B ) ∘ B = A ∘ B (A \circ B) \circ B = A \circ B (A∘B)∘B=A∘B | ( A ⋅ B ) ⋅ B = A ⋅ B (A \cdot B) \cdot B = A \cdot B (A⋅B)⋅B=A⋅B |
四、击中或击不中变换 P411 - P412
-
形态学的 击中与击不中变换是形态检测的基本工具
-
例子讲解击中或击不中变换(目的是定位集合A中 的D的位置)
-
令 B 表示由 D及其背景(W - D)组成的集合,则 B在A中的匹配(或匹配集合),表示为
-
令 B = ( B 1 , B 2 ) B = (B_1,B_2) B=(B1,B2) , B 1 B_1 B1 是由与一个目标相联系的 B 的元素构成的集合, B 2 B_2 B2 是由与相应背景相联系的 B 的元素构成的集合。即: B 1 = D , B 2 = ( W − D ) B_1 = D,B_2 = (W - D) B1=D,B2=(W−D)
或
上述三个公式称为 形态学击中或击不中变换
- 更形象的解释 形态学中的击中与击不中变换
① 简单来说 击中-击不中运算常用于二值图像,它用于基于结构元素的配置,从图像中寻找具有某种像素排列特征的目标 ,如单个像素、颗粒中交叉或纵向的特征、直角边缘或其他用户自定义的特征等。
② 击中击不中变换是比 图像腐蚀 要求更加苛刻的一种形态学操作,图像腐蚀 只需要图像能够将结构元素中所有非0元素包含即可,但是 击中击不中变换 要求原图像中需要存在 与结构元素一模一样的结构,即结构元素中非0元素也需要同时被考虑
③ 计算时,只有当结构元素 与其覆盖的图像区域完全相同时,中心像素(结构元原点位置)的值才会被置为1,否则为0。下图给出了一个例子。
源图 对应 公式中的集合A;结构元素 对应公式中的 B
④ 形态学中的击中与击不中变换,类似于程序中的正则匹配概念
五、一些基本的形态学算法 P412 - P427
在处理二值图像时,形态学的主要应用之一是 提取 和 描述形状 的图像成分。特别是我们要考虑提取边界、连通分量、凸壳和区域的骨架的形态学算法。本章节所讨论的二值图像,用1表示阴影区域,而用0表示白色
5.1 边界提取 P412 - P413
-
β
(
A
)
\beta(A)
β(A) 表示 集合A的边界,其可以通过先用B对A腐蚀,而后执行A 和 腐蚀的结果之间的差集,即
β ( A ) = A − ( A Θ B ) \beta(A) = A - (A \Theta B) β(A)=A−(AΘB)
其中 B 是一个适当的结构元
5.2 孔洞填充 P413 - P414
-
孔洞定义为 由前景像素(像素为1)相连的边界所包围的背景区域(像素为0)。(在二值图像中考虑)
-
令 A 表示一个集合,其元素是 8连通的边界,每个边界包围一个背景区域(即一个孔洞)。当给定每个孔洞中的一点后,目的就是用 1 填充所有的孔洞
X k = ( X k − 1 ⊕ B ) ∩ A c , k = 1 , 2 , 3 , . . . X_k = (X_{k-1} \oplus B) \cap A^c ,k = 1,2,3,... Xk=(Xk−1⊕B)∩Ac,k=1,2,3,...
式中 X 0 X_0 X0 为 a) 包含孔洞中的任意一个点(并设置为1),b) 与A等大小的 集合,B是下图中对称的结构元。如果 X k = X k + 1 X_k = X_{k + 1} Xk=Xk+1,则算法在迭代的第k步结束。然后,集合 X k X_k Xk 包含 所有被填充的孔洞。 X k X_k Xk 和 A的并集包含所有 a) 填充的孔洞 及这些 b) 孔洞的边界
- 对于孔洞填充的数学式子,如果 左边不加限制,那么膨胀操作将填充整个区域。然而,每一步中与 A c A^c Ac 的交集操作将把结果限制到感兴趣区域内。在当前应用中,它被适当的称为 条件膨胀
5.3 连通分量的提取 P414 - P415
- 令 A 是包含一个或多个连通分量的集合,并形成一个 阵列
X
0
X_0
X0 ( a) 该阵列的大小与包含A的阵列的大小相同,除了在对应于 b) A中每个连通分量中一个点的各个已知位置处我们已置1外,该阵列的 c) 所有其他元素均为0)
X k = ( X k − 1 ⊕ B ) ∩ A , k = 1 , 2 , 3 , . . . X_k = (X_{k-1} \oplus B) \cap A,k = 1,2,3,... Xk=(Xk−1⊕B)∩A,k=1,2,3,...
式中,B是一个适当的结构元(其形状在像素间是基于8连通的)。当 X k = X k − 1 X_k = X_{k-1} Xk=Xk−1 时,迭代过程结束, X k X_k Xk 包含输入图像中的所有连通分量
5.4 凸壳 P416 - P417
- 如果在集合A内 连接任意两个点的直线段都在A的内部,则称集合A是凸形
- 任意集合S的 凸壳H 是包含S的最小凸集
- 一种获得集合A的凸壳
C
(
A
)
C(A)
C(A) 的简单形态学算法
① 令 B i B^i Bi ,i = 1,2,3,4 表示下图中的 4 个结构元(击中或未击中变换是匹配成功时,标记结构元的中心位置为成员。因此当匹配成功时,会将集合A的空白处对应新集合位置均标记为成员)。这个过程可通过执行下式实现:
式中,
X
0
i
=
A
X_0^i = A
X0i=A。
② 当该过程收敛(即当
X
k
i
=
X
k
−
1
i
X_k^i = X_{k-1}^i
Xki=Xk−1i),我们令
D
i
=
X
k
i
D^i = X_k^i
Di=Xki 。则 A 的 凸壳 为
③ 对应与上述数学公式的过程为:
a) 先反复使用
B
1
B^1
B1 对 A 做击中或不击中变换(每次的变换结果 与 A作并集,所得的并集结果 作为下一次击中或不击中变换的 原始集合(充当A))
b) 当 不再发生进一步变化后(即 出现第一次出现击中或未击中结果为空时),将当前的集合称为
D
1
D^1
D1
c) 对
B
2
、
B
3
、
B
4
B^2、B^3、B^4
B2、B3、B4 重复 a) b) 中的过程分别得到
D
2
、
D
3
、
D
4
D^2、D^3、D^4
D2、D3、D4
d) 对上述求得的
D
1
、
D
2
、
D
3
、
D
4
D^1、D^2、D^3、D^4
D1、D2、D3、D4 四个集合求 并集,即可得到 原始集合A 的凸壳
- 然后上述过程有一个明显的缺点,凸壳可能超出确保凸形所需的最小尺寸。限制这种影响的一种简单方法是限制生长,以便凸壳不会超出初始点 在 水平和垂直方向上的尺寸
5.5 细化 P417
- 结构元 B 对集合 A 的细化可表示为 A ⨂ B A \bigotimes B A⨂B,它根据击中或击不中变换来定义:
- 对称的细化A 的一种更有用表达方式是以 结构元序列 为基础的:
{ B } = { B 1 , B 2 , B 3 , . . . , B n } \{B\} = \{ B^1,B^2,B^3,...,B^n \} {B}={B1,B2,B3,...,Bn}
式中 B i B^i Bi 是 B i − 1 B^{i-1} Bi−1 旋转后的形式。使用一个结构元序列将细化定义为:
A ⨂ { B } = ( ( . . . ( ( A ⨂ B 1 ) ⨂ B 2 ) . . . ) ⨂ B n ) A \bigotimes \{B\} = ((...((A \bigotimes B^1) \bigotimes B^2)...) \bigotimes B^n) A⨂{B}=((...((A⨂B1)⨂B2)...)⨂Bn)
这种处理是 A 被 B 1 B^1 B1细化一次,然后得到结果被 B 2 B^2 B2 再细化一次,如此进行下去,直到 A 被 B n B^n Bn 细化一次。整个过程不断重复(将B的序列视为收尾相连的循环序列),直到得到结果不再发生变换(即 当前集合使用所有B的细化结果均一致)
5.6 粗化 P418
- 粗化是细化的对偶,定义如下
式中 B 是适合于粗化处理的结构元(与细化时所用的结构元相同,但是所有的1和0要互换)。与细化一样,粗化处理也可以定义为一系列操作
A
⨀
{
B
}
=
(
(
.
.
.
(
(
A
⨀
B
1
)
⨀
B
2
)
.
.
.
)
⨀
B
n
)
A \bigodot \{B\} = ((...((A \bigodot B^1) \bigodot B^2)...) \bigodot B^n)
A⨀{B}=((...((A⨀B1)⨀B2)...)⨀Bn)
- 实际中使用,先对问题中集合的背景进行细化,而后对结果求补集的方式,实现对原始集合的粗化 (使用这种方式的粗化处理,通常会跟随一个消除断点的后处理)
5.7 骨架 P418 - P420
- 集合A 的 骨架 表示为 S(A)
由上图可以推出:
a) 如果 z 是 S(A)的一个点,并且
(
D
)
z
(D)_z
(D)z 是A内以z为中心的最大圆盘,则不存在包含
(
D
)
z
(D)_z
(D)z且位于A内的更大的圆盘。圆盘
(
D
)
z
(D)_z
(D)z 称为 最大圆盘
b) 圆盘 ( D ) z (D)_z (D)z在两个或多个不同的位置与A的边界接触
- A 的骨架可以用 腐蚀 和 开操作 来表达,即骨架可表示为:
其中,
式中,B是结构元,而 ( A Θ k B ) (A \Theta kB) (AΘkB)表示 对A的连续k次腐蚀:
K 是 A 被腐蚀为空集前的最后一次迭代步骤。换句话说,
K
=
m
a
x
{
k
∣
(
A
Θ
k
B
)
≠
∅
}
K = max\{k | (A \Theta kB) \neq \varnothing\}
K=max{k∣(AΘkB)=∅}
- 上述式子可看出,S(A) 可作为骨架子集的并集来得到。同时,可以使用骨架子集重建A:
式中 ( S k ( A ) ⊕ k B ) (S_k(A) \oplus kB) (Sk(A)⊕kB) 表示对 S k ( A ) S_k(A) Sk(A) 的 k 次连续膨胀,即
- 计算简单图形的骨架
5.8 裁剪 P420 - P421
- 裁剪方法是对细化和骨架算法的必要补充,因为这些过程会保留某些计生成分,因而需要用后处理来清除这些寄生成分
- (例子)考虑消除手写字符 “a” 骨架中的寄生部分
① 处理思想为,假设 任何具有三个或小于三个像素长度的分支都将被删除(主要是为了消除最左侧的 “毛刺”)
② 对输入 集合A进行细化 可以得到①中期望的结果,即令:
X
1
=
A
⊗
{
B
}
X_1 = A \otimes \{B\}
X1=A⊗{B}
式中
{
B
}
\{B\}
{B} 对应结构元序列。本例中对应 包含图(b) 与 图© 中的结构元,并且
B
i
B^i
Bi 表示的是端点检测子(在击中或不击中变换中定位到集合A中的各种端点)
③ 连续对 A 应用三次上述细化公式(实际反映为连续三次消除集合中的 所有端点,主要是为了消除 “毛刺”)。为了将字符 “复原” 为原形状,但要去掉寄生分支(毛刺),首先需要 获取一个包含
X
1
X_1
X1 中所有端点的集合
X
2
X_2
X2
④ 使用A作为 限定器(条件), 对 端点 进行 三次膨胀(为了弥补为了消除 “毛刺”,而使A中其他分支被消除的部分)
X
3
=
(
X
2
⊕
H
)
∩
A
X_3 = (X_2 \oplus H) \cap A
X3=(X2⊕H)∩A
式子中,H是元素值为1的 3*3 结构元,且每一步之后都要与A求交集。此处属于 条件膨胀,其形式类似于 连通分量的提取公式。
⑤ 最后 取
X
3
X_3
X3 与
X
1
X_1
X1 的并集就得到期望的结果,
X
4
=
X
1
∪
X
3
X_4 = X_1 \cup X_3
X4=X1∪X3
- 由于在进行 字符 “复原” 为原形状 的过程中,使用A作条件(A中包含有寄生元素),使用 A 与 端点进行膨胀后结果 作的交集 时,可能仍然会捡回一些寄生元素
5.9 形态学重建 P421 - P426
-
形态学重建,它涉及 a) 两幅图像 和 b)一个结构元。
① 一幅图像是 标记,它包含图像变换的起始点
② 另一幅图像是 模板,它用来约束改变换
③ 结构元用来定义 连接性 -
测地膨胀和腐蚀
① 形态学重建的核心是 a) 测地膨胀 和 b) 测地腐蚀 这两个概念。
② 令 F 表示 标记图像,G表示模板图像。假设讨论两幅图像都是 二值图像,且 F ⊆ G F \subseteq G F⊆G。 ③ 令 D G ( 1 ) ( F ) D_G^{(1)}(F) DG(1)(F) 表示大小(指操作的次数)为 1 的标记图像关于模板的 测地膨胀,定义为:
D G ( 1 ) ( F ) = ( F ⊕ B ) ∩ G D_G^{(1)}(F) = (F \oplus B) \cap G DG(1)(F)=(F⊕B)∩G
其中, ∩ \cap ∩ 表示集合交集 (二值图像的交集相当于 逻辑与)。F 关于 G 的大小为 n 的测地膨胀定义为:
D G ( n ) ( F ) = D G ( 1 ) [ D G ( n − 1 ) ( F ) ] D_G^{(n)}(F) = D_G^{(1)}[D_G^{(n-1)}(F)] DG(n)(F)=DG(1)[DG(n−1)(F)]
式中, D G ( 0 ) = F D_G^{(0)} = F DG(0)=F。在这个递推式中,每进行大小为1的 (即每进行一次) 测地膨胀均包含一次 与模板G的 交集 操作,并且交集的结果作为下次测地膨胀的 标记图像F。交集算子保证模板 G 将限制标记F的生长(膨胀),即 测地膨胀是,F 以 G 为条件的 膨胀
④ 标记F 关于 模板G 的大小(指操作的次数)为1 的测地腐蚀定义为:
E
G
(
1
)
(
F
)
=
(
F
Θ
B
)
∪
G
E_G^{(1)}(F) = (F \Theta B) \cup G
EG(1)(F)=(FΘB)∪G
式中,
∪
\cup
∪ 表示集合的并集 (逻辑或操作)。F 关于 G 的大小为 n 的测地腐蚀定义为:
E
G
(
n
)
(
F
)
=
E
G
(
1
)
[
E
G
(
n
−
1
)
(
F
)
]
E_G^{(n)}(F) = E_G^{(1)}[E_G^{(n-1)}(F)]
EG(n)(F)=EG(1)[EG(n−1)(F)]
式中,
E
G
(
0
)
(
F
)
=
F
E_G^{(0)}(F) = F
EG(0)(F)=F。在这个递推式中,每进行大小为1的 (即每进行一次) 测地腐蚀均包含一次 与模板G的 并集 操作,并且并集的结果作为下次测地腐蚀的 标记图像F
⑤ 有限数量的测地膨胀 和 腐蚀 经过有限数量的迭代步骤后总会收敛,因为标记图像的扩散或收缩受模板约束
- 用膨胀与腐蚀的形态学重建
① 基于前面的概念,来自标记图像 F 对模板图像 G 的 膨胀形态学重建(即 标记F 以 模板G 为参考的膨胀重建) 表示为 R G D ( F ) R_G^D(F) RGD(F) ,它被 定义为关于 G 的测地膨胀,反复迭代 直至达到稳定状态 (即相邻两次的测地膨胀结果相同);即:
R G D ( F ) = D G ( k ) ( F ) R_G^D(F) = D_G^{(k)}(F) RGD(F)=DG(k)(F)
迭代k次,直至 D G ( k ) ( F ) = D G ( k + 1 ) ( F ) ( 即相邻两次的测地膨胀结果相同 ) D_G^{(k)}(F) = D_G^{(k+1)}(F) (即相邻两次的测地膨胀结果相同) DG(k)(F)=DG(k+1)(F)(即相邻两次的测地膨胀结果相同)
② 类似的,模板图像G 对 标记图像F 的腐蚀的形态学重建表示为
R
G
E
(
F
)
R_G^E(F)
RGE(F) , 它被定义为 F 关于 G 的测地腐蚀,反复迭代直至达到 稳定状态(即相邻两次的测地腐蚀结果相同);即:
R
G
E
(
F
)
=
E
G
(
k
)
(
F
)
R_G^E(F) = E_G^{(k)}(F)
RGE(F)=EG(k)(F)
迭代k次,直至
E
G
(
k
)
(
F
)
=
E
G
(
k
+
1
)
(
F
)
(
即相邻两次的测地腐蚀结果相同
)
E_G^{(k)}(F) = E_G^{(k+1)}(F) (即相邻两次的测地腐蚀结果相同)
EG(k)(F)=EG(k+1)(F)(即相邻两次的测地腐蚀结果相同)
- 应用实例
形态学重建有很宽的实际应用领域,每种应用都 由 a) 标记图像 和 b) 模板图像的选择、c) 所用的结构元 及 前面讨论中定义的 d) 基本操作的组合来决定
① 重建开操作:用于正确地恢复腐蚀后所保留物体的形状。图像 F 的大小为 n 的 重建开操作,定义为 a) 先对 F 进行大小为 n 的腐蚀后,b) 再进行膨胀重建 的过程;即:
O R ( n ) ( F ) = R F D [ ( F Θ n B ) ] O_R^{(n)}(F) = R_F^D[(F \Theta nB)] OR(n)(F)=RFD[(FΘnB)]
式中, ( F Θ n B ) (F \Theta nB) (FΘnB) 表示 B 对 F 的连续 n 次腐蚀。注意,此处 F作为模板
② 填充孔洞:定义与 9.5.2 中一致,但实现算法有不同。前面所述的填充孔洞方式 需要已知各孔洞中任意一点的位置,此处谈论的填充孔洞 基于形态学重建的全自动化过程(即事先无需知道各孔洞中任一点的位置)
a) 令 I(x,y) 表示一幅二值图像 ,并假定我们形成了一幅 标定图像F(其大小与I(x,y)一致),F需满足:(I)图像F的边界位置的值为 1 - I;(II) 其他位置均为0,即:
F ( x , y ) = { 1 − I ( x , y ) , ( x , y ) 在 I 的边界上 0 ,其他 F(x,y) = \begin{cases} 1 - I(x,y),(x,y)在 I 的边界上\\ 0,其他\\ \end{cases} F(x,y)={1−I(x,y),(x,y)在I的边界上0,其他
则
H = [ R I c D ( F ) ] c H = [ R_{I^c}^D(F)]^c H=[RIcD(F)]c
是一幅 等于 I 且所有孔洞都 被填充 的二值图像
图中使用是 所有元素都是1 的 3*3 SE(结构元)
③ 边界清除:是一种删除接触(即连接到)边界 的物体的操作。令 标本图像F满足:
F
(
x
,
y
)
=
{
I
(
x
,
y
)
,
(
x
,
y
)
在
I
的边界上
0
,其他
F(x,y) = \begin{cases} I(x,y),(x,y)在 I 的边界上\\ 0,其他\\ \end{cases}
F(x,y)={I(x,y),(x,y)在I的边界上0,其他
标定图像F,除了在图像 a) 边界位置值为 I 之外,在b) 其他位置均为 0
边界清除算法首先 计算形态学重建
R
I
D
(
F
)
R_I^D(F)
RID(F) (简单地提取接触到边界的物体),然后计算差
X
=
I
−
R
I
D
(
F
)
X = I - R_I^D(F)
X=I−RID(F)
以得到 一幅其中没有接触边界的物体的图像X
5.10 二值图像形态学操作小结 P426 - P427
六、灰度级形态学 P428 - P437
-
本章节把膨胀、腐蚀、开操作和闭操作的基本操作扩展到 灰度级图像
-
使用f(x,y)表示一幅灰度级图像,b(x,y)表示一个结构元。(x,y)表示坐标,f、b 分别表示对应坐标下 灰度级像素 与 结构元成员 的值
-
灰度级形态学中的结构元所执行的基本功能与二值图像中所讨论的相同:它们作为一个 “探测器” 以明确的特性检验一幅给定的图像。灰度级形态学中的结构元分为两类:a) 非平坦 和 b) 平坦 的结构元
-
本章节中所讨论的结构元一般为:高度(SE的值)为1、对称的、平坦的结构元为基础,其原点位于中心处
-
灰度级形态学中的结构元反射定义为: b ^ ( x , y ) = b ( − x , − y ) \hat b(x,y) = b(-x,-y) b^(x,y)=b(−x,−y)
6.1 腐蚀和膨胀 P428 - P430
- 当 b 的原点位于(x,y)处时,用一个 平坦的 结构元b 在 (x,y) 处对图像 f 的腐蚀 定义为 图像F 中与b重合区域的最小值。以公式的形式,结构元素b对一幅图像在位置(x,y)处的腐蚀 由下式给出:
执行过程 类似于 第三章讲的 “空间相关”(即掩模不旋转180°的滑动处理过程) ,每一次查找出的 重合部分f的最小值 赋值给,新图像中对应的 结构元滑过时对应的原点位置
- 类似的,当 b ^ \hat b b^ 的原点位于位置(x,y)处时,平坦结构元b 在任何位置(x,y)处对图像f的膨胀,定义为 图像f 与 b ^ \hat b b^ 重合区域的最大值,即
执行过程 类似于 第三章讲的 “空间卷积” (即掩模旋转180°的滑动处理过程),每一次查找出的 重合部分f的最大值 赋值给,新图像中对应的 结构元滑过时对应的原点位置
- 使用非平坦结构元的腐蚀
- 使用非平坦结构元的膨胀
- 灰度图中 腐蚀 与 膨胀处理 的对偶性
6.2 开操作与闭操作 P430 - P431
-
灰度图像的 开操作 与 闭操作 的表达式与二值图像对应的操作具有相同的形式
-
灰度图像的开操作
-
灰度图像的闭操作
-
灰度图像的开、闭操作的对偶性
和
- 灰度图像开操作与闭操作的几何解释
① 灰度图像的开操作的几何解释
a) 假设将一幅图像函数 f(x,y) 视为一个三维表面(它的灰度值可解释为xy平面上的高度值,如下图所示)
b) b 对 f 的开操作可解释为,从 f 的下表面向上推动结构元时,b的任何部分所达到的最高值。这样,完全开操作就是由 b 的原点访问 f 的每个坐标(x,y)所得到的所有值的集合。以一维的形式说明这个概念
开操作会剪掉峰值,从而降低小区域的亮度;
闭操作会填补 较窄的低灰度 “凹区域” ,从而增加小区域的亮度;
② 灰度图像的闭操作的几何解释
对应上图中的(d)、(e)
③ 开操作,用于去除较小的明亮细节,而保持整体灰度级和较大的明亮区域特征相对不变
④ 闭操作,用于增亮较小的暗细节,而保持整体灰度级和较大暗区域特征相对不变
- 总结
① 开操作抑制比结构元小的 亮细节
② 闭操作抑制比结构元小的 暗细节
6.3 一些基本的灰度级形态学算法 P431 - P435
- 形态学平滑
由于开操作抑制比结构元小的 亮细节,闭操作抑制 暗细节,所以常常以形态滤波的形式结合起来 平滑图像 和 去除噪声
- 形态学梯度
膨胀 和 腐蚀可与图像相减结合起来得到一幅图像的形态学梯度 ,形态学梯度由 g 定义:
膨胀粗化(增亮)一幅图像中的区域,而腐蚀则细化(暗化)它们。膨胀 与 腐蚀 之差 强调区域间的边界
- 顶帽变换 和 底帽变换
图像相减 与 开操作 和 闭操作相结合,可产生所谓的 top-hat(顶帽)变换 和 bottom-hat(底帽)变换。
① 灰度级图像 f 的 顶帽变换定义为 f 减去其开操作:
T h a t ( f ) = f − ( f ∘ b ) T_{hat}(f) = f - (f \circ b) That(f)=f−(f∘b)
即得到被结构元减去的峰值
② 灰度级图像 f 的 底帽变换定义为 f的闭操作减去f:
B h a t ( f ) = ( f ⋅ b ) − f B_{hat}(f) = (f \cdot b) - f Bhat(f)=(f⋅b)−f
即得到被结构元填补的凹区域
③ 这些变换的主要应用之一是,在 开操作 或 闭操作中用一个与要被删除物体不拟合(拟合指接触面相贴合) 的结构元,来从一幅图像中删除物体。然后,差操作得到一幅 仅保留已删除分量的图像。
注意:顶帽变换用于暗背景上的亮物体,而底帽变换则用于相反的情况。由于这个原因,当我们谈到这两个变换时,常常分别称为 白顶帽变换 和 黑底帽变换
- 粒度测定
- 纹理分割 P434
见书中
6.4 灰度级形态学重建 P435 - P437
-
灰度级形态学重建基本按照二值图像形态学重建中相同的方法定义
-
测地膨胀 与 测地腐蚀
① 令 f 和 g 分别代表 标记图像 和 模板图像 。假设 f 和 g 是大小相同的灰度级图像,且 f <= g。f 关于 g 的大小(操作的次数)为1得测地膨胀定义为:
D g ( 1 ) ( f ) = ( f ⊕ b ) ∧ g D_g^{(1)}(f) = (f \oplus b) \land g Dg(1)(f)=(f⊕b)∧g
式中, ∧ \land ∧ 表示点方式的最小算子。该式指出,大小为1的测地膨胀是:a) 先计算 b 对 f 的膨胀,b) 然后选择在 每个(x,y)点出该结果 和 g 间的 最小者。f 关于 g 的大小为n的测地膨胀定义为:
D g ( n ) ( f ) = D g ( 1 ) [ D g ( n − 1 ) ( f ) ] D_g^{(n)}(f) = D_g^{(1)}[D_g^{(n-1)}(f)] Dg(n)(f)=Dg(1)[Dg(n−1)(f)]
并有 D g ( 0 ) = f D_g^{(0)} = f Dg(0)=f
② 类似的,f关于g的大小(操作的次数)为1的测地腐蚀定义为
E g ( 1 ) ( f ) = ( f Θ b ) ∨ g E_g^{(1)}(f) = (f \Theta b) \lor g Eg(1)(f)=(fΘb)∨g
式中, ∨ \lor ∨ 表示点方式的最大算子。该式指出,大小为1的测地腐蚀是:a) 先计算 b 对 f 的腐蚀,b) 然后选择在 每个(x,y)点出该结果 和 g 间的 最大者。f 关于 g 的大小为n的测地腐蚀定义为:
E g ( n ) ( f ) = E g ( 1 ) [ E g ( n − 1 ) ( f ) ] E_g^{(n)}(f) = E_g^{(1)}[E_g^{(n-1)}(f)] Eg(n)(f)=Eg(1)[Eg(n−1)(f)]
并有 E G ( 0 ) = f E_G^{(0)} = f EG(0)=f -
灰度图像中,用 膨胀 和 腐蚀 的形态学重建
① 灰度级标记图像f对灰度级模板图像g的膨胀形态学重建,定义为f关于f的测地膨胀反复迭代,直至达到稳定;即:
R g D ( f ) = D g ( k ) ( f ) R_g^D(f) = D_g^(k)(f) RgD(f)=Dg(k)(f)
且k为使 D g ( k ) ( f ) = D g ( k + 1 ) ( f ) D_g^(k)(f) = D_g^(k+1)(f) Dg(k)(f)=Dg(k+1)(f) 成立的最小值
② f 对 g 的腐蚀的形态学重建类似的定义为
R g E ( f ) = E g ( k ) ( f ) R_g^E(f) = E_g^(k)(f) RgE(f)=Eg(k)(f)
且k为使 E g ( k ) ( f ) = E g ( k + 1 ) ( f ) E_g^(k)(f) = E_g^(k+1)(f) Eg(k)(f)=Eg(k+1)(f) 成立的最小值 -
重建开操作 与 重建闭操作
① 图像f 的大小(操作次数)为 n 的 重建开操作定义为,a) 先对f进行大小为n的腐蚀,b) 在由 f 的膨胀重建;即
式中,
(
f
Θ
n
b
)
(f \Theta nb)
(fΘnb) 表示 b 对 f 的 n 次腐蚀。重建开操作的目的是:保护腐蚀后留下的图像分量的形状
② 类似的,图像 f 的大小为 n 的 重建闭操作定义为,a) 先对 f 进行大小(操作次数)为 n 的膨胀,b) 再由 f 的腐蚀重建;即
式中, ( f ⊕ n b ) (f \oplus nb) (f⊕nb) 表示 b 对 f 的n次腐蚀。重建闭操作(重建顶帽)可以通过从一幅图像中减去其重建开操作的结果。
本章总结
- 膨胀 会 扩大 一幅图像的组成部分
- 腐蚀 会 缩小 一幅图像的组成部分
- 测地膨胀是在指定的约束集合下的 膨胀(条件膨胀)
- 测地腐蚀是在指定的约束集合下的 腐蚀(条件腐蚀)