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


Python cucim.skimage.filters.difference_of_gaussians用法及代碼示例

用法:

cucim.skimage.filters.difference_of_gaussians(image, low_sigma, high_sigma=None, *, mode='nearest', cval=0, multichannel=False, truncate=4.0)

查找大小介於 low_sigmahigh_sigma 之間的特征。

此函數使用高斯差分法將band-pass 過濾器應用於多維數組。輸入數組用兩個不同 sigma 的高斯核模糊,以產生兩個中間的過濾圖像。然後從less-blurred 圖像中減去more-blurred 圖像。因此,最終輸出圖像的high-frequency 分量被smaller-sigma 高斯衰減,並且低頻分量由於它們存在於more-blurred 中間而被去除。

參數

imagendarray

要過濾的輸入數組。

low_sigma標量或標量序列

在所有軸上具有較小 sigma 的高斯核的標準偏差。每個軸的標準偏差以序列或單個數字的形式給出,在這種情況下,單個數字用作所有軸的標準偏差值。

high_sigma標量或標量序列,可選(默認為無)

在所有軸上具有較大 sigma 的高斯核的標準偏差。每個軸的標準偏差以序列或單個數字的形式給出,在這種情況下,單個數字用作所有軸的標準偏差值。如果給出 None (默認),所有軸的 sigmas 計算為 1.6 * low_sigma。

mode{‘reflect’, ‘constant’, ‘nearest’, ‘mirror’, ‘wrap’},可選

mode 參數確定如何處理數組邊界,其中 cval 是 mode 等於 ‘constant’ 時的值。默認為‘nearest’。

cval標量,可選

如果mode 是‘constant’,則填充過去輸入邊的值。默認值為 0.0

multichannel布爾值,可選(默認值:False)

圖像的最後一個軸是否被解釋為多個通道。如果為 True,則單獨過濾每個通道(通道不混合在一起)。

truncate浮點數,可選(默認為 4.0)

在這麽多標準偏差處截斷過濾器。

返回

filtered_imagendarray

過濾後的數組。

注意

此函數將從使用具有由 low_sigma 提供的 sigma 的高斯內核過濾的數組中減去使用具有由 high_sigma 給定的 sigma 的高斯內核過濾的數組。 high_sigma 的值必須始終大於或等於 low_sigma 中的相應值,否則將引發 ValueError

high_sigma 為 none 時,high_sigma 的值將計算為 low_sigma 中相應值的 1.6 倍。這個比率最初是由 Marr 和 Hildreth (1980) [1] 提出的,並且通常用於逼近高斯的倒拉普拉斯算子,用於邊和斑點檢測。

輸入圖像根據 img_as_float 的約定進行轉換。

除了 sigma 值,所有參數都用於兩個過濾器。

參考

1

Marr, D. and Hildreth, E. Theory of Edge Detection. Proc. R. Soc. Lond. Series B 207, 187-217 (1980). https://doi.org/10.1098/rspb.1980.0020

例子

對彩色圖像應用一個簡單的高斯差分濾波器:

>>> from skimage.data import astronaut
>>> from cucim.skimage.filters import difference_of_gaussians
>>> astro = cp.asarray(astronaut())
>>> filtered_image = difference_of_gaussians(astro, 2, 10,
...                                          multichannel=True)

應用高斯濾波器的拉普拉斯算子,由高斯差分濾波器近似:

>>> filtered_image = difference_of_gaussians(astro, 2,
...                                          multichannel=True)

對灰度圖像應用高斯差分濾波器,每個軸使用不同的 sigma 值:

>>> from skimage.data import camera
>>> cam = cp.array(camera())
>>> filtered_image = difference_of_gaussians(cam, (2,5), (3,20))

相關用法


注:本文由純淨天空篩選整理自rapids.ai大神的英文原創作品 cucim.skimage.filters.difference_of_gaussians。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。