我有两个图像分别代表x和y值。图像充满“孔”(两个图像中的“孔”相同)。
我想沿轴之一进行插值(最好使用线性插值,但最好使用更高级别的插值)以“填充”孔。
假设选择的轴为0,也就是说,我想在每一列上进行插值。我发现所有numpy都是x相同时的插值(例如numpy.interpolate.interp1d)。但是,在这种情况下,每个x是不同的(即,每行中的孔或空单元格都不同)。
我可以使用任何numpy / scipy技术吗?一维卷积可以工作吗(尽管内核是固定的)
您仍然可以使用interp1d:
import numpy as np
from scipy import interpolate
A = np.array([[1,np.NaN,np.NaN,2],[0,np.NaN,1,2]])
#array([[ 1., nan, nan, 2.],
# [ 0., nan, 1., 2.]])
for row in A:
mask = np.isnan(row)
x, y = np.where(~mask)[0], row[~mask]
f = interpolate.interp1d(x, y, kind='linear',)
row[mask] = f(np.where(mask)[0])
#array([[ 1. , 1.33333333, 1.66666667, 2. ],
# [ 0. , 0.5 , 1. , 2. ]])
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句