3
我在2d numpy数组中有图像。我想通过X和Y偏移来移动图像,并希望框架的其余部分填充零。我已经看到关于“滚动”功能的讨论,但只能在1轴上运行。 (除非有人可以用padding指向我的2D版本)。我尝试过切片,但当偏移有所有可能的方向时,我遇到了麻烦。我不想浏览所有X Y偏移量+/-排列。有一个简单的通用解决方案吗?我有下面的代码,它适用于X-offset = + 100。但是它的X-offset = -100会崩溃。在numpy中移动图像
感谢, 格特
import matplotlib.pyplot as plt
import scipy.misc as msc
import numpy as np
lena = msc.lena()
lena.dtype
(imx,imy)= lena.shape
ox= 100
oy= 20
shift_lena = np.zeros((imx,imy))
shift_lena[0:imy-oy,0:imx-ox] = lena[oy:,ox:]
shift_lena_m = shift_lena.astype(np.int64)
shift_lena_m.dtype
plt.figure(figsize=(10, 3.6))
plt.subplot(131)
plt.imshow(lena, cmap=plt.cm.gray)
plt.subplot(132)
plt.imshow(shift_lena_m, cmap=plt.cm.gray)
plt.subplots_adjust(wspace=0, hspace=0., top=0.99, bottom=0.01, left=0.05, right=0.99)
plt.show()