Tudo bem, estou brincando com a conversão de um objeto de imagem PIL para frente e para trás em uma matriz numpy para que eu possa fazer transformações mais rápidas de pixel por pixel do que o PixelAccess
objeto do PIL permitiria. Eu descobri como colocar as informações de pixel em uma matriz numpy 3D útil por meio de:
pic = Image.open("foo.jpg")
pix = numpy.array(pic.getdata()).reshape(pic.size[0], pic.size[1], 3)
Mas não consigo descobrir como carregá-lo de volta no objeto PIL depois de fazer todas as minhas transformações impressionantes. Estou ciente do putdata()
método, mas não consigo fazê-lo se comportar.
pic.size[0]
epic.size[1]
deve ser trocado (ou sejareshape(pic.size[1], pic.size[0], 3)
), uma vez quesize
éwidth x height
oux * y
, enquanto a ordem da matriz érows x columns
.