¿Cuál es la fórmula matemática para la conversión del formato RGB a HSV?

No existe una fórmula matemática simple e independiente para esto. Las conversiones de color de este tipo generalmente se realizan mediante la multiplicación de matrices, pero necesita conocer una gran cantidad de información sobre los espacios de color de origen (RGB) y de destino (en este caso, HSV) para realizar el cálculo, tales como los colores específicos de rojo, verde y azul utilizados como primarios para el formato RGB (generalmente se darían como valores de triestímulo XYZ o en un sistema de coordenadas similar), el punto blanco estándar con el que está trabajando (en la misma forma ), y de manera similar cómo se define el espacio HSV (no existe un estándar único para HSV, como tampoco existe para RGB). Las únicas veces que puede convertir entre espacios de color a través de un conjunto simple de fórmulas es cuando los espacios en cuestión ya están relacionados entre sí, como con los sistemas XYZ, Yxy y Yu’v ‘ .

Tenga en cuenta que para las siguientes fórmulas, el rango de cada entrada (R, G, B) está en el rango de [0,1].

H = (180.0 / pi) * (acos ((0.5 * (RG) + (RB)) / ((RB) ^ 2 + (RB) * (GB)) ^ 0.5)

H = 360-H (si (B> G))

C = max (R, G, B) – min (R, G, B) (composición de croma)

V = max (R, G, B) (valor comp)

S = 0 (si V = 0)

S = C / V (más)

Así,

El rango de H es [0,360]

El rango de S es [0, 1]

El rango de V es [0, 1]

Entonces,

Convertir H, S, V a [0,255]