我正在使用NumPy和SciPy将MATLAB程序转换为Python程序,我对它仍然很陌生。在计划的一部分,我有以下的MATLAB代码:SciPy interp2d内存错误,寻找替代品
tImg(:,:,1) = interp2(x,y,Img(:,:,1),Tx,Ty,'cubic');
在interp2方法的所有参数都是298x142的两倍。
所以,我试图将其转换为以下Python代码:
tImg[:, :, 0] = (scipy.interpolate.interp2d(x, y, img[:, :, 0], kind='cubic'))(Tx, Ty)
我在interp2d方法给出的MemoryError。 MATLAB代码运行良好。我已阅读插值文档,但似乎找不到解决方案。
我运行上面的代码与3GB内存,scipy 0.16.0。
任何帮助表示赞赏。谢谢。
感谢您的回答。然而,即使我尝试不使用Tx和Ty,即'scipy.interpolate.interp2d(x,y,img [:,:0],kind ='立方体')',我仍然会出现内存错误。所以我怀疑它与scipy的内部实现有关。因此,我正在寻求一种可以实现相同产出的替代方案。 –
我无法重现您描述的问题。你可以通过展示如何为'x','y'和'img'生成一些伪造的数据来将你的描述变成可复制的测试用例吗? –