用法:
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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。