Хорошо, я играю с преобразованием объекта изображения 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
.