PIL Image.open.convert(L)给我一个奇怪的结果:
from PIL import Image
test_img = Image.open('test.jpg').convert('L')
imshow(test_img)
show()
(对不起,我是新手所以我不能发送图像作为演示)
为什么(如果你有想法)?
答案 0 :(得分:2)
旋转是因为PIL和matplotlib不使用相同的约定。如果你执行test_img.show(),它将不会旋转图像。 或者,您可以在使用matplotlib显示之前将图像转换为numpy数组:
imshow(np.asarray(test_img))
对于.convert('L')方法,它对我有用:
test_img = Image.open('test.jpg').convert('L')
print test_img.mode
# 'L'
答案 1 :(得分:2)
由于Image
和pylab
之间的原点不一致,您的图片会被轮换。
如果您使用此代码段,则图片不会颠倒旋转。
import pylab as pl
import Image
im = Image.open('test.jpg').convert('L')
pl.imshow(im, origin='lower')
pl.show()
但是,图像不会以黑白显示。为此,您需要指定一个灰度色图:
import pylab as pl
import Image
import matplotlib.cm as cm
im = Image.open('test.jpg').convert('L')
pl.imshow(im, origin='lower', cmap=cm.Greys_r)
pl.show()
Etvoilà!