Armonización del color en imágenes mediante procesamiento digital de imágenes

El color constituye uno de los fenómenos más importantes y fascinantes de la experiencia humana, y puede abordarse desde dos perspectivas complementarias. Por un lado, se encuentra su dimensión psicológica, en la que el color no es una propiedad objetiva, sino una construcción perceptual influenciada por la experiencia individual y el contexto cultural; es decir, lo que percibimos y sentimos ante un color está condicionado por la memoria, las emociones y el entorno social.
Por otro lado, el color posee una base física bien definida: surge de la interacción entre la luz y la materia, donde distintas longitudes de onda del espectro visible son reflejadas o absorbidas. Este comportamiento puede describirse mediante modelos matemáticos y leyes ópticas. La luz incidente sobre un objeto, su composición espectral y la respuesta de los sistemas de captura —como el ojo humano o los sensores digitales— determinan la señal que finalmente interpretamos como color.
Aunque el color es un fenómeno complejo de abordar, desde hace tiempo se han desarrollado marcos de representación que permiten estructurarlo en función de las relaciones entre sus componentes, lo cual resulta especialmente útil en áreas como el diseño gráfico, la fotografía y el procesamiento de imágenes. A través de esquemas como el círculo cromático y las relaciones entre tonos, se define la noción de armonía cromática, entendida como una disposición de colores visualmente coherente. La armonía no depende de colores aislados, sino de las relaciones que se establecen entre ellos dentro de un espacio de color, particularmente en términos de su distribución y proximidad.
En este sentido, el trabajo de Cohen-Or et al. propone una técnica de armonización que traduce estos esquemas en un proceso computacional: a partir de la distribución cromática de una imagen, el método identifica una estructura armónica adecuada y ajusta los tonos para alinearlos con ella, manteniendo al mismo tiempo la coherencia visual y la fidelidad respecto a la imagen original.
como funciona
La técnica de armonización propuesta consiste en ajustar los tonos de una imagen para alinearlos con una estructura armónica predefinida, manteniendo al mismo tiempo la coherencia visual.
Algorithm ColorHarmonization(Image I):
# 1. Convertir a HSV
H, S, V ← ConvertToHSV(I)
# 2. Encontrar mejor esquema armónico
best_template ← None
best_score ← ∞
for each template T:
for α in [0, 360]:
T_rot ← Rotate(T, α)
score ← EvaluateHistogram(H, S, T_rot)
if score < best_score:
best_score ← score
best_template ← T_rot
# 3. Asignación de píxeles (Graph Cut)
labels ← GraphCutOptimization(H, S, best_template)
# 4. Ajuste de tonos
H' ← zeros_like(H)
for each pixel p:
sector_center ← CenterOfAssignedSector(labels[p])
H'[p] ← ShiftHue(H[p], sector_center)
# 5. Reconstrucción
I' ← ConvertToRGB(H', S, V)
return I'
1. Representación del color (HSV y canal hue)
El primer paso del método consiste en elegir una representación del color adecuada para el problema que se quiere resolver. En este caso, el objetivo no es reconstruir la imagen ni analizar su iluminación, sino estudiar cómo están distribuidos sus colores. Para ello, es necesario aislar la variable más relevante para la armonía cromática: el tono.
En lugar de trabajar en RGB —donde los canales están fuertemente acoplados—, la imagen se transforma a un espacio HSV, donde cada píxel queda descrito como:
$H:$ tono (ángulo en el círculo cromático, típicamente en $0, 360$
$S:$ saturación (intensidad del color)
$V:$ valor (brillo)
Esta representación permite interpretar el color como una variable angular, lo que facilita su análisis en términos de distribución sobre un círculo. La razón es fundamental: la armonía cromática se define principalmente por cómo se organizan los tonos, no por su brillo o intensidad.
Histograma de hue ponderado
Una vez representados los colores, el siguiente paso es resumir su distribución global. En lugar de analizar píxel por píxel, se construye un histograma de tonos ponderado por la saturación:
$$hist(h_i) = \sum_{p \in \text{bin } i} S(p)$$
Donde:
- \(h_i\) es un bin del histograma
Este histograma captura no solo qué tonos están presentes, sino qué tan relevantes son perceptualmente. Los colores altamente saturados tienen mayor peso, mientras que los tonos cercanos al gris contribuyen poco. Esto refleja mejor la percepción humana, donde los colores intensos dominan la impresión visual de una imagen.
2. Modelado de esquemas armónicos (templates)
Con la distribución de tonos definida, el siguiente paso es introducir una estructura que permita evaluar si dicha distribución es coherente. En lugar de trabajar con combinaciones arbitrarias de colores, se utilizan esquemas que describen regiones específicas dentro del círculo cromático.
Cada esquema armónico se modela como un conjunto de sectores:
$$T_m = {(c_k, w_k)}$$
Donde:
\(c_k\) : centro del sector
\(w_k\): ancho angular
Estos sectores representan zonas donde los colores son considerados compatibles entre sí. Lo importante aquí no son los colores exactos, sino la forma en que se agrupan dentro del espacio de tonos.
Rotación del esquema
Dado que los esquemas no están asociados a colores absolutos, pueden desplazarse libremente sobre el círculo cromático:
$$T_m(\alpha) = {(c_k + \alpha \mod 360, w_k)}$$
Esto introduce un grado de libertad clave: el mismo patrón armónico puede adaptarse a distintas imágenes simplemente rotándolo. El problema deja de ser elegir colores, y pasa a ser encontrar la orientación del esquema que mejor coincide con la distribución observada.
3. Función de ajuste (matching)
Para determinar qué esquema describe mejor la imagen, se necesita una medida cuantitativa. Esta función evalúa qué tan bien los tonos de la imagen encajan dentro de los sectores definidos por el esquema:
$$F(X,(m,\alpha)) = \sum_{p \in X} d(H(p), T_m(\alpha)) \cdot S(p)$$
Aquí, cada píxel contribuye al costo en función de su distancia al sector más cercano y su saturación. Esto permite evaluar la calidad del ajuste de manera global.
Distancia en el círculo
Dado que el tono es una variable angular, la distancia se define sobre el círculo:
$$d(a,b) = \min(|a-b|, 360 - |a-b|)$$
Además, solo se penalizan los colores que quedan fuera de los sectores:
$$d = \max(0, d - w/2)$$
Esto significa que los colores que ya cumplen con la estructura armónica no se modifican, mientras que los demás generan un costo proporcional a su desviación.
4. Selección del mejor esquema
El siguiente paso consiste en encontrar el esquema y la rotación que minimizan la función de ajuste. Primero se optimiza la orientación para cada esquema:
$$\alpha^* = \arg\min_{\alpha} F(X,(m,\alpha))$$
Y posteriormente se selecciona el mejor esquema entre todos:
$$m^* = \arg\min_m F(X,(m,\alpha^*))$$
El resultado es una estructura armónica que explica de la mejor manera posible la distribución de colores de la imagen.
5. Asignación de píxeles (Graph Cut)
Una vez definido el esquema, es necesario decidir cómo ajustar cada píxel. Este paso no es trivial, ya que decisiones locales independientes pueden generar artefactos visibles.
Para resolverlo, se plantea un problema de optimización que combina dos objetivos: ajustar los colores al esquema y mantener la coherencia espacial:
$$E(V) = \lambda E_1(V) + E_2(V)$$
Término de datos
$$E_1 = \sum_p d(H(p), H(v(p))) \cdot S(p)$$
Este término mide qué tan adecuado es asignar un píxel a un sector específico.
Término de suavidad
$$E_2 = \sum_{(p,q)} \delta(v(p), v(q)) \cdot \frac{S_{max}}{d(H(p), H(q))}$$
Este término penaliza asignaciones inconsistentes entre píxeles vecinos, favoreciendo regiones homogéneas.
Interpretación
El resultado es una asignación que equilibra fidelidad al esquema y coherencia visual. Este problema se resuelve eficientemente mediante algoritmos de corte mínimo en grafos (graph cut), lo que permite obtener una solución globalmente consistente.
6. Ajuste de tonos (Hue shifting)
Finalmente, los tonos se ajustan para alinearse con el esquema seleccionado. En lugar de realizar un mapeo abrupto, se utiliza una transformación suave:
$$H'(p) = C(p) + d(p) \cdot (1 - G_\sigma(d(p)))$$
Donde cada píxel se desplaza hacia el centro de su sector de forma gradual.
Este paso no busca eliminar la variación de color, sino reorganizarla. Los colores conservan sus diferencias relativas, pero se redistribuyen dentro de regiones más coherentes. El resultado final es una imagen que mantiene su identidad visual, pero con una estructura cromática más ordenada.
Resultados
Este método de armonización muestra mejores resultados en imágenes con colores intensos y una distribución cromática amplia, donde existe suficiente variabilidad en los tonos para reorganizarlos hacia una estructura más coherente. En imágenes que ya presentan una distribución naturalmente equilibrada —como muchas fotografías de escenas reales— los cambios tienden a ser mínimos o incluso imperceptibles, ya que los colores ya se ajustan a algún esquema armónico.
Es importante señalar que esta técnica no actúa como una herramienta de corrección arbitraria de color, sino que su comportamiento depende completamente de los tonos presentes en la imagen: no introduce nuevas relaciones cromáticas, sino que reorganiza las existentes. A diferencia de otros enfoques que imponen paletas externas para forzar una armonía aproximada, este método opera de forma interna sobre la distribución original. Sin embargo, esta misma característica introduce limitaciones, particularmente la ausencia de control semántico, lo que puede derivar en resultados poco naturales —como cielos con tonos irreales o variaciones de color en elementos que deberían permanecer estables—, ya que los ajustes se aplican de manera global sin considerar el contenido de la escena.
Conclusion.
Aunque la elección y distribución de colores suele surgir de la intención del autor —ya sea para transmitir una emoción, establecer jerarquía visual o construir una identidad estética—, estas decisiones no son completamente arbitrarias, sino que tienden a organizarse bajo ciertas estructuras perceptuales que han sido estudiadas y formalizadas. La técnica presentada no pretende sustituir este criterio artístico, sino ofrecer una forma de modelarlo y analizarlo desde una perspectiva computacional. Como toda aproximación, tiene limitaciones: en particular, en imágenes naturales cuya distribución cromática ya es inherentemente coherente, su impacto puede ser reducido o incluso innecesario. Sin embargo, más allá de su aplicación directa, este tipo de métodos resulta especialmente valioso como herramienta de análisis, ya que permite explorar, evaluar y ajustar paletas de color de manera sistemática, aportando un soporte objetivo a decisiones que, en esencia, siguen siendo profundamente expresivas.
Fuente
Cohen-Or, D., Sorkine, O., Gal, R., Leyvand, T., & Xu, Y.-Q. (2006). Color Harmonization. ACM Transactions on Graphics (SIGGRAPH).





