Я пытаюсь автоматизировать улучшение некоторых изображений, которые должны быть перенесены в цифровой кадр. У меня есть код, который изменяет размеры, добавляет дату / время к наименее значимому (наименее подробному) углу изображения и вставляет пары портретных изображений, чтобы избежать отображения одного портрета на экране с низким разрешением кадра 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 целых чисел)
Заранее спасибо.