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

我有一个 numpy 数组,它具有以下形状:(1, 128, 160, 1)。


现在,我有一个具有以下形状的图像:(200, 200)。


因此,我执行以下操作:


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

orig = np.squeeze(orig)

现在,我想要做的是获取我的原始数组并将其插入到与输入图像相同的大小,即(200, 200)使用线性插值。我想我必须指定应该评估 numpy 数组的网格,但我无法弄清楚如何去做。


繁星点点滴滴
浏览 168回答 1
1回答

至尊宝的传说

你可以这样做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(含)。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python