Я пытаюсь сортировать пиксели изображений в порядке значений RGB. Будучи новичком в Python, я пробовал это:Медленная обработка изображений с Python и PIL
from PIL import Image
source = Image.open("source.jpg")
colors = source.getcolors(source.size[0] * source.size[1]) #maxcolor value =256, get all colors with source.size[0] * source.size[1]
pixels = []
for i, color in colors:
pixels.extend(i * [color])
pixels.sort()
new = Image.new('RGB', source.size)
new.putdata(pixels)
new.save("new.png")
Он хорошо работает для небольших файлов размером около 40x40 пикселей. Но цель состояла в том, чтобы использовать его на фотографиях с разрешением до 3000х2000, я попытался запустить его, но через два часа все еще не было конца. Можно ли оптимизировать код, сделал ли я что-то совершенно неправильно или Python просто не подходит для такого рода задач?
Я тоже пробовал, но возникла проблема с тем, что восстановление изображения не сработало. Я попробовал: new.putdata (colors), но это возвращает TypeError. – dan
@dan, у вас уже был код для правильной сборки изображения из списка цветов, поэтому я не включил его в ответ. Все, что вам нужно было сделать, это удалить «sort». –