第 5 章 形态学图像处理
本章概括
本章介绍数学形态学方法。核心思想是用结构元探测图像集合的形状。内容包括集合基础、结构元、腐蚀、膨胀、开闭运算、击中击不中变换、边界提取、孔洞填充、连通分量、凸壳、细化、粗化、骨架以及灰度形态学。重点是掌握结构元如何影响处理结果。
5.1 预备知识
二值形态学把图像看成 $Z^2$ 上的点集合。目标像素构成集合 $A$,结构元构成集合 $B$。结构元相当于一个小模板,用来探测目标的形状、大小、方向和连通性。
结构元的选择非常关键:小结构元保留更多细节,大结构元会删除更小的目标或间隙;方向性结构元可检测线段、边缘或特定形状。
如何使用结构元
结构元在图像上平移。每到一个位置,都判断结构元与目标集合的包含、相交或匹配关系。PPT 中的结构元示意图应理解为“用一个已知形状去探测图像中的未知形状”。
5.2 二值图像中的基本形态学运算
5.2.1 腐蚀
腐蚀定义为:
$$ A\ominus B={z\mid (B)_z\subseteq A} $$
其中 $(B)_z$ 表示结构元 $B$ 平移到位置 $z$ 后的集合。只有当结构元完全包含在目标集合 $A$ 中,位置 $z$ 才保留。
腐蚀的作用是收缩目标、消除小突出、断开细连接。结构元越大,目标收缩越明显。
图示说明
腐蚀示例图展示了目标边界向内收缩的效果:细小目标可能被完全删除,狭窄连接可能断开,因此腐蚀常用于去除小噪声或分离粘连目标。
5.2.2 膨胀
膨胀定义为:
$$ A\oplus B={z\mid (\hat{B})_z\cap A\ne\varnothing} $$
其中 $\hat{B}$ 是结构元关于原点的反射。只要结构元与目标集合有交集,该位置就被加入输出。
膨胀的作用是扩张目标、填补小孔、连接邻近断裂区域。结构元越大,扩张越明显。
对偶性
腐蚀和膨胀具有对偶关系:
$$ (A\ominus B)^c=A^c\oplus \hat{B} $$
$$ (A\oplus B)^c=A^c\ominus \hat{B} $$
其中 $A^c$ 表示补集。对偶性说明对前景腐蚀等价于对背景膨胀。
5.3 开运算和闭运算
开运算为先腐蚀后膨胀:
$$ A\circ B=(A\ominus B)\oplus B $$
它可以去除小目标、断开细连接、平滑目标轮廓,但总体不会明显扩大目标。
闭运算为先膨胀后腐蚀:
$$ A\bullet B=(A\oplus B)\ominus B $$
它可以填补小孔、连接窄断裂、平滑轮廓,但总体不会明显缩小目标。
| 运算 | 顺序 | 主要作用 | 典型影响 |
|---|---|---|---|
| 腐蚀 | 结构元完全包含才保留 | 收缩目标 | 去小噪声、断开细连接 |
| 膨胀 | 结构元与目标相交即保留 | 扩张目标 | 填小孔、连接断裂 |
| 开运算 | 腐蚀再膨胀 | 去除小亮目标 | 保留较大目标形状 |
| 闭运算 | 膨胀再腐蚀 | 填补小暗孔 | 连接近邻目标 |
5.4 击中击不中变换
击中击不中变换用于检测特定形状,要求一个结构元匹配目标,另一个结构元匹配背景:
$$ A\otimes B=(A\ominus B_1)\cap(A^c\ominus B_2) $$
其中 $B_1$ 用于匹配前景,$B_2$ 用于匹配背景。它常用于端点检测、角点检测和细化中的模板匹配。
5.5 基本形态学算法
边界提取
边界可由原图减去腐蚀结果得到:
$$ \beta(A)=A-(A\ominus B) $$
腐蚀去掉边缘像素,因此差集保留目标边界。
孔洞填充
孔洞填充从孔内某个种子点开始,反复膨胀并限制在背景区域内:
$$ X_k=(X_{k-1}\oplus B)\cap A^c $$
迭代直到 $X_k=X_{k-1}$。最后 $X_k\cup A$ 即为填洞结果。
连通分量提取
连通分量提取也可通过形态学重建完成。从一个目标像素种子开始反复膨胀,并与原集合 $A$ 相交,直到稳定:
$$ X_k=(X_{k-1}\oplus B)\cap A $$
该方法可逐个提取连通区域。
凸壳、细化、粗化和骨架
凸壳用于得到包含目标的最小凸集合;细化逐步删除边界像素但保持连通性;粗化与细化相反,用于补充结构;骨架提取保留目标的中轴结构,适合形状描述和识别。
骨架可理解为目标内部到边界距离局部最大的点集合。PPT 中骨架示例图说明:骨架保留了目标拓扑和主要形状,但去除了宽度信息。
5.6 灰度级形态学
灰度形态学将二值集合运算推广到灰度函数。结构元不再只判断包含或相交,而是参与局部最大值和最小值运算。
灰度膨胀可写为:
$$ (f\oplus b)(x,y)=\max_{(s,t)\in b}{f(x-s,y-t)+b(s,t)} $$
灰度腐蚀可写为:
$$ (f\ominus b)(x,y)=\min_{(s,t)\in b}{f(x+s,y+t)-b(s,t)} $$
灰度膨胀会增强亮区域、扩展亮细节;灰度腐蚀会增强暗区域、收缩亮区域。灰度开运算可去除小亮结构,灰度闭运算可填补小暗结构。
灰度形态学算法
灰度顶帽变换用于提取比背景亮的小目标:
$$ T_{hat}(f)=f-(f\circ b) $$
黑帽变换用于提取比背景暗的小结构:
$$ B_{hat}(f)=(f\bullet b)-f $$
它们常用于非均匀背景校正、细小目标增强和缺陷检测。