矩形二元样条线仅生成平滑度>0的nan值

2024-04-25 14:23:45 发布

您现在位置:Python中文网/ 问答频道 /正文

使用矩形双变量样条线在2D图像上插值(原始数据如下所示),如果平滑为0,我将得到一个插值,但如果我将平滑设置为非零值,甚至0.001,结果只包含nan值。我的“图像”是一个1000x800网格,由0~14的数字组成。在

from scipy import interpolate
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D

x=np.arange(img.shape[1])
y=np.arange(img.shape[0])
X, Y = np.meshgrid(x,y)
fig=plt.figure(1)
for smooth in [0,.001,.01,.1]:
    plt.clf()
    plt.cla()
    ax=fig.add_subplot(111,projection='3d')
    bvspl=interpolate.RectBivariateSpline(x,y,np.transpose(img),s=smooth)
    print(np.min(bvspl(x,y)),np.max(bvspl(x,y)))
    ax.plot_surface(X,Y,np.transpose(bvspl(x,y)))
    fig.savefig(path+str(smooth)+'_3d.png')

print语句的结果是: -2.15105711021e-15 14.3944312333 nan nan nan nan nan nan

{1美元^


Tags: from图像importimgasnpfigplt
1条回答
网友
1楼 · 发布于 2024-04-25 14:23:45

在我的例子中,我只需在插值之前将所有缺少的值设置为-9999。插值之后,我再次将所有的负值设置为缺少的值-是的,我将丢失边界的信息,但这是目前为止我可以做的。我也在寻找另一个快速准确的解决方案。在

相关问题 更多 >