形态学重建可以概念上被认为是图像的重复扩张,称为标记图像,直到标记图像的轮廓与第二幅图像相匹配,称为掩码图像.在形态学重建中,标记图像的峰值“扩散”或扩张。
这个图在一维中说明了这种处理。每次连续的扩张都被限制在掩膜下。当进一步放大不再改变图像时,处理也停止。最后的膨胀就是重建的像。(注意:这个操作在工具箱中的实际实现要高效得多。看到imreconstruct
有关更多详细信息的参考页面。)该图显示了标记的连续扩张。
标记图像的重复膨胀,受遮罩约束
形态重建是基于形态扩张,但注意以下独特性质:
处理是基于两个图像,一个标记和一个掩码,而不是一个图像和一个结构元素。
加工是基于概念的像素连接,而不是结构元素。
重复处理,直到图像稳定,不再变化。
形态学重建处理一个图像,称为标记,基于另一个图像的特征,称为面具.在标记图像中的高点或峰值指定在处理开始的位置。处理继续,直到图像值停止更改。
为了说明形态重建,考虑这张简单的图片。它包含两个主要区域,即包含值的像素块14.
和18.
.背景主要设置为10.
,一些像素设置为11.
.
要从形态学上重建该图像,请执行以下步骤:
创建标记图像。与扩张和侵蚀的结构元素一样,标记图像的特性确定了形态重建中的处理。标记图像中的峰值应识别要强调的掩模图像中对象的位置。
创建标记图像的一种方法是使用掩模图像中的常数使用imsubtract.
.
MARKER = IMSUBTRACT(A,2)MARKER = 8 8 8 8 8 8 8 8 8 8 8 8 12 12 12 8 8 8 9 8 8 8 12 12 8 9 8 9 8 9 88 8 8 8 8 8 8 8 8 8 8 9 8 8 8 16 16 10 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 88 8 8 8 8 8 9 8 8 8 8
打电话给imreconstruct
函数用于形态学上重建图像。在输出图像中,注意除强度峰值外的所有强度波动是如何被去除的。
重新= imreconstruct(标记,掩码)
灰度图像可以思考三维:X.- 和y-axes表示像素位置和Z.-axis表示每个像素的强度。在这种解释中,强度值表示高度,如在地形图中。图像,峰值和谷在地形术语中的高强度和低强度的区域可能是重要的形态特征,因为它们通常标记相关的图像对象。
例如,在几个球形对象的图像中,高强度点可以代表物体的顶部。使用形态学处理,这些最大可用于识别图像中的对象。
本节涵盖以下主题:
本节使用以下术语。
术语 |
定义 |
---|---|
全球最大值 |
图像中最高的区域最大值。有关更多信息,请参阅该表中的区域最大值项。 |
全球最小值 |
图像中最低的区域最小值。有关更多信息,请参阅此表中的区域最小值的条目。 |
区域最大值 |
连通的恒强度像素集,不可能达到具有更高强度的点而不首先下降;也就是说,具有相同强度值的像素的连接分量,T.,周围都是值小于的像素T.. |
区域最小值 |
没有首先上升的情况下,不可能达到强度较低的点的恒定强度的连接像素集;也就是说,具有相同强度值的像素的连接分量,T.围绕着所有值大于的像素包围T.. |
一个图像可以有多个区域最大值或最小值,但只有一个全局最大值或最小值。确定图像的峰或谷可以用来创建标记图像,用于形态重建。
该图说明了1-D中的概念。
工具箱包括一些函数,可以用来查找图像中的高强度或低强度区域:
当imregionalmax.
和imregionalmin
功能识别所有区域最小值或最大值。
当imextendedmax.
和ImextendedMin.
函数识别大于或小于指定阈值的区域极小值或极大值。
函数接受灰度图像作为输入,返回二进制图像作为输出。在输出的二值图像中,区域极小值或极大值被设为1
;所有其他像素都设置为0.
.
例如,这个简单的图像包含两个主要区域最大值,其中包含值的像素块13.
和18.
和几个较小的最大值,设置为11.
.
返回的二进制图像imregionalmax.
确定所有这些区域最大值。
b = imregionalmax(a)
你可能只想识别图像中强度变化最大的区域;即像素与相邻像素之间的差大于(或小于)某一阈值。例如,为了只找到样本图像中的区域最大值,A.
,这是至少两个高于邻居的单位,使用imextendedmax.
.
b = imextendedmax(a,2)
在图像中,每一个强度的小波动代表一个区域的最小值或最大值。你可能只对显著的极小值或极大值感兴趣,而对这些由背景纹理引起的较小的极小值和极大值不感兴趣。
为了去除不太显著的极小值和极大值,但保留显著的极小值和极大值,使用imhmax.
或者imhmin
函数。使用这些功能,您可以指定对比标准或阈值级别,H.,它抑制所有高度小于的最大值H.或者它的最小值大于H..
注意
当imregionalmin
那imregionalmax.
那ImextendedMin.
,imextendedmax.
函数返回一个二进制图像,标记图像中区域最小值和最大值的位置。当imhmax.
和imhmin
功能产生改变的图像。
例如,这个简单的图像包含两个主要区域最大值,其中包含值的像素块14.
和18.
和几个较小的最大值,设置为11.
.
除了两个重要的最大值外,消除所有区域最大值,使用imhmax.
,指定阈值2
.注意imhmax.
只影响最大值;没有其他像素值改变。虽然它们的高度降低,但两个重要的最大值仍然存在。
b = imhmax(a,2)
该数字从样本图像中取出第二行,以在1-D中示出imhmax.
更改图像的配置文件。
您可以使用该图像在图像中强调特定的最小值(暗对象)imimposemin
函数。当imimposemin
功能使用形态重建来消除图像中的所有最小值,除了您指定的最小值。
为了说明施加最小的过程,此代码创建一个包含两个主要区域最小值和其他几个区域最小值的简单图像。
掩码= uint8 (10 * 1 (10,10));面具(6:8 6:8)= 2;面具(2:4,2:4)= 7;面具(3)= 5;面具(9)= 9;面具(8)= 9;面具(9日2)= 9;面具(8,3)= 9
为了获得一个图像,强调两个最深的最小值,并删除所有其他的,创建一个标记图像,以确定感兴趣的两个最小值。您可以通过显式地将某些像素设置为特定值或使用其他形态函数来提取您想要在蒙版图像中强调的特征来创建标记图像。
这个例子用途ImextendedMin.
得到一个二值图像,显示两个最深的极小值的位置。
标志= imextendedmin(面具,1)
现在使用imimposemin
在蒙版图像中标记图像指定的点上创建新的最小值。请注意imimposemin
将标记图像指定的像素值设置为数据类型支持的最低值(金宝app0.
对于uint8.
价值观)。imimposemin
还会改变图像中所有其他像素的值以消除其他最小值。
i = imimposemin(掩码,标记)i = 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 1111 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 0 0 0 0 11 11 11 11 11 11 0 0 0 0 11 11 11 11 11 11 11 11 11 11 11 11 11 1111 11 11 11 11 11 11 11 11 11
这个图在一维中说明了如何做到这一点imimposemin
更改图像的第2行的轮廓。
实施最低