интерполяция из python (mpl_toolkits.basemap.interp) и из matlab (interp2) - PullRequest
0 голосов
/ 12 февраля 2020

Я хочу транскрибировать свой код с 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 Я использую функцию interp из mpl_toolkits.basemap:

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 - то же самое image.In interp (), x_u и y_u должны быть в 1D. xd и yd в скрипте python рассчитываются так же, как в Matlab. Но если я начинаю x_u и y_u с 0 в python, xd и yd не совпадают в Matlab и python, но если я начинаю их с 1, они совпадают в двух сценариях. Результат интерполяции другой. Разница будет меньше, если я начну x_u и y_u в 0 в python, но я не понимаю, почему, потому что есть большая разница между xd и yd в Matlab и python. Почему есть разница между этими двумя интерполяциями?

...