【发布时间】:2016-12-29 06:31:49
【问题描述】:
我正在将 Matlab 代码翻译成 Python 代码,我需要您的帮助来了解如何在 Matlab 中翻译这行代码。
Matrix = convn(Matrix2, ones(x,x,x)/x^3, 'same');
我在问,因为 Matlab 中的 conv2 在 Python 中没有直接等效项,我不得不使用此处提出的解决方案:Is there a Python equivalent of MATLAB's conv2 function?
他们在哪里旋转图像:
def conv2(x, y, mode='same')
return np.rot90(convolve2d(np.rot90(x, 2), np.rot90(y, 2), mode=mode),
因此,我假设我们也必须做类似的事情,但在 3D 中,因此我请求您的帮助!
谢谢!
【问题讨论】:
-
你查看
fftconvolve了吗? docs.scipy.org/doc/scipy/reference/generated/… -
我尝试在另一个上下文中使用 fftconvolve,虽然它很快,但给了我不同的结果(除非像上面的例子那样旋转)和某种“零伪影”,这些数字接近零而不是实际的零。这导致了后来的错误,因为我在指数中使用了这些值。不过我会再看一遍!
-
有一个
np.convolve具有相同的mode选项。虽然它可能更像conv或conv2。