scipy.convolve2d的定义和用法
时间: 2023-05-25 21:06:32 浏览: 1014
详解利用Python scipy.signal.filtfilt() 实现信号滤波
5星 · 资源好评率100%
scipy.convolve2d是一个用于2D卷积的函数,它可以计算两个2D数组之间的卷积。它的定义如下:
scipy.signal.convolve2d(in1, in2, mode='full', boundary='fill', fillvalue=0)
参数说明:
- in1:第一个输入数组,必需是二维数组。
- in2:第二个输入数组,必需是二维数组。
- mode:卷积计算的模式,可以是'full'(默认)、'valid'、'same'中的一个。
- boundary:边界处理方式,可以是'fill'(默认)、'wrap'、'symm'中的一个。
- fillvalue:当boundary为'fill'时,用来填充边界的值,它的默认值为0。
用法示例:
import numpy as np
from scipy.signal import convolve2d
# 创建两个二维数组
a = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
b = np.array([[0, 1, 0], [1, -4, 1], [0, 1, 0]])
# 计算a和b的卷积,使用‘same’模式和‘fill’边界处理方式
result = convolve2d(a, b, mode='same', boundary='fill')
# 打印结果
print(result)
输出结果:
[[-17 -18 -11]
[-20 -21 -12]
[ -7 -8 -3]]
阅读全文