2017-01-08 4 views
-3

Это связано с большим мандалом, но это большая его часть.Является ли система массивов NumPy отличной от PIL Image.fromarray()?

Если я это сделать:

import numpy as np 
from PIL import Image 

l = np.zeros((100, 100, 3), dtype=np.uint8) 
l[0,0,:] = 1 
img = Image.fromarray(l, "RGB") 
img.save("ex.png") 

я получаю это:

Wrong Pixels.

Это явно не операция я выступала на изображении. Если вы посмотрите в верхнем левом углу, он отобразит кучу пикселей, сделанных зеленым, синим и красным, и тогда я ожидаю, что он сделает 1 пиксель (верхний левый) белым/серым.

Что происходит?

+0

Попробуйте ввести другое значение «1», так как «1» ничего не меняет. Вы должны использовать sth как 255, чтобы увидеть разницу. – Kev1n91

+2

'1' на' uint8' будет почти черным, не так ли? – Divakar

+0

Я использовал ваш код (и добавил np.uint8 в массиве init) и использовал более высокое число, чем 1, кажется, что этот сниппент работает. Какую среду IDE/среду вы используете? – Kev1n91

ответ

0

Я был немного глуп, думая в терминах np.float64, но используя np.uint64.

Ответ был просто использовать несколько больший, чем 1.

(я также исправлены некоторые библиотеки-строить ошибки, которые привели к раскраске множества пикселей.)

К сожалению для размещения на вопрос!