Soy un programador y estoy realizando una transformación de balance de blancos en el espacio de color RGB. Esto debería funcionar con esta matriz de transformación que encontré en la literatura:
$$ \begin{pmatrix} R \\ G \\ B \end{pmatrix} = \begin{pmatrix} \frac{255}{R_w} & 0 & 0 \\ 0 & \frac{255}{G_w} & 0 \\ 0 & 0 & \frac{255}{B_w} \end{pmatrix} \times \begin{pmatrix} R´ \\ G´ \\ B´ \end{pmatrix} $$ Con un espacio de color donde el rango de todos los valores posibles es $ \Big[0, 255\Big]$ (que es de 8 bits).
He leído que un producto cruzado que incluye matrices (como se muestra arriba) se puede resolver como un sistema de ecuaciones lineales.
$$ R = \big( \frac{255}{R_w} + 0 + 0 \big) \cdot R´ = \frac{255}{R_w} \cdot R´ \\ G = \big( 0 + \frac{255}{G_w} + 0 \big) \cdot G´ = \frac{255}{G_w} \cdot G´ \\ B = \big( 0 + 0 + \frac{255}{B_w} \big) \cdot B´ = \frac{255}{B_w} \cdot B´ \\ $$
Pero ese parece ser un enfoque defectuoso ya que $R$, $G$ y $B$ pueden ser mayores que 255, lo cual no es un resultado válido de esa transformación.
Ejemplo
Píxel original: $$ R´ = 111; G´ = 154; B´ = 255 $$
Entrada de transformación de balance de blancos: $$ R_w = 123; G_w = 138; B_w = 217 $$
Resultados con mi enfoque: $$ R = \frac{255}{123} \cdot 111 = 230 \\ G = \frac{255}{138} \cdot 154 = 284 \\ B = \frac{255}{217} \cdot 255 = 299$$
Obviamente, los resultados están fuera del rango de mi espacio de color de 8 bits.
¿Cómo resolver correctamente esta transformación de balance de blancos? Estoy principalmente perdido ya que no tengo idea de cómo manejar la matriz dentro de un producto cruzado.