W porządku, bawię się z konwertowaniem obiektu obrazu PIL tam iz powrotem na tablicę numpy, dzięki czemu mogę wykonywać szybsze transformacje piksel po pikselu, niż PixelAccess
pozwala obiekt PIL . Nauczyłem się, jak umieszczać informacje o pikselach w przydatnej macierzy liczb 3D w następujący sposób:
pic = Image.open("foo.jpg")
pix = numpy.array(pic.getdata()).reshape(pic.size[0], pic.size[1], 3)
Ale nie potrafię wymyślić, jak załadować go z powrotem do obiektu PIL po wykonaniu wszystkich moich niesamowitych transformacji. Zdaję sobie sprawę z tej putdata()
metody, ale nie wydaje mi się, żeby mogła się zachowywać.
pic.size[0]
ipic.size[1]
należy zamieniać (tj.reshape(pic.size[1], pic.size[0], 3)
), Ponieważsize
jestwidth x height
lubx * y
, podczas gdy porządkowanie macierzy jestrows x columns
.