04_Machine Vision_形态学图像处理

Outline

  • Introduction
  • 集合论与逻辑运算
  • Dilation 和 Erosion
  • 开运算与闭运算
  • 形态学算法和应用

Introduction

形态学(Morphology)不关注像素的具体灰度值,只关注像素的几何分布和结构。

  • 最常见的处理对象是二值图像,但也可以处理灰度图像。
    二值图像可以定义为像素集:

    = { a ∣ a = ( x , y ) , f ( x , y ) = 1 } = \{ a \mid a = (x, y), f(x, y) = 1 \} ={aa=(x,y),f(x,y)=1}

    其中 f ( x , y ) = 1 f(x, y)=1 f(x,y)=1 代表白色区域, f ( x , y ) = 0 f(x, y)=0 f(x,y)=0 代表黑色区域。

  • 用于提取图像中的结构信息的有效工具。

    • 表示或者描述图片的形状、边界
  • 通常作为图像分割或者边缘检测的前处理或者后处理步骤

集合论与逻辑运算公式

OperationEquationDescription
Translation ( A ) z = { w ∣ w = a + z ,  for  a ∈ A } (A)_z = \{ w \mid w = a + z, \text{ for } a \in A \} (A)z={ww=a+z, for aA} A A A 平移到 z z z,主要用于图像的几何变换,比如平移、旋转、缩放等
Reflection B ^ = { w ∣ w = − b ,  for  b ∈ B } \hat{B} = \{ w \mid w = -b, \text{ for } b \in B \} B^={ww=b, for bB}围绕原点反射 B B B中所有元素,用于计算膨胀、腐蚀等中的结构元素变换
Complement A c = { w ∣ w ∉ A } A^c = \{ w \mid w \notin A \} Ac={ww/A}计算 A A A的补集,主要用于翻转黑白像素。
Difference A − B = { w ∣ w ∈ A , w ∉ B } A - B = \{ w \mid w \in A, w \notin B \} AB={wwA,w/B} <br> = A ∩ B c = A \cap B^c =ABc A A A中去除 B B B的元素,主要用于目标提取,或者去除小噪声
Dilation A ⊕ B = { z ∣ ( B ^ ) z ∩ A ≠ ∅ } A \oplus B = \{ z \mid (\hat{B})_z \cap A \neq \emptyset \} AB={z(B^)zA=}扩张 A A A的边界,主要用于连接相邻区域,增强前景区域等
Erosion A ⊖ B = { z ∣ ( B ) z ⊆ A } A \ominus B = \{ z \mid (B)_z \subseteq A \} AB={z(B)zA}缩小 A A A的边界,主要用于去除噪声,分割目标等
Dilation (膨胀)

膨胀可以看作是用结构元素扫描图像,如果遇到相同的元素,则膨胀图像。计算后目标区域会变大,边界会向外扩张。

A ⊕ B = { z ∣ ( B ^ ) z ∩ A ≠ ∅ } A \oplus B = \{ z \mid (\hat{B})_z \cap A \neq \emptyset \} AB={z(B^)zA=}
其中, A A A是输入图像, B B B是结构元素,用于定义膨胀操作的作用范围。 B ^ \hat{B} B^表示 B B B的反射,即 B ^ = { − b ∣ b ∈ B } \hat{B} = \{ -b \mid b \in B \} B^={bbB},而 ( B ) z (B)_z (B)z表示 B B B平移到位置 z z z

公式表示:如果 ( B ^ ) z (\hat{B})_z (B^)z A A A有交集,则 z z z属于膨胀后的图像。

  • 之所以要用 B ^ \hat{B} B^,而不是直接用 B B B主要原因是为了保证dilation和erosion的对偶性。
  • 结构元素可以是不同的形状,会影响膨胀的方式。
    • 方形,均匀向各个方向扩张
    • 圆形,适合处理曲线和圆形目标
    • 十字形,适合水平和垂直方向的扩张,适合处理线条和边缘
  • 可以类比为卷积运算, B B B可以看作是卷积核,翻转之后滑动到图像的各个位置计算

图形理解:
在这里插入图片描述#### Erosion(腐蚀)

腐蚀主要是可以看作是结构元素在图像上滑动,如果结构元素的所有像素都在图像中,则保留该像素,否则去除该像素。计算后目标区域会变小,边缘像素会被去除,比如孤立的噪声点。

A ⊖ B = { z ∣ ( B ) z ⊆ A } A \ominus B = \{ z \mid (B)_z \subseteq A \} AB={z(B)zA}

膨胀和腐蚀是对偶运算,可以理解为:

  • 膨胀的补集等于腐蚀补集的膨胀
  • 腐蚀的补集等于膨胀补集的腐蚀

图像理解:
在这里插入图片描述

Opening(开运算)

开运算是一种复合运算方式,先腐蚀后膨胀,可以平滑对象边界,去除小噪声,保留主要结构。
A ∘ B = ( A ⊖ B ) ⊕ B A \circ B = (A \ominus B) \oplus B AB=(AB)B

  • 先腐蚀移除噪声,缩小目标区域
  • 再膨胀恢复目标区域,避免图像变小

主要应用:

  • 图像去噪
  • 分割图像中连接的区域
  • 边缘检测
  • 医学图像处理、字符识别OCR等
Closing(闭运算)

闭运算是开运算的对偶运算,先膨胀后腐蚀,可以平滑对象边界,填充小孔,保留主要结构。
A ∙ B = ( A ⊕ B ) ⊖ B A \bullet B = (A \oplus B) \ominus B AB=(AB)B

  • 先膨胀连接目标区域,消除小孔
  • 再腐蚀恢复主体形状,避免过度拓展

主要应用:

  • 填充孔洞
  • 连接断裂区域
  • 消除目标的小凹陷或者边缘缺失的部分

图像解释:
在这里插入图片描述

  • 备注
    • A A A A ∙ B A \bullet B AB 的子集
    • A ∘ B A \circ B AB A A A 的子集
图像学算法

边界提取
β ( A ) = A − ( A ⊖ B ) \beta(A) = A - (A \ominus B) β(A)=A(AB)

区域填充

X k = ( X k − 1 ⊕ B ) ∩ A c , X_k = (X_{k-1} \oplus B) \cap A^c, Xk=(Xk1B)Ac,

A F = X k ∪ A A^F = X_k \cup A AF=XkA

提取联通区域
X k = ( X k − 1 ⊕ B ) ∩ A , k = 1 , 2 , 3 , … X_k = (X_{k-1} \oplus B) \cap A, \quad k = 1,2,3,\dots Xk=(Xk1B)A,k=1,2,3,

去噪

  • 去除小颗粒噪声,细小孤立点
    ( A ∘ B ) ∙ B (A \circ B) \bullet B (AB)B
  • 填充内部噪声,在清理边缘干扰
    ( A ∙ B ) ∘ B (A \bullet B) \circ B (AB)B
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值