Conversión de RGB a HSV usando PIL

Estoy tratando de automatizar la mejora de algunas imágenes que se transferirán a un marco digital. Tengo un código que cambia el tamaño, agrega una fecha / hora a la esquina menos significativa (menos detalles) de la imagen y pega pares de imágenes de retrato para evitar mostrar un solo retrato en la pantalla de baja resolución 41:20 del marco.

He implementado un filtro de estiramiento de brillo para aquellas imágenes donde la iluminación no era tan buena, usando elcolorsys.rgb_to_hsv función para calcular las bandas H, S, V, operando en la V y luego volviendo a convertir a RGB antes de guardar un JPEG en el marco digital. Obviamente, la conversión lleva mucho tiempo, incluso usandoitertools trucos; Logré mejorar las cosas usandopsyco.

Sin embargo, noté un ejemplo para el PILImage.convert donde RGB se puede convertir aEspacio de color XYZ usando una matriz 4 × 4 como segundo argumento para elconvert método, y me pregunto:

¿Cómo puedo convertir RGB a HSV (y luego HSV a RGB) usando una matriz personalizada en elconvert llamada al método? (Los errores de redondeo menores no son importantes en este caso, por lo que no me importa que cada banda se exprese como una serie de 0 ... 255 enteros)

Gracias de antemano.

Respuestas a la pregunta(2)

Su respuesta a la pregunta