Хорошо, я играю с преобразованием объекта изображения PIL взад-вперед в массив, чтобы я мог сделать более быстрое преобразование пиксель за пикселем, чем PixelAccessпозволил бы объект PIL . Я выяснил, как разместить информацию о пикселях в полезном трехмерном массиве с помощью:
pic = Image.open("foo.jpg")
pix = numpy.array(pic.getdata()).reshape(pic.size[0], pic.size[1], 3)
Но я не могу понять, как загрузить его обратно в объект PIL после того, как я выполнил все свои удивительные преобразования. Я знаю о putdata()методе, но не могу заставить его вести себя.
pic.size[0]иpic.size[1]следует поменять местами (т. Е.reshape(pic.size[1], pic.size[0], 3)), Посколькуsizeестьwidth x heightилиx * y, в то время как порядок упорядочения матрицыrows x columns.