我在二维图像网格上有两个数据点,并且这两个点处的某些感兴趣量的值是已知的。
例如:
让我们考虑一下x=(2,2)
这一点。然后考虑 4 网格邻域,我们将点 x_1=(1,2)、x_2=(2,3)、x_3=(3,2)、x_4=(2,1)
作为邻域x
。假设这些点处某个感兴趣数量的值为 y=5、y_1=7、y_2=8、y_3= 10、y_4 = 3
。
通过插值,我想在子像素值处找到 y
,例如 (2.7, 2.3)
。
上述问题可以用 numpy 数组表示,如下所示。
x = [(2,2), (1,2), (2,3), (3,2), (2,1)]
y = [5,7,8,10,3]
如何使用 numpy/scipy 插值来做到这一点?我找不到处理它的具体例子。
最佳答案
方法griddata
这里就足够了。默认情况下,它执行分段线性插值,这在您的示例中似乎是最合适的方法。
from scipy.interpolate import griddata
x = [(2,2), (1,2), (2,3), (3,2), (2,1)]
y = [5,7,8,10,3]
evaluate_at = [(2.7, 2.3)] # could be an array of points
result = griddata(x, y, evaluate_at)
返回数组([9.4])
。
关于python - 在二维网格上使用 numpy/scipy 进行插值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49477822/