2015-12-16 3 views
3

Я хотел бы напечатать пиксели изображения в виде матрицы.Как печатать пиксели изображения в виде матрицы?

Вот код, я использую:

from PIL import Image 

im = Image.open("8Black.png") 
pixels = list(im.getdata()) 

print(pixels) 

Я создал образ «8Black.png» с помощью фотошопа и окрашены все черное. Версия python, которую я использую, - 3.5.0. Тем не менее, когда я запускаю приведенный выше код я получаю:

[0,0,0,0,0,0,0,0,0,0,0,0,...,0] 

Я хочу получить вместо этого:

[[0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0],[...],[...]] 

Я пытался это изменить:

pixels = list(im.getdata()) 

к этому:

pixels = np.matrix(im.getdata()) 

но все еще не получил результат Я хочу редактор

Как получить данные о пикселях в виде матрицы? Я что-то пропустил?

+0

@ASCIIThenANSI - спасибо за редактирование мой вопрос. Прошу прощения, я плохо разбираюсь в английском. – Ling

+0

Нет проблем. Добро пожаловать в Stack Overflow, кстати :) – ASCIIThenANSI

ответ

3

Вы явно запрашиваете, чтобы исходное 2D-изображение было «сплющено» в 1D-последовательность, выполнив getdata().

Вы можете использовать reshape, чтобы вернуть его в его первоначальном виде

matrix = np.array(im.getdata()).reshape(im.size) 
+0

спасибо. Я постараюсь, как вы предлагаете – Ling

Смежные вопросы