当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python skimage.filters.difference_of_gaussians用法及代码示例


用法:

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

查找大小介于 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

channel_axisint 或无,可选

如果为 None,则假定图像是灰度(单通道)图像。否则,此参数指示数组的哪个轴对应于通道。

truncate浮点数,可选(默认为 4.0)

在这么多标准偏差处截断过滤器。

multichannel布尔值,可选(默认值:False)

图像的最后一个轴是否被解释为多个通道。如果为 True,则单独过滤每个通道(通道不混合在一起)。不推荐使用此参数:改为指定 channel_axis。

返回

filtered_imagendarray

过滤后的数组。

其他参数

multichannelDEPRECATED

已弃用以支持channel_axis。

注意

此函数将从使用具有由 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 skimage.filters import difference_of_gaussians
>>> filtered_image = difference_of_gaussians(astronaut(), 2, 10,
...                                          channel_axis=-1)

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

>>> filtered_image = difference_of_gaussians(astronaut(), 2,
...                                          channel_axis=-1)

对灰度图像应用高斯差分滤波器,每个轴使用不同的 sigma 值:

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

相关用法


注:本文由纯净天空筛选整理自scikit-image.org大神的英文原创作品 skimage.filters.difference_of_gaussians。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。