Я пытаюсь автоматизировать улучшение некоторых изображений, которые должны быть перенесены в цифровой фрейм. У меня есть код, который изменяет размер, добавляет дату / время в наименее значимый (наименее подробный) угол изображения и вставляет вместе пары портретных изображений, чтобы избежать отображения одного портрета на экране с низким разрешением кадра 41:20.
Я реализовал фильтр растяжения яркости для тех изображений, где освещение было не очень хорошим, используя функцию colorsys.rgb_to_hsv
для расчета полос H, S, V, работать с V и затем конвертировать обратно в RGB перед сохранением JPEG в цифровом кадре. Очевидно, что преобразование занимает много времени даже с использованием уловок itertools
; Мне удалось улучшить ситуацию с помощью psyco
.
Однако я заметил пример для PIL Image.convert
, где RGB можно преобразовать в цветовое пространство XYZ используя матрицу 4 × 4 в качестве второго аргумента метода convert
, и я задался вопросом:
Как я могу преобразовать RGB в HSV (а затем HSV обратно в RGB), используя пользовательскую матрицу в вызов метода convert
? (Незначительные ошибки округления в этом случае не важны, поэтому я не возражаю, чтобы каждая полоса была выражена как серия из 0… 255 целых чисел)
Заранее благодарю.