从python(mpl_toolkits.basemap.interp)和从matlab(interp2)进行插值

时间:2020-02-12 18:30:45

标签: python matlab interpolation

我想将我的代码从matlab转录成python。在matlab中,我正在使用函数interp2:

cols = 1544;
rows = 2064;
[xu,yu] = meshgrid(1:cols, 1:rows);
nim = interp2(xu,yu,double(im),xd,yd);

其中xd和yd是我要应用的失真,使用xu和yu计算得出,im是我要插入的图像。 xd的大小为1544x2064(我的图片大小)。

在python中,我正在使用mpl_toolkits.basemap中的函数interp:

from mpl_toolkits.basemap import interp
x_u=np.arange(0,2064,1)
y_u=np.arange(0,1544,1)
nim =interp(im, x_u, y_u, xd, yd, order=1)

其中im是同一张图片。在interp()中,x_u和y_u必须为一维。 python脚本中的xd和yd的计算方法与在Matlab中相同。但是,如果我在python中以0开头x_u和y_u,则在Matlab和python中xd和yd并不相同,但是如果我以1开头,则在两个脚本中它们是相同的。 插值的结果不同。如果我在python中从0开始x_u和y_u的差异较小,但我不明白为什么,因为在Matlab和python中xd和yd之间存在较大差异。 为什么这两个插值之间有区别?

0 个答案:

没有答案