用法:
cucim.skimage.filters.difference_of_gaussians(image, low_sigma, high_sigma=None, *, mode='nearest', cval=0, multichannel=False, truncate=4.0)
查找大小介於
low_sigma
和high_sigma
之間的特征。此函數使用高斯差分法將band-pass 過濾器應用於多維數組。輸入數組用兩個不同 sigma 的高斯核模糊,以產生兩個中間的過濾圖像。然後從less-blurred 圖像中減去more-blurred 圖像。因此,最終輸出圖像的high-frequency 分量被smaller-sigma 高斯衰減,並且低頻分量由於它們存在於more-blurred 中間而被去除。
- image:ndarray
要過濾的輸入數組。
- 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_image:ndarray
過濾後的數組。
參數:
返回:
注意:
此函數將從使用具有由
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))
相關用法
- Python cucim.skimage.filters.roberts_neg_diag用法及代碼示例
- Python cucim.skimage.filters.gabor用法及代碼示例
- Python cucim.skimage.filters.roberts_pos_diag用法及代碼示例
- Python cucim.skimage.filters.roberts用法及代碼示例
- Python cucim.skimage.filters.gabor_kernel用法及代碼示例
- Python cucim.skimage.filters.sobel_v用法及代碼示例
- Python cucim.skimage.filters.sobel_h用法及代碼示例
- Python cucim.skimage.filters.sobel用法及代碼示例
- Python cucim.skimage.filters.gaussian用法及代碼示例
- Python cucim.skimage.filters.prewitt用法及代碼示例
- Python cucim.skimage.filters.rank_order用法及代碼示例
- Python cucim.skimage.filters.threshold_mean用法及代碼示例
- Python cucim.skimage.filters.threshold_niblack用法及代碼示例
- Python cucim.skimage.filters.threshold_isodata用法及代碼示例
- Python cucim.skimage.filters.threshold_otsu用法及代碼示例
- Python cucim.skimage.filters.median用法及代碼示例
- Python cucim.skimage.filters.prewitt_v用法及代碼示例
- Python cucim.skimage.filters.prewitt_h用法及代碼示例
- Python cucim.skimage.filters.threshold_sauvola用法及代碼示例
- Python cucim.skimage.filters.threshold_yen用法及代碼示例
注:本文由純淨天空篩選整理自rapids.ai大神的英文原創作品 cucim.skimage.filters.difference_of_gaussians。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。