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ż PixelAccesspozwala 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żsizejestwidth x heightlubx * y, podczas gdy porządkowanie macierzy jestrows x columns.