数字图像处理MATLAB学习笔记(八)

这篇博客详细介绍了MATLAB中的形态学图像处理,包括基本概念、膨胀、腐蚀、开闭操作、标记连通分量及灰度级形态学等。通过实例展示了膨胀、腐蚀的原理和操作,以及如何使用MATLAB的相关函数实现这些操作。
摘要由CSDN通过智能技术生成

数字图像处理MATLAB学习笔记(八)

Morphological Image Processing形态学图像处理

1. Preliminaries

1.1 Some Basic Concepts from Set Theory

简单的、基本的不阐述。

满足一定特殊条件的像素坐标集合B记为 B = { w ∣ condition } B=\{w|\text{condition}\} B={ wcondition}

所有像素坐标的集合不属于集合A,即A的补集,记为 A C = { w ∣ w ∉ A } A^C=\{w|w\notin A\} AC={ ww/A}

morphological operation通常还需要两个算子,它们特别针对元素是坐标的集合。

集合B的反射 B ^ \hat{B} B^定义为 B ^ = { w ∣ w = − b , b ∈ B } \hat{B}=\{w|w=-b,b\in B\} B^={ ww=b,bB}

z = ( z 1 , z 2 ) z=(z_1,z_2) z=(z1,z2)对集合A的平移表示为 ( 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={ cc=a+z,aA}

1.2 Binary Images, Sets and Logical Operators 二值图像、集合、逻辑算子

形态学中,二值图像被看作是前景(单值)像素的集合,集合的元素属于 Z 2 Z^2 Z2

在MATLAB中,逻辑运算对应关系如下表所示:

Set Operation MATLAB Expression for Binary Images Name
A ∩ B {A\cap B} AB A & B AND
A ∪ B {A\cup B} AB A | B OR
A C {A^C} AC ~A NOT
A − B {A-B} AB A & ~B DIFFERENCE

2. Dilation and Erosion膨胀和腐蚀

2.1 Dilation膨胀

Dilation是使图像中的目标“生长”或“变粗”的操作。

图像A被structuring element结构元B膨胀,定义为 A ⊕ B = { z ∣ ( B ^ z ∩ A ≠ ϕ ) } A\oplus B=\{z|(\hat{B}_z\cap A \ne\phi)\} AB={ z(B^zA=ϕ)}。A被B膨胀是由所有结构元的原点位置组成的集合,反射并平移后的B至少与A的一个元素重叠。膨胀满足结合律交换律

也就是说,图像A根据结构元B及其膨胀原点位置进行膨胀操作。

在MATLAB中,使用function imdilate

D = imdilate(A, B)

这里假定A和B都是二值的,那么结构元B中的原点会被自动计算,依据的公式为

floor((size(B) + 1)/2)

这一操作得到包含结构元中点坐标的二维向量。如果需要用原点不在中心的结构元来处理,方法是用0填充B,以使原始的中心移到希望的位置。

Example An application of dilation

我们通过如下结构元对图像进行膨胀处理,结构元B为:
0 1 0 1 1 1 0 1 0 \begin{matrix} 0&1&0\\ 1&\color{red}\bold{1}&1\\ 0&1&0 \end{matrix} 010111010
原点为中心位置的1

>> A = imread('Fig0906(a).tif');
>> B = [0 1 0; 1 1 1; 0 1 0];
>> D = imdilate(A, B);
>> subplot(121);imshow(A);axis off
>> subplot(122);imshow(D);axis off
image-20211213150428998

2.2 Structuring Element Decomposition结构元的分解

假定结构元B可以描述为结构元 B 1 B_1 B1 B 2 B_2 B2的膨胀: B = B 1 ⊕ B 2 B=B_1\oplus B_2 B=B1B2

因膨胀满足结合律,我们可以得到 A ⊕ B = A ⊕ ( B 1 ⊕ B 2 ) = ( A ⊕ B 1 ) ⊕ B 2 A\oplus B=A\oplus(B_1\oplus B_2)=(A\oplus B_1)\oplus B_2 AB=A(B1B2)=(AB1)B2。结合律很重要,因为计算膨胀时需要的时间正比于结构元中非零像素的个数。

换句话说,一个如下的5x5数组的结构元可以分解为如下两个结构元的膨胀:
[ 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ] = [ 1 1 1 1 1 ] ⊕ [ 1 1 1 1 1 ] \begin{bmatrix} 1&1&1&1&1\\ 1&1&1&1&1\\ 1&1&\color{red}\bold{1}&1&1\\ 1&1&1&1&1\\ 1&1&1&1&1 \end{bmatrix}= \begin{bmatrix} 1&1&\color{red}\bold{1}&1&1 \end{bmatrix}\oplus \begin{bmatrix} 1\\ 1\\ \color{red}\bold{1}\\ 1\\ 1 \end{bmatrix} <

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值