繁体   English   中英

如何在 Python 中计算二维函数的插值

[英]How to calculate interpolated values of a 2D function in Python

假设我有两个浮点数组XY (长度相同)和一个二维数组img (灰度图像)。

我想以良好的近似值计算img[X[i]][Y[i]] for i in {0..len}值。

XY转换为整数数组就足够了吗? 还是有一个很好的插值函数可以提供更好的结果? (我找了他们,但有很多我很困惑)。

谢谢

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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM