本文简要介绍 python 语言中 scipy.ndimage.convolve
的用法。
用法:
scipy.ndimage.convolve(input, weights, output=None, mode='reflect', cval=0.0, origin=0)#
多维卷积。
该数组与给定的内核卷积。
- input: array_like
输入数组。
- weights: array_like
权重数组,与输入的维数相同
- 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: 整数,可选
控制输入信号的原点,这是滤波器产生输出第一个元素的中心位置。正值将过滤器向右移动,负值将过滤器向左移动。默认值为 0。
- result: ndarray
输入与权重的卷积结果。
参数 ::
返回 ::
注意:
结果中的每个值都是
, 其中 W 是权重内核,j 是 N-D 空间索引 , 我是输入k 是 W 中心的坐标,由下式指定起源在输入参数中。例子:
也许最容易理解的情况是
mode='constant', cval=0.0
,因为在这种情况下边界(即,权重内核,以任何一个值为中心,延伸到边之外输入) 被视为零。>>> import numpy as np >>> a = np.array([[1, 2, 0, 0], ... [5, 3, 0, 4], ... [0, 0, 0, 7], ... [9, 3, 0, 0]]) >>> k = np.array([[1,1,1],[1,1,0],[1,0,0]]) >>> from scipy import ndimage >>> ndimage.convolve(a, k, mode='constant', cval=0.0) array([[11, 10, 7, 4], [10, 3, 11, 11], [15, 12, 14, 7], [12, 3, 7, 0]])
环境
cval=1.0
相当于填充的外边输入1.0(然后只提取结果的原始区域)。>>> ndimage.convolve(a, k, mode='constant', cval=1.0) array([[13, 11, 8, 7], [11, 3, 11, 14], [16, 12, 14, 10], [15, 6, 10, 5]])
和
mode='reflect'
(默认),外部值反映在边输入填写缺失值。>>> b = np.array([[2, 0, 0], ... [1, 0, 0], ... [0, 0, 0]]) >>> k = np.array([[0,1,0], [0,1,0], [0,1,0]]) >>> ndimage.convolve(b, k, mode='reflect') array([[5, 0, 0], [3, 0, 0], [1, 0, 0]])
这包括在角落的对角线。
>>> k = np.array([[1,0,0],[0,1,0],[0,0,1]]) >>> ndimage.convolve(b, k) array([[4, 2, 0], [3, 2, 0], [1, 1, 0]])
和
mode='nearest'
, 中的单个最接近的值输入根据需要重复多次以匹配重叠权重.>>> c = np.array([[2, 0, 1], ... [1, 0, 0], ... [0, 0, 0]]) >>> k = np.array([[0, 1, 0], ... [0, 1, 0], ... [0, 1, 0], ... [0, 1, 0], ... [0, 1, 0]]) >>> ndimage.convolve(c, k, mode='nearest') array([[7, 0, 3], [5, 0, 2], [3, 0, 1]])
相关用法
- Python SciPy ndimage.convolve1d用法及代码示例
- Python SciPy ndimage.correlate用法及代码示例
- Python SciPy ndimage.correlate1d用法及代码示例
- Python SciPy ndimage.center_of_mass用法及代码示例
- Python SciPy ndimage.morphological_gradient用法及代码示例
- Python SciPy ndimage.variance用法及代码示例
- Python SciPy ndimage.binary_dilation用法及代码示例
- Python SciPy ndimage.distance_transform_bf用法及代码示例
- Python SciPy ndimage.find_objects用法及代码示例
- Python SciPy ndimage.label用法及代码示例
- Python SciPy ndimage.maximum_filter1d用法及代码示例
- Python SciPy ndimage.iterate_structure用法及代码示例
- Python SciPy ndimage.map_coordinates()用法及代码示例
- Python SciPy ndimage.generic_laplace用法及代码示例
- Python SciPy ndimage.generate_binary_structure用法及代码示例
- Python SciPy ndimage.binary_opening用法及代码示例
- Python SciPy ndimage.binary_fill_holes用法及代码示例
- Python SciPy ndimage.maximum_filter用法及代码示例
- Python SciPy ndimage.minimum_position用法及代码示例
- Python SciPy ndimage.labeled_comprehension用法及代码示例
- Python SciPy ndimage.grey_erosion用法及代码示例
- Python SciPy ndimage.spline_filter用法及代码示例
- Python SciPy ndimage.shift用法及代码示例
- Python SciPy ndimage.distance_transform_cdt用法及代码示例
- Python SciPy ndimage.minimum用法及代码示例
注:本文由纯净天空筛选整理自scipy.org大神的英文原创作品 scipy.ndimage.convolve。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。