【发布时间】:2022-09-19 06:40:01
【问题描述】:
给定一个矩形形式的图像(数组),我如何插入特定的像素位置?以下代码生成 20x30 网格,每个像素填充一个值 (zg)。然后代码使用 scipy 的 interp2d 方法构造一个插值器。我想要的是在特定坐标处获得插值。在给定的示例中,x = [1.5, 2.4, 5.8], y = [0.5, 7.2, 2.2],因此总共有 3 个位置。但是,由于某种原因,该函数返回一个 3x3 数组。为什么?我将如何更改代码以便只评估这三个坐标?
import numpy as np
from scipy.interpolate import interp2d
# Rectangular grid
x = np.arange(20)
y = np.arange(30)
xg, yg = np.meshgrid(x, y)
zg = np.exp(-(2*xg)**2 - (yg/2)**2)
# Define interpolator
interp = interp2d(yg, xg, zg)
# Interpolate pixel value
zi = interp([1.5, 2.4, 5.8], [0.5, 7.2, 2.2])
print(zi.shape) # = (3, 3)