Conversão de RGB para HSV usando PIL

Estou tentando automatizar o aprimoramento de algumas imagens que serão transferidas para um quadro digital. Eu tenho um código que redimensiona, adiciona uma data / hora ao canto menos significativo (menos detalhes) da imagem e cola pares de imagens de retrato para evitar a exibição de um único retrato na tela de baixa resolução 41:20 do quadro.

Eu implementei um filtro de alongamento de brilho para aquelas fotos em que a iluminação não era tão boa, usando ocolorsys.rgb_to_hsv função para calcular as bandas H, S, V, operando na banda V e depois convertendo de volta para RGB antes de salvar um JPEG no quadro digital. Obviamente, a conversão leva muito tempo, mesmo usandoitertools truques; Eu consegui melhorar as coisas usandopsyco.

No entanto, notei um exemplo para o PILImage.convert onde o RGB pode ser convertido paraEspaço de cores XYZ usando uma matriz 4 × 4 como um segundo argumento para oconvert método, e eu tenho que me perguntar:

Como converter RGB para HSV (e depois HSV de volta para RGB) usando uma matriz personalizada noconvert chamada de método? (Erros de arredondamento menores não são importantes neste caso, então não me importo que cada banda seja expressa como uma série de 0 a 255 números inteiros)

Agradeço antecipadamente.

questionAnswers(2)

yourAnswerToTheQuestion