Преобразование изображения в черно-белое и использование его в качестве массива

Я пытаюсь преобразовать цветное изображение в черно-белое.

Исходное изображение выглядит следующим образом:

У меня несколько проблем. Первый:

import pylab as pl
import Image

im = Image.open('joconde.png')

pl.imshow(im)
pl.axis('off')
pl.show()

Я понимаю:

First result

Почему он повернут? Дело не в этом, но я хотел бы знать, почему.

im_gray = im.convert('1')

pl.imshow(im_gray)
pl.show() 

А вот обработанное черно-белое изображение:

Теперь все выглядит рабочим. Но мне нужно использовать это изображение как массив numpy, чтобы выполнить некоторую обработку изображения. Все, что мне нужно сделать, это:

import numpy as np

im_arr = np.array(im_gray)

pl.imshow(im_arr)
pl.axis('off')
pl.show()

Но я понимаю:

Почему это происходит? Я тоже пробовал:

im_arr = np.array(im_gray, dtype='float')

или:

im_arr = np.asarray(im_gray)

Но ничего не работает. Может проблема в методе show, но я не знаю.

5
задан John Conde 31 July 2012 в 13:15
поделиться