當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。