用法:
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-到那些种子连接到种子区域。值大于种子图像的局部最大值将被截断为种子值。
- seed:ndarray
种子图像(又名标记图像),它指定膨胀或侵蚀的值。
- mask:ndarray
每个像素的最大(膨胀)/最小(侵蚀)允许值。
- method:{‘dilation’|'侵蚀'},可选
通过膨胀或腐蚀进行重建。在膨胀(或腐蚀)中,种子图像被膨胀(或腐蚀)直到被掩模图像限制。对于膨胀,每个种子值必须小于或等于对应的掩码值;对于侵蚀,反之亦然。默认为‘dilation’。
- selem:ndarray,可选
邻域表示为 1 和 0 的 n-D 数组。默认值为半径等于 1 的 n-D 正方形(即 3x3 正方形用于 2D 图像,3x3x3 立方体用于 3D 图像等)
- offset:ndarray,可选
结构元素中心的坐标。默认位于 selem 的几何中心,在这种情况下,selem 尺寸必须是奇数。
- reconstructed:ndarray
形态重建的结果。
参数:
返回:
注意:
该算法取自 [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
的特征。
相关用法
- Python cucim.skimage.morphology.remove_small_holes用法及代码示例
- Python cucim.skimage.morphology.remove_small_objects用法及代码示例
- Python cucim.skimage.morphology.dilation用法及代码示例
- Python cucim.skimage.morphology.closing用法及代码示例
- Python cucim.skimage.morphology.erosion用法及代码示例
- Python cucim.skimage.morphology.white_tophat用法及代码示例
- Python cucim.skimage.morphology.black_tophat用法及代码示例
- Python cucim.skimage.morphology.opening用法及代码示例
- Python cucim.skimage.morphology.thin用法及代码示例
- Python cucim.skimage.measure.label用法及代码示例
- Python cucim.skimage.measure.moments_coords用法及代码示例
- Python cucim.skimage.measure.moments_normalized用法及代码示例
- Python cucim.skimage.measure.moments_central用法及代码示例
- Python cucim.skimage.measure.moments_coords_central用法及代码示例
- Python cucim.skimage.measure.perimeter用法及代码示例
- Python cucim.skimage.measure.regionprops用法及代码示例
- Python cucim.skimage.measure.moments用法及代码示例
- Python cucim.skimage.measure.centroid用法及代码示例
- Python cucim.skimage.measure.moments_hu用法及代码示例
- Python cucim.skimage.measure.profile_line用法及代码示例
注:本文由纯净天空筛选整理自rapids.ai大神的英文原创作品 cucim.skimage.morphology.reconstruction。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。