Rya*_*yan 6 python matlab matrix convolution
Python或其任何模块是否具有MATLAB的conv2功能?更具体地说,我对与conv2(A, B, 'same')MATLAB 中进行相同计算的东西感兴趣.
小智 9
虽然其他答案已经提到scipy.signal.convolve2d了等价物,但我发现使用mode='same'.
虽然 Matlabconv2会在图像的底部和右侧产生scipy.signal.convolve2d伪影,但在图像的顶部和左侧具有相同的伪影。
请参阅这些链接以获取显示行为的图(没有足够的声誉直接发布图像):
以下包装器可能效率不高,但通过将输入数组和输出数组分别旋转 180 度,解决了我的问题:
import numpy as np
from scipy.signal import convolve2d
def conv2(x, y, mode='same'):
return np.rot90(convolve2d(np.rot90(x, 2), np.rot90(y, 2), mode=mode), 2)
Run Code Online (Sandbox Code Playgroud)
看起来scipy.signal.convolve2d就是你要找的。