首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >有没有与MATLAB的conv2函数等效的Python函数?

有没有与MATLAB的conv2函数等效的Python函数?
EN

Stack Overflow用户
提问于 2010-09-17 05:49:10
回答 4查看 12.3K关注 0票数 8

Python或它的任何模块都有MATLAB的conv2函数的等价物吗?更具体地说,我感兴趣的是与MATLAB中的conv2(A, B, 'same')执行相同计算的东西。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-09-17 07:25:30

看起来scipy.signal.convolve2d就是你要找的。

票数 5
EN

Stack Overflow用户

发布于 2016-07-13 23:27:16

虽然其他答案已经提到了scipy.signal.convolve2d作为等价物,但我发现使用mode='same'时结果确实不同。

Matlab的conv2会在图像的底部和右侧产生伪像,而scipy.signal.convolve2d在图像的顶部和左侧会产生相同的伪像。

查看这些链接以查看显示行为的图表(没有足够的声誉直接发布图像):

Upper left corner of convoluted Barbara

Lower right corner of convoluted Barbara

下面的包装器可能不是很有效,但在我的例子中,通过将输入数组和输出数组都旋转180度解决了这个问题:

代码语言:javascript
运行
复制
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)
票数 9
EN

Stack Overflow用户

发布于 2010-09-17 05:55:38

代码语言:javascript
运行
复制
scipy.ndimage.convolve

它是在n维空间中实现的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3731093

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档