lunes, 6 de mayo de 2013

Separación por color II

El siguiente paso en el desarrollo de nuestra aplicación ha sido el estudio y la transformación de las componentes RGB del color obtenido de la cámara a otros espacios de color (HSV, XYZ, YCrCb, Luv, YUV, etc.) para ver si en estos las variaciones de alguna de las coordenadas era determinista para poder diferenciar entre los dos tipos de color en los que se ha enfocado nuestro estudio: oro y cobre.

Los resultados obtenidos eran mejores en unos espacios de color que en otros, pero ninguno ha sido concluyente. A continuación se pasa a explicar brevemente las características principales de los espacios de color más relevantes dentro de todos los utilizados:

HSV


Un color representado en este espacio queda determinado por tres componentes: 
  • H: Hue (Matiz): Representa cada color mediante un ángulo.
  • S: Saturation (Saturación): Representa distancia al eje de brillo negro-blanco.
  • V: Value (Valor): Representa la altura en el eje blanco-negro.
El problema de este espacio con respecto a nuestra aplicación es que los colores oro y cobre están bastante juntos en la circunferencia, aún así podrían ser mucho mas estables y diferenciables que los valores de las componentes RGB. Después de tomar valores de varias monedas, observamos que tampoco cumplía los objetivos.

CIE XYZ


La matriz de transformación del espacio de color RGB a XYZ depende del punto blanco considerado. En nuestro caso se ha tomado como referencia el punto blanco D65, por lo que el respectivo cambio se realiza mediante la siguiente operación:


Este espacio de color se ha utilizado como transformación intermedia del espacio RGB a otros creados por  la Comision Internacional de la Iluminación (CIE), como el que se explica a continuación.

CIE Luv


Las tres componentes que se representan en este espacio de color son las siguientes:
  • L*: Luminosidad del color. Valores altos indican una mayor cercanía al blanco y valores en torno a 0 se corresponden con el color negro.
  • u*: Uniformidad del color.
  • v*: Brillo: Representa la altura en el eje blanco-negro.
Al contrario que los espacios anteriormente descritos, la transformación en este caso no es lineal. Las ecuaciones que definen dicha transformación son las siguientes:


\begin{align}
L^* &= \begin{cases}
  \left(\frac{29}{3}\right)^3 Y / Y_n,&   Y / Y_n \le \left(\frac{6}{29}\right)^3 \\
  116 \left( Y / Y_n \right)^{1/3} - 16,&  Y / Y_n  >   \left(\frac{6}{29}\right)^3      
\end{cases}\\
u^* &= 13 L^*\cdot (u^\prime - u_n^\prime) \\
v^* &= 13 L^*\cdot (v^\prime - v_n^\prime)
\end{align}

donde un y vn se corresponden con las coordenadas del llamado "Punto blanco" y Yn es su luminancia. En este caso se ha tomado como punto blanco: un = 0.2009vn = 0.4610. Además:


La peculiaridad de este espacio de color (y lo que le hace interesante para nuestra aplicación) es que provoca una percepción del color más lineal, es decir, se busca que un cambio de la misma cantidad en un valor de color provoque un cambio de la misma importancia visual.

En este caso, se utilizó la componente u* para intentar diferenciar los colores sin obtener tampoco unos resultados adecuados ya que, aunque obteniendo unos mejores resultados, la separación entre ellos no era lo suficientemente grande como para establecer un umbral determinado.



No hay comentarios:

Publicar un comentario