我正在使用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'生成一些僞造的數據來將你的描述變成可複製的測試用例嗎? –