python - 在二维网格上使用 numpy/scipy 进行插值

标签 python numpy scipy interpolation

我在二维图像网格上有两个数据点,并且这两个点处的某些感兴趣量的值是已知的。

例如:

让我们考虑一下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/

相关文章:

python - Numpy中快速计算大数集标准差的方法

python - 如何按日期过滤 numpy.ndarray?

python - 将列表列表作为输入传递给 scipy.optimize.curve_fit

python - Matplotlib:将原点移动到左上角

python - 使用 panda.read_csv 与 numpy.loadtxt 时的输出差异

python - 在 Pandas 中查询满足一组条件的最近对象(及时)

python - 如何修复 "Could not install packages due to an EnvironmentError: [WinError 123]"?

支持文件的 Amazon EC2 Python API

python - Pandas :删除非整数数据

python - 在 C++ 中通过继承自定义 PyObject