4

PIL Image.open.convert(L) は私に奇妙な結果をもたらします:

   from PIL import Image

   test_img = Image.open('test.jpg').convert('L')

   imshow(test_img)

   show()
  1. 画像を回転させます(?)
  2. Lに変換しない(?)

(申し訳ありませんが、私は新しいので、デモンストレーションとして画像を送ることができません)

なぜ(アイデアがある場合)?

4

2 に答える 2

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'
于 2012-08-03T09:37:22.497 に答える
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()

ほら!

于 2012-08-03T12:24:04.963 に答える