2016-08-11 3 views
0

Я хочу преобразовать массив ячеек 64x64 в пиксель 64x64. Используя matplotlib и pylab, я получаю изображения размером примерно 900x900 с добавлением дополнительных пикселей.Преобразование массива непосредственно в изображение (каждая ячейка становится одним пикселем) в python

py.figure(1) 
py.clf() 
py.imshow(final_image , cmap='Greys_r') 

Как преобразовать из ячейки в пиксель в соотношении 1: 1? (Если вы уже не можете сказать, я довольно новичок в этом).

+0

Можете ли вы предоставить лучший пример того, что вы уже пробовали? –

+0

Каково содержимое массива ячеек? – Karin

ответ

0

Это пример использования PIL для создания изображения 2x2. а есть множество цветов размером 4 (плоские)

from PIL import Image 

a = [(0, 0, 0), (255, 0, 0), (0, 255, 0), (0, 0, 255)] 

# Create RGB image with size 2x2 
img = Image.new("RGB", (2, 2)) 
# Save it to the new function 
img.putdata(a) 
# Save to the file 
img.save('1.png') 

Вы должны настроить, что к формату данных, если она не является плоской, конечно. Это должно быть легко. Например, этот сценарий сглаживает данные из двухмерного списка:

a = [[[1, 2, 3], [2, 3, 4]], [[5, 6, 7], [8, 9, 10]]] 
a = [tuple(color) for row in a for color in row] 
print a 

Если вы имеете дело с Numpy массивов, а затем списки, вы должны использовать функцию fromarray (следующим образом):

# data is numpy array 
img = Image.fromarray(data, 'RGB') 
# Save to the file 
img.save('1.png') 

Обратите внимание, что использование массивов numpy настоятельно рекомендуется, так как это просто завернутые массивы C и, следовательно, они ускоряются.

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

  • Нет связанных вопросов^_^