我正在尝试将一段MATLAB代码转换成python。MATLAB代码是
for o = 1:orient
for s = 1:scale
M(:,:,s) = ifft2(imfft .* filter{s,o});
s_lc(:,:,o) = s_lc(:,:,o).*(M(:,:,s).^w(s));
end
end
在哪里, 方向=8, 比例=3, w=[1,-3,2], imfft=imfft2(图像), “filter”是一个包含矩阵元素的单元格数组,每个矩阵的大小与“image”相同
我用python编写了一个等价的代码
for o in range(orient):
for s in range(scale):
M[:,:,s] = np.fft.ifft2 (imfft * filter[s][o])
s_lc[:,:,o] = (s_lc[:,:,o])*((M[:,:,s])**w[s])
在这里,所有的输入变量与MATLAB的保存值相同。但是,经过完全迭代后,s_lc的值与MATLAB的不一样。你知道吗
有人能帮我在Python中为上面的代码片段复制MATLAB的相同功能吗?你知道吗
我认为你所做的是完全正确的。但是,MATLAB和numpy表达多维数组的方式不同。如果您使用的是rank-3数组,请逐元素比较python的
s_lc[i,j,k]
和MATLAB的s_lc(i+1,j+1,k+1)
。你知道吗相关问题 更多 >
编程相关推荐