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


Python SciPy ndimage.correlate用法及代码示例


本文简要介绍 python 语言中 scipy.ndimage.correlate 的用法。

用法:

scipy.ndimage.correlate(input, weights, output=None, mode='reflect', cval=0.0, origin=0)#

多维相关。

该数组与给定的内核相关。

参数

input array_like

输入数组。

weights ndarray

权重数组,与输入的维数相同

output 数组或数据类型,可选

放置输出的数组,或返回数组的 dtype。默认情况下,将创建一个与输入具有相同 dtype 的数组。

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

mode 参数确定输入数组如何扩展到其边界之外。默认为‘reflect’。每个有效值的行为如下:

‘reflect’ (d c b a | a b c d | d c b a)

通过反射最后一个像素的边来扩展输入。此模式有时也称为half-sample 对称模式。

‘constant’ (k k k k | a b c d |呸呸呸呸)

通过使用 cval 参数定义的相同常量值填充边之外的所有值来扩展输入。

‘nearest’ (啊啊啊啊| a b c d |嘀嘀嘀嘀)

通过复制最后一个像素来扩展输入。

‘mirror’ (d c b | a b c d | c b a)

通过反射最后一个像素的中心来扩展输入。此模式有时也称为whole-sample 对称模式。

‘wrap’ (a b c d | a b c d | A B C D)

通过环绕到相对边来扩展输入。

为了与插值函数保持一致,还可以使用以下模式名称:

‘grid-mirror’

这是‘reflect’ 的同义词。

‘grid-constant’

这是‘constant’ 的同义词。

‘grid-wrap’

这是‘wrap’ 的同义词。

cval 标量,可选

如果模式为‘constant’,则填充过去输入边的值。默认值为 0.0。

origin int 或序列,可选

控制过滤器在输入数组像素上的位置。值 0(默认值)使过滤器以像素为中心,正值将过滤器向左移动,负值向右移动。通过传递长度等于输入数组维数的原点序列,可以沿每个轴指定不同的移位。

返回

result ndarray

输入与权重相关的结果。

例子

相关性是在图像上移动通常称为内核的过滤器掩码并计算每个位置的乘积总和的过程。

>>> from scipy.ndimage import correlate
>>> import numpy as np
>>> input_img = np.arange(25).reshape(5,5)
>>> print(input_img)
[[ 0  1  2  3  4]
[ 5  6  7  8  9]
[10 11 12 13 14]
[15 16 17 18 19]
[20 21 22 23 24]]

为相关定义一个内核(权重)。在此示例中,它用于中心和上、下、左、右下一个元素的总和。

>>> weights = [[0, 1, 0],
...            [1, 1, 1],
...            [0, 1, 0]]

我们可以计算一个相关结果:例如,元素 [2,2]7 + 11 + 12 + 13 + 17 = 60

>>> correlate(input_img, weights)
array([[  6,  10,  15,  20,  24],
    [ 26,  30,  35,  40,  44],
    [ 51,  55,  60,  65,  69],
    [ 76,  80,  85,  90,  94],
    [ 96, 100, 105, 110, 114]])

相关用法


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