Advertisement

数字图像处理——第九章 形态学图像处理

阅读量:

目录

引言

9.1 预备知识

9.2 腐蚀和膨胀

9.2.1 腐蚀

9.2.2 膨胀

9.2.3 对偶性

9.3 开操作与闭操作

9.4 击中或击不中变换、

9.5 一些基本的形态学算法

9.5.1 边界提取

9.5.2 孔洞填充

9.5.3 连通分量的提取

9.5.4 凸壳

9.5.5 细化

9.5.6 粗化

9.5.7 骨架

9.6 灰度级形态学

9.6.1 腐蚀和膨胀

9.6.2 开操作和闭操作

9.6.3 一些基本的灰度级形态学算法

9.6.4 灰度级形态学重建


引言

mathematical morphology, used to describe the concept of mathematical morphology, is employed as a tool for extracting and describing useful image components related to the shape of regions within an image. Such as boundaries, skeletons, and convex hulls, among others. we are also interested in preprocessing and postprocessing morphological techniques, such as morphological filtering, thinning, and pruning.

9.1 预备知识

数学形态学的语言是集合论。数学形态学中的集合表示图像中的对象。

一个集合

B

的反射表示为

at{B}

,定义如下:

at{B}=eft  w|w=-b,bn B ight

如果

B

是描述图像中物体的像素的集合(二维点),则

at{B}

在B中(x,y)位置坐标被替换成(-x,-y)的位置构成这些点的一个集合。该图形象地展示了这样一个简单的集合及其反射。

集合

B

按照点

z=

的平移,表示为

_{z}

,定义如下:

_{z}=eft  c|c=b+z,bn B ight

形态学中被广泛应用用于表达基于结构元素(SE)的操作的是镜像和平移这两种几何变换;它们被用于提取一幅图像中特定兴趣特性的小型集合或子图像;而这些小集合或子图像是通过观察与分析原始图像的空间分布关系来进行特征提取的关键元素;这些小集合或子图像是由一系列具有特定几何形状和大小的基本单元组成的局部窗口;这些基本单元通常采用规则形状如圆形、矩形等并具有可调节大小的特点;这种操作方法的核心在于通过移动这些基本单元在整个图像上滑动来实现对不同区域特征的检测与识别

结构元的原点选取基于具体问题的相关性,在SE呈现对称性且不显式给出原点时,则设其原点位于对称中心位置。

在图像处理过程中,我们规定structuring element必须以矩形阵列为形式存在。这一过程是通过引入最小必要数量的背景元素来完成的。

9.2 腐蚀和膨胀

9.2.1 腐蚀

作为

Z^{2}

中的集合A和B,表示为A⊖B𝐴⊖𝐵 的B对A的腐蚀定义为

Aminus B=eft  z|_{z}ubseteq A ight

此公式表示了物体B对物体A产生的腐蚀过程:通过平移操作将B与A中的每一个点z相交所形成的所有点集即为此腐蚀作用的结果。假设B被定义为一个结构元素:基于这一前提条件可知,在这种情况下物体B完全嵌入到物体A内部当且仅当物体B与背景区域没有任何共同点。基于上述分析我们可以将腐蚀过程重新表述如下:

Aminus B=eft  z|_{z}ap A ^{c}=  ight

其中

腐蚀的函数原型:

复制代码
>     cv2.erode(img,kernel,iterations)
>  
> ```
>
>
>
> 第一个参数:img表示需要腐蚀图像  
>  第二个参数:kernel指腐蚀操作的内核,默认是一个简单的3X3矩阵,我们也可以利用getStructuringElement()函数指明它的形状。  
>  第三个参数:iterations指的是腐蚀次数,省略是默认为1
>
>

#------------------不同腐蚀次数对照实验--------------------

import cv2

import numpy as np

img = cv2.imread(r'C:\Users\23675\Pictures\1.png', 0)

kernel = cv2.getStructuringElement(cv2.MORPH_ELLIPSE, (5, 5))

erode1 = cv2.erode(img, kernel, iterations=1)

erode2 = cv2.erode(img, kernel, iterations=2)

erode3 = cv2.erode(img, kernel, iterations=3)

cv2.imshow("org", img)

cv2.imshow("result1", erode1)

cv2.imshow("result2", erode2)

cv2.imshow("result3", erode3)

cv2.waitKey(0)

cv2.destroyAllWindows()

#------------------改变腐蚀内核对照实验----------------------

import cv2

import numpy as np

img = cv2.imread(r'C:\Users\23675\Pictures\1.png', 0)

kernel1 = cv2.getStructuringElement(cv2.MORPH_ELLIPSE, (3, 3))

kernel2 = cv2.getStructuringElement(cv2.MORPH_ELLIPSE, (5, 5))

kernel3 = cv2.getStructuringElement(cv2.MORPH_ELLIPSE, (7, 7))

erode1 = cv2.erode(img, kernel1, iterations=1)

erode2 = cv2.erode(img, kernel2, iterations=1)

erode3 = cv2.erode(img, kernel3, iterations=1)

cv2.imshow("org", img)

cv2.imshow("result1", erode1)

cv2.imshow("result2", erode2)

cv2.imshow("result3", erode3)

cv2.waitKey(0)

cv2.destroyAllWindows()

复制代码
不同腐蚀次数对照实验:
![](https://ad.itadn.com/c/weblog/blog-img/images/2025-04-22/vmDolN9YFR3x5fqaQkdXLs4uiGgn.png) 改变腐蚀内核对照实验:
![](https://ad.itadn.com/c/weblog/blog-img/images/2025-04-22/zQmJs8uMUDd45YApSifj0r6tK3GH.png)

### 9.2.2 膨胀

A和B是![Z^{2}](https://ad.itadn.com/c/weblog/blog-img/images/2025-04-22/pQdVHceN9GIaZ0Lvjrmh7PiofFzB.png)中的集合,表示为A⊕B的B对A的膨胀定义为
![A\oplus B=\left \{ z|\(\hat{B}\)_{z}\cap A\neq \O \right \}](https://ad.itadn.com/c/weblog/blog-img/images/2025-04-22/1sHBtQM2OUjFaD4NTS53bZG7J0fo.png)

这个公式是以B关于它的原点的映像,并且以z对映像进行平移为基础。B对A的膨胀是所有位移z的集合,这样,![\hat{B}](https://ad.itadn.com/c/weblog/blog-img/images/2025-04-22/96NwUsLx5Zv1RWK4dqVcpkStFfjQ.png)和A至少有一个元素是重叠的。

与腐蚀不同,腐蚀是一种收缩或细化操作,膨胀则会“增长”或“粗化”二值图像中的物体。这种特殊的方式和粗化的宽度由所用结构元来控制。
![](https://ad.itadn.com/c/weblog/blog-img/images/2025-04-22/g8Wan3Uq0XINmrzTdCSfv5c9EKxA.png)

**膨胀函数原型:**

>
>
> cv2. dilate (img,kernel,iterations)  
>  1.第一个参数:需要膨胀的图  
>  2.第二个参数:膨胀操作的内核,默认是一个简单的3X3矩阵,我们也可以利用getStructuringElement()函数指明它的形状  
>  3.第三个参数:膨胀次数,省略是默认为1
>
>
>
>  
>  也可以定义椭圆形/原型的内核,为此,OpenCV具有一个函数cv.getStructuringElement()。我们只需传递内核的形状和大小,即可获得所需的内核,函数原型:retval=cv.getStructuringElement(shape, ksize[, anchor])  
>  矩形:MORPH_RECT  
>  交叉型:MORPH_CROSS  
>  椭圆形:MORPH_ELLIPSE  
>  第二和第三个参数分别是内核的尺寸以及锚点的位置。一般在调用erode以及dilate函数之前,先定义一个变量来获得。
>
>

import cv2

import numpy as np

img = cv2.imread(r'C:\Users\23675\Pictures\1.png', 0)

kernel = cv2.getStructuringElement(cv2.MORPH_ELLIPSE, (5, 5))

dict = cv2.dilate(img, kernel, iterations=1)

cv2.imshow("org", img)

cv2.imshow("result", dict)

cv2.waitKey(0)

cv2.destroyAllWindows()

复制代码
![](https://ad.itadn.com/c/weblog/blog-img/images/2025-04-22/oqR4SjPyiDIu1gc3BALXE08CzNZs.png)

### 9.2.3 对偶性

膨胀和腐蚀彼此关于集合求补运算和反射运算是对偶的,即
![\(A\ominus B\)^{c}=A^{c}\oplus \hat{B}](https://ad.itadn.com/c/weblog/blog-img/images/2025-04-22/LWJBxspa1fKcunM9ZoDid6VkPeSE.png)
![\(A\oplus B\)^{c}=A^{c}\ominus \hat{B}](https://ad.itadn.com/c/weblog/blog-img/images/2025-04-22/LVEDk3OJBqR9YM7s0aXibxjKUpur.png)

## 9.3 开操作与闭操作

开操作一般会平滑物体的轮廓、断开较窄的狭颈并消除较细的突出物。闭操作同样也会平滑轮廓的一部分,但与开操作相反,它通常会弥合较窄的间断和细长的沟壑,消除较小的孔洞,填补轮廓线中的断裂。结构元B对集合A的开操作,表示为A○B,定义如下
![A\circ B=\(A\ominus B\)\oplus B](https://ad.itadn.com/c/weblog/blog-img/images/2025-04-22/C5RA7pkIv3ObW2GyjJ6zfFiU9tPn.png)

因此,B对A的开操作就是B对A的腐蚀,紧接着用B对结果进行膨胀。

类似地,用结构元B对集合A的闭操作,表示为A●B,定义如下:
![A\bullet B=\(A\oplus B\)\ominus B](https://ad.itadn.com/c/weblog/blog-img/images/2025-04-22/Sp2FOMfjCtTGuZAINwQVv5WkeB9l.png)

如同膨胀和腐蚀的情形那样,开操作和闭操作彼此关于集合求补和反射也是对偶的,即
![](https://ad.itadn.com/c/weblog/blog-img/images/2025-04-22/5biWfOZYUMyu9oPelsvKNwVpB4dc.png)

>
>
> 开操作满足下列性质:
>
>
>
> 1.A○B是A的一个子集(子图像)。  
>  2.如果C是D的一个子集,则C○B是D○B的一个子集。  
>  3.(A○B)○B=A○B。
>
>

>
>
> 类似地,闭操作满足下列性质:
>
>
>
> 1.A是A●B的一个子集(子图像)。  
>  2.如果C是D的一个子集,则C●B是D●B的一个子集。  
>  3.(A●B)●B=A●B。
>
>

由两种情况下的条件可知,算子应用一次后,一个集合的多次开操作或闭操作没有影响。

## 9.4 击中或击不中变换、

形态学击中或击不中变换是形状检测的基本工具。

简单来说击中-击不中运算常用于二值图像,它用于基于结构元素的配置,从图像中寻找具有某种像素排列特征的目标,如单个像素、颗粒中交叉或纵向的特征、直角边缘或其他用户自定义的特征等。计算时,只有当结构元素与其覆盖的图像区域完全相同时,中心像素的值才会被置为1,否则为0。下图给出了一个例子。

## 9.5 一些基本的形态学算法

### 9.5.1 边界提取

表示为β(A)的集合A的边界可以通过先用B对A腐蚀,而后执行A和腐蚀的结果之间的差集得到,即
![\beta \(A\)=A-\(A\ominus B\)](https://ad.itadn.com/c/weblog/blog-img/images/2025-04-22/PkrbVcmyXHN4Z0jDKfIv3TUCq9wL.png)
![](https://ad.itadn.com/c/weblog/blog-img/images/2025-04-22/eG3uJN4X6AjSWKrwqFTbmZM7dLkt.png)

形态学梯度操作就是用膨胀图像减去腐蚀图像的结果,因为膨胀可以增大边沿,腐蚀会缩小边沿,所以形态学梯度变换就能将轮廓提取出来。

### 9.5.2 孔洞填充

孔洞定义为由前景像素相连接的边界所包围的背景区域。孔洞填充可视为边界提取的反过程,它是在边界已知的情况下得到边界包围的整个区域。
![](https://ad.itadn.com/c/weblog/blog-img/images/2025-04-22/mCsP61xwpviOaMoNA75tzRcYy9h4.png)
![](https://ad.itadn.com/c/weblog/blog-img/images/2025-04-22/d7yRHzwJEAFP2XUCYg9scQpSThBM.png)

###  9.5.3 连通分量的提取

从二值图像中提取连通分量是许多自动图像分析应用的核心。令A是包含一个或多个连通分量的集合,并形成一个阵列X0(该阵列的大小与包含A的阵列的大小相同),除了在对应于A中每个连通分量中一个点的各个已知位置处我们已置为1(前景值)外,该阵列的所有其他元素均为0(背景值)。如下迭代过程可完成这一目的:
![](https://ad.itadn.com/c/weblog/blog-img/images/2025-04-22/jg4lA5K6dNnGeqcm87wpxT2Vs9Ut.png)

### 9.5.4 凸壳

如果在集合A内连接任意两个点的直线段都在A的内部,则称A是凸的。任意集合S的凸壳H是包含于S的最小凸集。差集H-S称为S的凸缺。

令![B^{i}](https://ad.itadn.com/c/weblog/blog-img/images/2025-04-22/R4On0d3Q6ohWXtPAE8DVpaSFbgrm.png),i=1,2,3,4表示4个结构元。
![](https://ad.itadn.com/c/weblog/blog-img/images/2025-04-22/JKwmv0BFLejYA54aDnCWpby87kUc.png)

其中,![X_{0}^{i}=A](https://ad.itadn.com/c/weblog/blog-img/images/2025-04-22/P7KyB1E5jlDM4VUnY2LJeWRZ8mwf.png)。当该过程收敛时(即当![X_{k}^{i}=X_{k-1}^{i}](https://ad.itadn.com/c/weblog/blog-img/images/2025-04-22/0mfeXSQldn62rhIgTsqR1cjYiwJB.png)时),我们令![D^{i}=X_{k}^{i}](https://ad.itadn.com/c/weblog/blog-img/images/2025-04-22/DgZaESdGWU0Y296iXKpysROwqz4T.png)。则A的凸壳为
![](https://ad.itadn.com/c/weblog/blog-img/images/2025-04-22/EfwWloBd28XMgF69s75m3JTt4qQS.png)

换句话说,该方法由反复使用B¹对A做击中或不击中变换组成;不在发生进一步变化时,我们执行与A的并集运算,结果称为D¹。这一过程使用B²重复(应用于A),直到不发生进一步的变化,如此往复。

### 9.5.5 细化

结构元B对集合A的细化可表示为A⊗ B,它可以根据击中或击不中变换来定义:
![](https://ad.itadn.com/c/weblog/blog-img/images/2025-04-22/PJCmgf6h3i09Sj1AWYqTwdeokXFa.png)

对称地细化A的一种更有用表达方式是以结构元序列为基础的:
![](https://ad.itadn.com/c/weblog/blog-img/images/2025-04-22/KvCi2kuNVs4Y8FHlQ0thXaIURZbP.png)

式中![B^{i}](https://ad.itadn.com/c/weblog/blog-img/images/2025-04-22/GRhu2z7W15lTjImbPLqM6OsBxV9A.png)是![B^{i-1}](https://ad.itadn.com/c/weblog/blog-img/images/2025-04-22/wBg31vhZYSN0e8TQMCni6IFtDJ5z.png)旋转后的形式。可以使用一个结构元序列将细化定义为
![](https://ad.itadn.com/c/weblog/blog-img/images/2025-04-22/SlDc0kMmNEqwXgPU7axO9FRY5CQT.png)

这种处理是A被B¹细化一次,然后,得到的结果被B²细化一次,如此进行下去,直到A被Bn细化一次。整个过程不断重复,直到得到的结果不再发生变化。
![](https://ad.itadn.com/c/weblog/blog-img/images/2025-04-22/d4mBFCg2uL13yjKc6EAQSvfDYskn.png)

### 9.5.6 粗化

粗化是细化的形态学对偶,定义如下:
![](https://ad.itadn.com/c/weblog/blog-img/images/2025-04-22/nbAqRDO71fkV3yaH8SFJv4we0ztX.png)

其中B是适合于粗化处理的结构元。与细化一样,粗化处理也可以定义为一个系列操作:
![](https://ad.itadn.com/c/weblog/blog-img/images/2025-04-22/zSg7iVeEk8W6QUNj3cOKdt2BPwp4.png)
![](https://ad.itadn.com/c/weblog/blog-img/images/2025-04-22/12hEz6Pfmpsij9OHlwKFtgkC7BRU.png)

### 9.5.7 骨架

如图集合A和骨架S(A)的概念很简单,由该图我们可以推出:

>
>
>   1. 如果z是S(A)的一个点,并且(D)z是A内以z为中心的最大圆盘,则不存在包含(D)z且位于A内的更大圆盘(不必以z为中心)。圆盘(D)z称为最大圆盘。
>   2. 圆盘(D)z在两个或多个不同位置与A的边界接触。
>
![](https://ad.itadn.com/c/weblog/blog-img/images/2025-04-22/rAOyleQvMtWBnp3HsT58ZRUdhPzF.png)

## 9.6 灰度级形态学

f(x,y)和b(x,y)为两个二位数字函数。f(x,y)表示一幅灰度级图像,b(x,y)表示结构元。

灰度级形态学中的结构元分为两类:非平坦或平坦的结构元。
![](https://ad.itadn.com/c/weblog/blog-img/images/2025-04-22/zl0Jxm4FYRWA3yjNtv6nOcITXSou.png)

### 9.6.1 腐蚀和膨胀

当b的原点位于(x,y)处时,用一个平坦的结构元b在(x,y)处对图像f的腐蚀定义为图像f中与b重合区域的最小值。
![](https://ad.itadn.com/c/weblog/blog-img/images/2025-04-22/lQHcTemKrgE7LfnGAJIB3Fy065qZ.png)

当![\hat{b}](https://ad.itadn.com/c/weblog/blog-img/images/2025-04-22/DjsoKC9cUEP2tkX0R1dQFMxBaO3J.png)的原点在(x,y)处时,平坦结构元b在任何位置(x,y)处对图像f的**膨胀** 定义为:图像f中与![\hat{b}](https://ad.itadn.com/c/weblog/blog-img/images/2025-04-22/sUXhW9cYeyRmPdELtgx1wlz5O6NK.png)重合区域的最大值。
![](https://ad.itadn.com/c/weblog/blog-img/images/2025-04-22/7B9MmiGNFxULJVY4rWowDaKObsAd.png)

其中![\hat{b}=b\(-x,-y\)](https://ad.itadn.com/c/weblog/blog-img/images/2025-04-22/sBpKd7eDPGQzWgjYSH2fRXUNabhk.png)。

非平坦结构元具有随定义域变化的灰度级。非平坦结构元bN对图像f的腐蚀定义如下:
![](https://ad.itadn.com/c/weblog/blog-img/images/2025-04-22/ol7bmsUKuYNd8vQRJp1wIPW6MDCg.png)

使用非平坦结构元的膨胀定义如下:
![](https://ad.itadn.com/c/weblog/blog-img/images/2025-04-22/1vU3wDpAfxtQayk9m4IePz6sSLKM.png)

腐蚀和膨胀是关于函数的补集和反射对偶的,即
![](https://ad.itadn.com/c/weblog/blog-img/images/2025-04-22/ETYujWG416DQMytaKqbxBi3N758h.png)

### 9.6.2 开操作和闭操作

灰度级图像的开操作和闭操作的表达式,与二值图像的对应操作具有相同的形式。结构元b对图像f的开操作表示为f○b,即
![](https://ad.itadn.com/c/weblog/blog-img/images/2025-04-22/JkcPaNG9TFydjzUY4xgb5WXQLI3l.png)

像之前那样,开操作先只用b对f做腐蚀,随后用b对所得结果做膨胀。类似地,b对f的闭操作表示为f●b,即
![](https://ad.itadn.com/c/weblog/blog-img/images/2025-04-22/BHO7iUbQY38XsxEnzWVpM4Po9RGr.png)

灰度级图像的开操作和闭操作关于函数的补集和结构元的反射是对偶的:
![](https://ad.itadn.com/c/weblog/blog-img/images/2025-04-22/XkslBhD0RPwguFKAiOtVGmzHCc2I.png)
![](https://ad.itadn.com/c/weblog/blog-img/images/2025-04-22/ylG3ZLz5jtQifFBc0dqg82XksvUm.png)

### 9.6.3 一些基本的灰度级形态学算法

>
>
> **形态学平滑**
>
>
>
> 因为开操作抑制比结构元小的量细节,而闭操作抑制暗细节,所以它们常常以形态滤波的形式结合起来平滑图像和去除噪声。
>
>

>
>
> **形态学梯度**
>
>
>
> 腐蚀和膨胀可与图像相减结合起来得到一幅图像的形态学梯度,形态学梯度由g定义:
>
>
>
> ![](https://ad.itadn.com/c/weblog/blog-img/images/2025-04-22/mfWIHpbF4OqdwCZKsSveToP9j6yJ.png)
>
>
>
> 膨胀粗化一幅图像中的区域,腐蚀则细化它们,膨胀和腐蚀之差强调区域间的边界。同质区域不受影响(只要SE相对较小),因此相减操作趋于消除同质区域。最终结果是边缘被增强而同质区域的贡献则被抑制的图像。
>
>

>
>
> **顶帽变换和底帽变换**
>
>
>
> 图像相减与开操作和闭操作相结合,可产生所谓的顶帽变换和底帽变换。灰度级图像f的顶帽变换定义为f减去其开操作:
>
>
>
> ![](https://ad.itadn.com/c/weblog/blog-img/images/2025-04-22/MIHF2u5coK7eLPqDvaOjZEGsQNTU.png)
>
>
>
> 类似地,f的底帽变换定义为f的闭操作减去f:
>
>
>
> ![](https://ad.itadn.com/c/weblog/blog-img/images/2025-04-22/kD9ZLFxrm2ChfM4nscSNGy1YHKUI.png)
>
>
>
> 顶帽变换用于暗背景上的亮物体,可以得到图像中面积小于结构元且比周围亮的区域;底帽变换用于亮背景上的暗物体,可以得到图像中面积小于结构元且比周围暗的区域。故也常称为白顶帽变换和黑底帽变换。
>
>
>
>

>
>
> **粒度测定**
>
>
>
> 粒度测定属于判断图像中颗粒的大小分布的领域。形态学可间接用于估计颗粒的大小分布,而不需要识别并测量图像中的每个颗粒。  
>  对于比背景亮且具有规则形状的颗粒,基本方法是使用逐渐增大的结构元对图像执行开运算。对于每一个开运算,计算该开运算中像素值的和,该和有时称为表面区域。因为开运算会降低亮特征的灰度,故表面区域会睡着结构元的增大而减小。
>
>

>
>
> **纹理分割**
>
>
>
> 以纹理内容为基础找到两个区域的边界。将一幅图像分为区域的处理称为分割。
>
>

### 9.6.4 灰度级形态学重建

令f和g分别代表标记图像和模板图像,假设f和g是大小相同的灰度级图像,且f≤g。f关于g的大小为1的测地膨胀定义为
![](https://ad.itadn.com/c/weblog/blog-img/images/2025-04-22/n7FcmGBIigf8oZvSlTpYq0N9huwO.png)

其中∧代表点方式的最小算子。即先计算b对f的膨胀,然后选择在每个(x,y)点处该结果和g间的最小者。  
根据b为平坦结构元还是非平坦结构元,膨胀的计算公式不同,可看前面的介绍。  
f关于g的大小为n的测地膨胀为:
![](https://ad.itadn.com/c/weblog/blog-img/images/2025-04-22/BjEYXMKWrAbv9cg41D237LOuFQJp.png)

并有![D_{g}^{\(0\)}\(f\)=f](https://ad.itadn.com/c/weblog/blog-img/images/2025-04-22/YMfPi3RIlTBCsdHt7geF2NVn9LQO.png)

类似地,f关于g的大小为1的测地腐蚀定义为
![](https://ad.itadn.com/c/weblog/blog-img/images/2025-04-22/GsepanikbZz57XOhE8VJUjw3TIrq.png)

其中,∨代表点方式的最大算子。f关于g的大小为n的测地腐蚀为:
![](https://ad.itadn.com/c/weblog/blog-img/images/2025-04-22/2uNC3EQaSZvzX4bk8FYjGn65mUh7.png)

并有![E_{g}^{\(0\)}\(f\)=f](https://ad.itadn.com/c/weblog/blog-img/images/2025-04-22/7Sq8g2b9OyWCkIEN1Yvir0VcXdJQ.png)

灰度级标记图像f对灰度级模板图像g的膨胀形态学重建,定义为f关于g的测地膨胀反复迭代,直至达到稳定;即
![](https://ad.itadn.com/c/weblog/blog-img/images/2025-04-22/gd1leFmLHCiwGjQnYoSs46cUyEJ0.png)

并有k应使![D_{g}^{\(k\)}\(f\)=D_{g}^{\(k+1\)}\(f\)](https://ad.itadn.com/c/weblog/blog-img/images/2025-04-22/VMYSkDQvaOtyBJ5egG3KxlUzIfrd.png)

f对g的腐蚀的形态学重建类似地定义为:
![](https://ad.itadn.com/c/weblog/blog-img/images/2025-04-22/TJnCzHGU30Vcmxqr4EDw1yQWRlKb.png)

并有k应使![E_{g}^{\(k\)}\(f\)=E_{g}^{\(k+1\)}\(f\)](https://ad.itadn.com/c/weblog/blog-img/images/2025-04-22/vWkyaiZzE6MOTDtQrBc3Xd8h9olp.png)

图像大小为n的重建开操作定义为,先对f进行大小为n的腐蚀,再由f的膨胀重建
![](https://ad.itadn.com/c/weblog/blog-img/images/2025-04-22/YX9MjZf6az2tpryWDVAO5dvFKkLE.png)

图像大小为n的重建闭操作定义为,先对f进行大小为n的膨胀,再由f的腐蚀重建
![](https://ad.itadn.com/c/weblog/blog-img/images/2025-04-22/Jm9qs2wynSrLWIxMaoVFZ7KD5YHz.png)

由于对偶性,图像的重建闭运算可以用图像的求补得到:对一幅图像求补,然后计算其重建开运算,再对其结果求补。

全部评论 (0)

还没有任何评论哟~