为了账号安全,请及时绑定邮箱和手机立即绑定

如何使用线性插值插入 numpy 数组

如何使用线性插值插入 numpy 数组

繁星点点滴滴 2021-12-17 16:40:40
我有一个 numpy 数组,它具有以下形状:(1, 128, 160, 1)。现在,我有一个具有以下形状的图像:(200, 200)。因此,我执行以下操作:orig = np.random.rand(1, 128, 160, 1)orig = np.squeeze(orig)现在,我想要做的是获取我的原始数组并将其插入到与输入图像相同的大小,即(200, 200)使用线性插值。我想我必须指定应该评估 numpy 数组的网格,但我无法弄清楚如何去做。
查看完整描述

1 回答

?
至尊宝的传说

TA贡献1789条经验 获得超10个赞

你可以这样做scipy.interpolate.interp2d:


from scipy import interpolate


# Make a fake image - you can use yours.

image = np.ones((200,200))


# Make your orig array (skipping the extra dimensions).

orig = np.random.rand(128, 160)


# Make its coordinates; x is horizontal.

x = np.linspace(0, image.shape[1], orig.shape[1])

y = np.linspace(0, image.shape[0], orig.shape[0])


# Make the interpolator function.

f = interpolate.interp2d(x, y, orig, kind='linear')


# Construct the new coordinate arrays.

x_new = np.arange(0, image.shape[1])

y_new = np.arange(0, image.shape[0])


# Do the interpolation.

new_orig = f(x_new, y_new)

注意形成x和时对坐标范围的 -1 调整y。这确保图像坐标从 0 到 199(含)。


查看完整回答
反对 回复 2021-12-17
  • 1 回答
  • 0 关注
  • 167 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信