6. Canales de color y espacios de color

6.1 Introducción

En el tema anterior vimos que una imagen digital puede representarse como una matriz de números. Cuando la imagen es en color, esos números ya no describen solo intensidad, sino también información cromática. Para entender cómo trabaja una computadora con color necesitamos distinguir dos conceptos clave: canales de color y espacios de color.

Los canales indican cómo se separa la información visual en componentes. Los espacios de color indican cómo se organiza matemáticamente esa información para representar tonos, intensidad, saturación, luminancia u otras propiedades visuales.

Esta distinción es muy importante en visión por computadora porque la elección del espacio de color puede facilitar o dificultar una tarea. A veces conviene trabajar en RGB, otras veces en HSV, en LAB o incluso en una sola componente de luminancia.

6.2 ¿Qué es un canal de color?

Un canal es una capa numérica que almacena una parte de la información visual de cada píxel. En una imagen en color, cada píxel no tiene un solo valor, sino varios, y cada uno pertenece a un canal distinto.

Por ejemplo, en una imagen RGB hay tres canales:

  • Canal rojo.
  • Canal verde.
  • Canal azul.

Cada canal puede pensarse como una imagen en escala de grises que indica cuánta presencia tiene ese componente en cada píxel. Cuando combinamos esos tres canales, obtenemos la imagen a color.

Una imagen en color no es una sola matriz, sino varias matrices coordinadas. Cada una representa una componente distinta del color.

6.3 Canal no significa color visible aislado

Aunque hablemos de canal rojo, verde o azul, no hay que imaginar que cada canal siempre se ve como un color. Desde el punto de vista numérico, cada canal es una matriz de intensidades. Lo que cambia es cómo se interpreta esa matriz al combinarla con las otras.

Por ejemplo, si un píxel tiene valor alto en el canal rojo y bajos valores en los otros dos, el resultado visual tenderá al rojo. Pero el canal rojo en sí mismo puede visualizarse como una imagen de grises donde los valores altos aparecen claros y los bajos oscuros.

6.4 Espacio de color: una forma de organizar el color

Un espacio de color es un modelo matemático que define cómo representar colores mediante coordenadas numéricas. Distintos espacios de color describen el color de maneras diferentes según el objetivo.

Algunos espacios separan componentes aditivas, otros separan tono e intensidad, y otros buscan aproximarse mejor a la percepción humana.

En visión por computadora esto es útil porque no siempre el espacio más intuitivo para visualizar es el más conveniente para procesar. Un problema de segmentación por color, por ejemplo, puede resolverse mejor en HSV que en RGB.

6.5 El espacio RGB

RGB es uno de los espacios de color más conocidos. Su nombre proviene de Red, Green, Blue, es decir, rojo, verde y azul. Cada píxel se representa con tres valores que indican la intensidad de esos tres componentes.

En imágenes estándar de 8 bits por canal, cada valor suele ir de 0 a 255. Por ejemplo:

  • (255, 0, 0): rojo puro.
  • (0, 255, 0): verde puro.
  • (0, 0, 255): azul puro.
  • (255, 255, 0): amarillo.
  • (255, 255, 255): blanco.
  • (0, 0, 0): negro.

RGB es muy natural para pantallas y visualización, porque muchas pantallas generan color justamente combinando luz roja, verde y azul.

6.6 Mezcla aditiva de color

RGB funciona con un modelo de mezcla aditiva. Esto significa que el color final se obtiene sumando intensidades de luz. A mayor presencia combinada de rojo, verde y azul, más clara será la percepción. Cuando los tres están al máximo, obtenemos blanco.

Este modelo es adecuado para dispositivos emisores de luz, como monitores, televisores y pantallas de teléfonos.

6.7 El caso práctico de BGR

Aunque RGB es el orden más conocido, en visión por computadora aparece muy seguido otro orden: BGR. Este detalle es especialmente importante porque bibliotecas como OpenCV suelen cargar imágenes en BGR por defecto.

Eso significa que un píxel almacenado como:

(255, 0, 0)

en OpenCV no representa rojo, sino azul, si lo interpretamos como BGR.

Este punto genera muchísimos errores al empezar, especialmente cuando se mezclan OpenCV y bibliotecas que esperan RGB, como Matplotlib o algunos frameworks de Deep Learning.

En OpenCV, muchas imágenes se leen en BGR y no en RGB. Olvidar esto suele producir colores extraños o interpretaciones equivocadas.

6.8 Escala de grises como caso particular

La escala de grises puede verse como una representación donde ya no hay varios canales cromáticos, sino una sola componente de intensidad. En ese caso, cada píxel se describe con un único valor.

Aunque parezca una pérdida de información, muchas tareas funcionan muy bien en grises porque:

  • Reducen dimensionalidad.
  • Simplifican el procesamiento.
  • Eliminan variaciones de color irrelevantes.
  • Permiten centrarse en estructura, forma, textura o contraste.

Esto es muy común en detección de bordes, umbralización, análisis de textura y ciertos preprocesamientos.

6.9 El espacio HSV

Uno de los espacios de color más útiles en visión por computadora es HSV, cuyas componentes suelen interpretarse como:

  • Hue: tono o matiz.
  • Saturation: saturación.
  • Value: brillo o valor.

La gran ventaja de HSV es que separa mejor el color "puro" de la intensidad luminosa. Esto puede ser muy útil cuando queremos segmentar objetos por color aunque cambie un poco la iluminación.

Por ejemplo, si queremos detectar un objeto rojo, puede resultar más sencillo definir un rango sobre el tono en HSV que trabajar directamente con combinaciones de R, G y B.

6.10 Interpretación intuitiva de HSV

Podemos entender HSV de la siguiente manera:

  • El tono indica qué color es: rojo, verde, azul, amarillo, etc.
  • La saturación indica qué tan puro o intenso es ese color.
  • El valor indica qué tan claro u oscuro se ve.

Esto lo hace más cercano a la forma en que muchas veces describimos colores cotidianamente. Por eso es tan útil para segmentación basada en color, seguimiento de objetos coloreados y análisis visual bajo iluminación moderadamente variable.

6.11 Limitaciones de HSV

Aunque HSV es muy práctico, no es perfecto. Su principal ventaja es la interpretabilidad, pero también tiene limitaciones:

  • El tono puede volverse inestable cuando la saturación es baja.
  • No siempre es robusto ante cambios extremos de iluminación.
  • La conversión desde RGB puede introducir efectos no intuitivos en ciertos bordes de color.

Por eso conviene usarlo cuando aporta claridad al problema, pero sin asumir que resuelve automáticamente todos los desafíos cromáticos.

6.12 El espacio HSL

Otro espacio relacionado es HSL, que organiza el color mediante:

  • Tono.
  • Saturación.
  • Luminosidad.

Se parece a HSV, pero la forma en que representa el componente de claridad es distinta. En diseño gráfico y edición visual es bastante conocido, aunque en visión por computadora práctica suele usarse menos que HSV.

6.13 El espacio LAB

LAB es un espacio de color muy importante porque intenta aproximarse mejor a la percepción humana. Sus componentes suelen interpretarse así:

  • L: luminosidad.
  • a: eje entre verde y magenta.
  • b: eje entre azul y amarillo.

Una de sus grandes ventajas es que separa de forma explícita la información de luminancia de la información cromática. Esto puede ser muy útil en tareas donde queremos analizar color sin mezclarlo tanto con brillo.

LAB también es útil cuando buscamos trabajar en un espacio más alineado con diferencias perceptuales humanas.

6.14 Usos típicos de LAB

El espacio LAB puede resultar conveniente en aplicaciones como:

  • Corrección de color.
  • Comparación perceptual entre colores.
  • Segmentación donde interesa separar luminancia y crominancia.
  • Procesamiento de imágenes con cambios moderados de iluminación.

En algunos casos, aplicar algoritmos sobre la componente L o sobre los canales cromáticos por separado ofrece mejores resultados que operar directamente sobre RGB.

6.15 El espacio YCrCb

Otro espacio bastante usado es YCrCb. Aquí se separa la luminancia de la crominancia:

  • Y: luminancia.
  • Cr: componente cromática relacionada con rojo.
  • Cb: componente cromática relacionada con azul.

Este tipo de separación es útil en compresión de video, procesamiento televisivo y algunas tareas de detección de piel o análisis facial. La idea general es parecida a la de otros espacios que intentan desacoplar brillo y color.

6.16 ¿Por qué existen tantos espacios de color?

Existen varios espacios porque no hay una única forma óptima de representar el color para todos los problemas. Cada espacio enfatiza ciertas propiedades y simplifica ciertos tipos de procesamiento.

Por ejemplo:

  • RGB es natural para visualización y captura.
  • HSV es intuitivo para segmentar por tono.
  • LAB es útil cuando interesa una separación más perceptual.
  • YCrCb es conveniente cuando se trabaja con luminancia y crominancia.

Elegir bien el espacio de color puede simplificar notablemente una tarea visual.

6.17 Conversión entre espacios de color

En la práctica, es muy frecuente convertir imágenes de un espacio a otro. Por ejemplo:

  • De BGR a RGB para visualización correcta.
  • De BGR a escala de grises para detección de bordes.
  • De BGR a HSV para segmentación por color.
  • De RGB a LAB para análisis cromático más robusto.

Estas conversiones no cambian la escena capturada, pero sí reorganizan la información numérica de modo que ciertas operaciones resulten más convenientes.

6.18 Ejemplo conceptual de conversión

Supongamos que queremos detectar una pelota naranja en una imagen. Si trabajamos en RGB, tendríamos que definir condiciones sobre tres canales simultáneamente. Eso puede ser incómodo si cambian la iluminación o el brillo.

En cambio, si convertimos la imagen a HSV:

  • Podemos buscar un rango de tono compatible con naranja.
  • Podemos exigir una saturación mínima para evitar grises.
  • Podemos controlar el valor para descartar regiones muy oscuras.

Este ejemplo muestra por qué elegir el espacio adecuado simplifica el problema.

6.19 Separación de canales

Una operación muy común es separar una imagen en sus canales individuales. Esto permite analizar cada componente por separado o procesarla con estrategias distintas.

Por ejemplo, podríamos:

  • Examinar solo la luminancia.
  • Comparar qué canal resalta mejor un objeto.
  • Aplicar umbralización sobre una sola componente.
  • Construir máscaras usando rangos de uno o más canales.

La separación de canales es particularmente útil en análisis exploratorio y en etapas iniciales de un pipeline de segmentación.

6.20 No todos los problemas necesitan color

Aunque el color es una fuente valiosa de información, no siempre es necesario usarlo. En muchos problemas, trabajar en escala de grises basta o incluso resulta preferible.

Esto ocurre cuando:

  • La información relevante está en la forma.
  • El color es irrelevante o muy variable.
  • Se quiere reducir costo computacional.
  • La técnica utilizada opera mejor sobre intensidad.

Por eso conviene pensar el color como una herramienta útil, no como una obligación permanente.

6.21 Problemas frecuentes al trabajar con color

Los datos cromáticos introducen potencia, pero también complejidad. Algunos problemas comunes son:

  • Cambios de iluminación que alteran los valores.
  • Sombras y reflejos.
  • Diferencias entre cámaras o sensores.
  • Compresión que modifica tonos y bordes.
  • Confusión entre BGR y RGB.
  • Elegir un rango de color demasiado estrecho o demasiado amplio.

Estos factores explican por qué una segmentación por color que funciona bien en laboratorio puede fallar en producción si cambian las condiciones de captura.

6.22 El papel del color en Deep Learning

En modelos de Deep Learning, las imágenes en color suelen alimentarse como tensores con varios canales. Una red convolucional puede aprender patrones que combinan información cromática y espacial simultáneamente.

Sin embargo, eso no significa que siempre convenga dejar los datos tal como vienen. En muchos casos se aplican:

  • Normalización por canal.
  • Conversión de formato.
  • Aumentos de color.
  • Ajustes de brillo, contraste o saturación.

Entender los canales y los espacios de color ayuda también a interpretar mejor qué información recibe el modelo.

6.23 Resumen comparativo

Espacio Componentes Ventaja principal
RGB Rojo, verde, azul Natural para visualización y captura.
BGR Azul, verde, rojo Orden práctico usado por OpenCV.
HSV Tono, saturación, valor Muy útil para segmentación basada en color.
LAB L, a, b Buena separación perceptual de luminancia y color.
YCrCb Luminancia y crominancia Útil en video y análisis donde se separa brillo de color.
Grises Intensidad Reduce complejidad y resalta estructura.

6.24 Qué debes recordar de este tema

  • Un canal es una componente numérica de la imagen, como rojo, verde o azul.
  • Un espacio de color es una forma matemática de organizar la representación cromática.
  • RGB es intuitivo para visualización, pero OpenCV suele trabajar en BGR.
  • HSV es muy útil para segmentación por color porque separa tono, saturación y brillo.
  • LAB y YCrCb permiten separar luminancia y crominancia de maneras útiles en distintos contextos.
  • Elegir bien el espacio de color puede simplificar notablemente un problema de visión.
  • No siempre es necesario usar color; a veces una imagen en grises es suficiente.

6.25 Conclusión

Trabajar con color en visión por computadora implica mucho más que ver una imagen "bonita". Significa decidir cómo representar numéricamente la información cromática para que un algoritmo pueda procesarla con eficacia.

Los canales de color nos muestran cómo se descompone la imagen. Los espacios de color nos permiten reorganizar esa información según la tarea. Esta elección puede marcar la diferencia entre una solución simple y una innecesariamente difícil.

En el próximo tema empezaremos a trabajar de manera más práctica con la carga y manipulación de imágenes en Python, llevando estos conceptos al terreno del código.