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 PixelAccessobjeto 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 heightoux * y, enquanto a ordem da matriz érows x columns.