从几个点插值2D灰度图像

时间:2018-06-29 03:21:37

标签: python image scipy interpolation

我的图像只有几个定义的点,其余的都是NaN。我需要重建所有像素。使用interp2d进行插值似乎是可行的方法,但是存在一个未解决的问题:https://github.com/scipy/scipy/issues/1682 据我所知,NaN会以这种方式爆炸,这将有效地“吞噬”所有孤立点。

有一个简单的解决方案吗?

1 个答案:

答案 0 :(得分:0)

这似乎很简单:

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。