当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python cucim.skimage.morphology.reconstruction用法及代码示例


用法:

cucim.skimage.morphology.reconstruction(seed, mask, method='dilation', selem=None, offset=None)

执行图像的形态重建。

通过扩张进行形态重建类似于基本形态扩张:high-intensity 值将替换附近的 low-intensity 值。然而,基本膨胀运算符使用结构元素来确定输入图像中的值可以传播多远。相比之下,重建使用两个图像:一个 “seed” 图像,它指定传播的值,以及一个 “mask” 图像,它给出每个像素的最大允许值。与结构元素一样,掩码图像限制了high-intensity 值的传播。通过侵蚀进行的重建正好相反:low-intensity 值从种子图像传播并受到掩码图像的限制,掩码图像表示最小允许值。

或者,您可以将重建视为隔离图像连接区域的一种方法。对于膨胀,重建将种子图像中由局部最大值标记的区域连接起来:相邻像素less-than-or-equal-到那些种子连接到种子区域。值大于种子图像的局部最大值将被截断为种子值。

参数

seedndarray

种子图像(又名标记图像),它指定膨胀或侵蚀的值。

maskndarray

每个像素的最大(膨胀)/最小(侵蚀)允许值。

method{‘dilation’|'侵蚀'},可选

通过膨胀或腐蚀进行重建。在膨胀(或腐蚀)中,种子图像被膨胀(或腐蚀)直到被掩模图像限制。对于膨胀,每个种子值必须小于或等于对应的掩码值;对于侵蚀,反之亦然。默认为‘dilation’。

selemndarray,可选

邻域表示为 1 和 0 的 n-D 数组。默认值为半径等于 1 的 n-D 正方形(即 3x3 正方形用于 2D 图像,3x3x3 立方体用于 3D 图像等)

offsetndarray,可选

结构元素中心的坐标。默认位于 selem 的几何中心,在这种情况下,selem 尺寸必须是奇数。

返回

reconstructedndarray

形态重建的结果。

注意

该算法取自 [1][2][3] 中讨论了灰度重建的应用。

参考

1

Robinson, “Efficient morphological reconstruction: a downhill filter”, Pattern Recognition Letters 25 (2004) 1759-1767.

2

Vincent, L., “Morphological Grayscale Reconstruction in Image Analysis: Applications and Efficient Algorithms”, IEEE Transactions on Image Processing (1993)

3

Soille, P., “Morphological Image Analysis: Principles and Applications”, Chapter 6, 2nd edition (2003), ISBN 3540429883.

例子

>>> import numpy as np
>>> from skimage.morphology import reconstruction

首先,我们创建一个正弦掩模图像,在中间和末端都有峰值。

>>> x = np.linspace(0, 4 * np.pi)
>>> y_mask = np.cos(x)

然后,我们创建一个初始化为最小掩码值的种子图像(对于通过扩张进行重建,min-intensity 值不会扩散)并将“seeds” 添加到左右峰值,但在峰值的一小部分 (1) .

>>> y_seed = y_mask.min() * np.ones_like(x)
>>> y_seed[0] = 0.5
>>> y_seed[-1] = 0
>>> y_rec = reconstruction(y_seed, y_mask)

重建图像(或曲线,在这种情况下)与掩模图像完全相同,只是峰值被截断为 0.5 和 0。中间峰值完全消失:由于该峰值区域中没有种子值,因此其重建value 被截断为周围的值 (-1)。

作为一个更实际的例子,我们尝试通过减去重建创建的背景图像来提取图像的明亮特征。

>>> y, x = np.mgrid[:20:0.5, :20:0.5]
>>> bumps = np.sin(x) + np.sin(y)

要创建背景图像,请将蒙版图像设置为原始图像,将种子图像设置为具有强度偏移的原始图像,h

>>> h = 0.3
>>> seed = bumps - h
>>> background = reconstruction(seed, bumps)

生成的重建图像看起来与原始图像完全相同,但凸起的峰值被切断。从原始图像中减去这个重建的图像只留下凹凸的峰值

>>> hdome = bumps - background

此操作称为图像的h-dome,并在减影图像中留下高度为h 的特征。

相关用法


注:本文由纯净天空筛选整理自rapids.ai大神的英文原创作品 cucim.skimage.morphology.reconstruction。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。