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