使用scipy和PIL调整错误的最近邻居图像

时间:2018-04-11 00:27:08

标签: python scipy python-imaging-library image-resizing

我试图拍摄一张小图片并使用Python制作一个大的("像素化")版本。我尝试在scipyPIL.Image中使用最近邻调整大小的方法,并且都输出相同的错误结果。以下是尝试将图像上采样3倍的示例:

import numpy as np
from scipy.misc import imresize
from PIL import Image

img = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]], dtype=np.uint8)
img_nn_scipy = imresize(img, (9, 9), interp='nearest')
img_nn_pil   = np.array(Image.fromarray(img).resize((9, 9), Image.NEAREST))

print img_nn_scipy
print img_nn_pil

两个print语句都输出相同的结果:

[[1 1 1 2 2 2 2 3 3]
 [1 1 1 2 2 2 2 3 3]
 [1 1 1 2 2 2 2 3 3]
 [4 4 4 5 5 5 5 6 6]
 [4 4 4 5 5 5 5 6 6]
 [4 4 4 5 5 5 5 6 6]
 [4 4 4 5 5 5 5 6 6]
 [7 7 7 8 8 8 8 9 9]
 [7 7 7 8 8 8 8 9 9]]

我预计原始图像中的每个数字现在将被一个包含相同值的3x3块替换。相反,块具有不同的大小,只有1块是3x3。

这有什么理由吗?有没有办法在Python中合理地解决这个问题?

谢谢!

1 个答案:

答案 0 :(得分:1)

尝试使用最新的bridged代替PIL。

valueChanges

这只是Pillow的错误。