![](/img/trans.png)
[英]How can I interpolate unsorted 2D numpy arrays in Python and compare the interpolated values to the original one?
[英]How to calculate interpolated values of a 2D function in Python
假设我有两个浮点数组X
和Y
(长度相同)和一个二维数组img
(灰度图像)。
我想以良好的近似值计算img[X[i]][Y[i]] for i in {0..len}
值。
将X
和Y
转换为整数数组就足够了吗? 还是有一个很好的插值函数可以提供更好的结果? (我找了他们,但有很多我很困惑)。
谢谢
import scipy.interpolate
y_interp = scipy.interpolate.interp1d(x, y)
print(y_interp(5.0))
scipy.interpolate.interp1d
线性插值,并且可以定制以处理错误情况。
只是使用 python 我会做这样的事情:
# Calculate tops (just in case the rounding goes over this)
x_top, y_top = len(img) - 1, len(img[0]) - 1
for x, y in zip(map(round, X), map(round, Y)):
x, y = min(x, x_top), min(y, y_top) # Check tops
val = img[x][y] # Here is your value
map(round, X)
将函数round
应用于每个元素zip
接受迭代器并成对返回元素
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.