【发布时间】:2017-06-28 06:19:19
【问题描述】:
我有一个图像,即像素值数组,可以说是 5000x5000(这是典型尺寸)。现在我想把它扩大2倍到10kx10k。 (0,0) 像素值的值转到展开图像中的 (0,0)、(0,1)、(1,0)、(1,1)。
之后,我使用 scipy.interpolate.rotate 旋转展开后的图像(考虑到我的数组大小,我相信没有比这更快的方法了)
接下来我必须再次将这个 10kx10k 数组调整为原始大小,即 5kx5k。为此,我必须在扩展图像中取 (0,0)、(0,1)、(1,0)、(1,1) 的平均像素值,并将它们放入新图像。
然而事实证明,这整个过程是一个昂贵的过程,并且考虑到我的数组的大小需要很多时间。 有更快的方法吗? 我正在使用以下代码来扩展原始图像
#Assume the original image is already given
largeImg=np.zeros((10000,10000), dtype=np.float32)
for j in range(5000):
for k in range(5000):
pixel_value=original_img[j][k]
for x in range((2*k), (2*(k+1))):
for y in range((2*j), (2*(j+1))):
largeImg[y][x] = pixel_value
类似的方法用于在旋转后将图像缩小到原始大小。
【问题讨论】:
标签: python arrays image numpy scipy