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