Интерполировать 2D-изображение в градациях серого из нескольких точек - PullRequest
0 голосов
/ 29 июня 2018

У меня есть изображение, которое имеет только несколько определенных точек, а остальные NaN. Мне нужно восстановить все пиксели. Интерполяция с помощью interp2d выглядит как путь, но есть открытый вопрос: https://github.com/scipy/scipy/issues/1682 Насколько я могу судить, NaN взрываются таким образом, что эффективно "съедает" все уединенные точки.

Есть ли простое решение для этого?

1 Ответ

0 голосов
/ 30 июня 2018

В конце концов, это кажется довольно простым:

def interpolate_image(rgbd, method='linear'):
    locs = np.where(~np.isnan(rgbd))
    vals = rgbd[~np.isnan(rgbd)]
    grid = np.mgrid[0:rgbd.shape[0],0:rgbd.shape[1]]
    return griddata(locs, vals, grid.T, method='linear')

Одно предостережение в том, что экстраполяция не работает, поэтому вблизи границ могут существовать постоянные NaN.

...