Guillermo Luijk
27/01/07, 03:15:12
¿Cuándo veis una curva o se habla de curvas decís automáticamente: 'bicho! bicho!' y cerráis el post? pues bien, como estoy convencido de que son el modo más potente de manipular los niveles de una imagen he decidido hacer este tutorial. Espero que sigáis leyendo. Voy a intentar explicar el funcionamiento de las curvas y cómo usarlas para controlar cosas como los niveles, el contraste y el virado.
NOTA: para entender el tutorial es preciso tener claros algunos conceptos. A modo de recordatorio:
- NIVEL: valor que determina la luminosidad de cada pixel de una imagen. En imágenes de 8 bits los niveles posibles van del 0-255. En imágenes de 16 bits los niveles posibles van de 0-65535 (si bien no estamos acostumbrados a ver esta escala pues casi todas las herramientas gráficas a efectos de presentación los normalizan al rango 0-255). Una imagen en color define el tono de cada uno de sus pixels por 3 niveles: rojo, verde, azul. Una imagen BN es aquella en que para cada pixel individual, los niveles rojo, verde y azul tienen el mismo valor.
- HISTOGRAMA: es una representacióne estadística de la distribución de niveles de la imagen. En el eje X se muestran los posibles niveles presentes en la misma, y en el eje Y el número de pixels que contiene la imagen y que poseen el nivel indicado por X. El histograma más habitual es el combinado RGB, donde lo que se representa es el nivel medio de los 3 canales de que se compone el color de cada pixel (luminosidad del pixel). No obstante no es problema obtener el histograma para cada canal por separado.
QUÉ ES UNA CURVA?
Una curva es una función o correspondencia entre niveles. A cada posible nivel de entrada (en el rango 0-255) le hacemos corresponder uno y solo un nivel de salida en ese mismo rango. Por ejemplo una curva que para el valor de entrada 128 tiene como valor de salida asignado el 168, convertirá tras aplicarla todos aquellos pixels con un nivel 128, al nivel 168 (aumenta la intensidad de los mismos en 40 niveles absolutos). En el eje X de la curva se representan los niveles de entrada, y en el eje Y el nivel de salida correspondiente a cada nivel de entrada del eje X.
Las curvas se pueden definir y aplicar de forma combinada (RGB), de modo que afectarán simultáneamente a los niveles de los 3 canales de cada pixel, o por cada canal individual (R, G y B).
Una curva se define en PS con puntos de anclaje o referencia, situados con el ratón o introducidos con valores numéricos con el teclado sobre una gráfica. PS permite un máximo de 16 puntos de anclaje, e interpolará todos los puntos intermedios de la curva. Para sacar el editor de curvas seleccionar: Imagen->Ajustes->Curvas.
Veamos un ejemplo de aplicación de curva para aumentar el brillo de una imagen: esta curva lo que hará será aumentar todos los niveles de la imagen. Los niveles 0 quedarán a 0, los niveles 255 obviamente también quedarán a 255 (no hay mayor), pero todo el rango intermedio de niveles va a ser aumentado en mayor o menor medida, teniendo como efecto el incremento del brillo de la imagen. El histograma gris es el original, y el negro el resultante de la aplicación de la curva. Como puede verse todos los niveles se desplazan hacia la parte derecha del histograma pero sin quemar la imagen en ningún caso, pues así como expandimos las sombras estamos comprimiendo las luces.
http://img207.imageshack.us/img207/991/ejemplo25xw.jpg
USO DE CURVAS PARA CONTROLAR EL HISTOGRAMA: RANGO DINÁMICO y CONTRASTE
Para controlar la distribución de niveles en el histograma así como el contraste de la imagen, suelen utilizarse curvas en forma de 'S'. Dicha forma hace coincidir a los niveles más bajos, con niveles todavía inferiores a los actuales, y viceversa, a los niveles más altos, con niveles todavía superiores.
Para definir una curva 'S' son suficientes 5 puntos (incluso nos podemos ahorrar alguno, lo importante es que tenga pinta de 'S' y que esté adaptada el histograma a tratar):
http://img263.imageshack.us/img263/3900/curvavt16cz.jpg
Lo ideal es ir colocando los puntos en este orden:
1) Punto negro (Sombras): ajusta la parte izquierda del histograma para que coincida con el nivel 0. Es por tanto un punto que en el eje X tiene el valor del nivel más oscuro presente en la fotografía original, y en el eje Y vale 0: (nivel mín, 0)
2) Punto blanco (Exposición*): ajusta la parte derecha del histograma para que coincida con el nivel 255. Es por tanto un punto que en el eje X tiene el valor del nivel más claro presente en la fotografía original, y en el eje Y vale 255: (nivel máx, 255)
Si sólo usáramos estos 2 puntos, obtendríamos una recta que sería equivalente a hacer un control de Niveles ajustando las flechitas izquierda y derecha del mismo, es decir conseguiríamos expandir al máximo el rango dinámico de la imagen de forma uniforme sin hacer ningún control más.
3) Punto gris (Brillo*): ajusta el nivel de gris de la imagen original que va a representar el punto de inflexión en la operación de contraste, así como el brillo de la imagen. Por partes:
- Con su posición en el eje X determinaremos que cuando contrastemos, todos los niveles de la imagen original que queden a su izquierda se van a oscurecer respecto a su valor actual; del mismo modo todos los niveles de la fotografía original que queden a su derecha se van a aclarar respecto a su valor actual. Lo lógico, es situarlo aproximadamente en el punto medio del histograma, para que así en nuestra operación de contraste la mitad de pixels de la imagen se clarearán, mientras la otra mitad se oscurecerá. Como PS nos deja ver el efecto en tiempo real, no hay nada como probar e ir moviéndolo para ver su efecto porque depende de cada caso.
- Con su posición en el eje Y podemos incrementar o disminir el brillo de la imagen. La diagonal (Y=X) es un buen punto de partida, en ella no alteraremos el brillo de la imagen actual. Si lo colocamos por encima de la diagonal (Y>X) aumentamos el brillo y viceversa.
Este control equivale en su afectación a la imagen a la flechita central del control de Niveles, pero con más control.
4) Control de contraste para sombras y 5 Control de contraste para luces: con los puntos establecidos hasta ahora hemos expandido el histograma para ocupar todo el rango dinámico, y hemos establecido el brillo general de la imagen.
Expandir el histograma tiene como consecuencia que el contraste va a aumentar pues habremos movido niveles bajos a valores más bajos aún, y luces a niveles más altos de los que tenían. Pero ha sido como efecto colateral y sin control alguno. Normalmente, el contraste conseguido hasta ahora no será suficiente, y con estos dos puntos podremos aumentarlo (o disminuirlo si se diera el caso).
Estableciendo el punto 4 de modo que se cree una barriguita hacia abajo en la curva que une los puntos 1 y 3, conseguiremos oscurecer más todos los niveles comprendidos entre dichos puntos, es decir estamos oscureciendo los grises más oscuros de la imagen.
Del mismo modo estableciendo el punto 5 de modo que se cree una barriguita hacia arriba entre los puntos 3 y 2, aclararemos más de lo que están los grises más claros de la imagen.
Si no tenéis PS3, antes de sacar el control de curvas mostrad la ventana de histograma y situad la curva alineada con ella para saber lo que estamos haciendo. Por suerte PS3 ya trae el histograma impreso como fondo de la curva (como en mi ejemplo de arriba, que viene de ACR).
Vamos con un ejemplo práctico paso a paso: partimos de una foto rica en grises intermedios, pero cuyo histograma no aprovecha todo el margen dinámico (los extremos del histograma están vacíos) ni está convenientemente contrastada (el histograma muestra un pico predominante).
http://img262.imageshack.us/img262/8374/foto16al.jpg
En primer lugar vamos a maximizar el rango dinámico: puntos 1 y 2. El histograma se expande hasta los extremos.
http://img262.imageshack.us/img262/9333/foto24wl.jpg
Después establecemos el punto 3. Como el peso del histograma original (el que os muestro ahí sería el resultante de aplicar los puntos 1 y 2) está ligeramente desplazado a la izquierda, sitúo la coordenada X de dicho punto un poco a la izquierda del centro. En cuanto a la coordenada Y le doy un valor ligeramente por encima de la diagonal para subir el brillo un poco:
http://img262.imageshack.us/img262/8251/foto30yd.jpg
Ya tenemos la imagen con el máximo margen dinámico posible y brillo adecuados. El contraste se ha incrementado como efecto añadido, pero no lo suficiente así que vamos a formar la curva en S para que haya todavía más:
http://img444.imageshack.us/img444/8597/foto47wh.jpg
El resultado es una foto que va desde el negro hasta el blanco, pero sin ninguna zona negra ni quemada (los extremos del histograma terminan de forma suave, sin agregación de pixels en el 0 ni en el 255), y con un contraste óptimo (el histograma es mucho más plano que antes, ya no tiene un pico dominante sobre los demás).
(* he llamado Exposición y Brillo a controles con los que quizá alguno discrepe. Simplemente he seguido la nomenclatura de ACR y al fin y al cabo lo importante es el concepto aplicado a las curvas.)
NOTA:
Cuando aplicamos curvas teniendo la imagen en Modo RGB a una imagen en color en lugar de BN (y esto afecta por tanto a imágenes en BN ya viradas), vamos a alterar no solo el contraste sino también la saturación y los tonos como bien se dice aquí: http://www.ojodigital.com/foro/showthread.php?t=122538
Esto también ocurre si se usan Niveles u otra herramienta y la solución si queremos afinar es tan simple como usar el Modo Color Lab aplicando la curva sobre el canal Luminosidad.
NOTA: para entender el tutorial es preciso tener claros algunos conceptos. A modo de recordatorio:
- NIVEL: valor que determina la luminosidad de cada pixel de una imagen. En imágenes de 8 bits los niveles posibles van del 0-255. En imágenes de 16 bits los niveles posibles van de 0-65535 (si bien no estamos acostumbrados a ver esta escala pues casi todas las herramientas gráficas a efectos de presentación los normalizan al rango 0-255). Una imagen en color define el tono de cada uno de sus pixels por 3 niveles: rojo, verde, azul. Una imagen BN es aquella en que para cada pixel individual, los niveles rojo, verde y azul tienen el mismo valor.
- HISTOGRAMA: es una representacióne estadística de la distribución de niveles de la imagen. En el eje X se muestran los posibles niveles presentes en la misma, y en el eje Y el número de pixels que contiene la imagen y que poseen el nivel indicado por X. El histograma más habitual es el combinado RGB, donde lo que se representa es el nivel medio de los 3 canales de que se compone el color de cada pixel (luminosidad del pixel). No obstante no es problema obtener el histograma para cada canal por separado.
QUÉ ES UNA CURVA?
Una curva es una función o correspondencia entre niveles. A cada posible nivel de entrada (en el rango 0-255) le hacemos corresponder uno y solo un nivel de salida en ese mismo rango. Por ejemplo una curva que para el valor de entrada 128 tiene como valor de salida asignado el 168, convertirá tras aplicarla todos aquellos pixels con un nivel 128, al nivel 168 (aumenta la intensidad de los mismos en 40 niveles absolutos). En el eje X de la curva se representan los niveles de entrada, y en el eje Y el nivel de salida correspondiente a cada nivel de entrada del eje X.
Las curvas se pueden definir y aplicar de forma combinada (RGB), de modo que afectarán simultáneamente a los niveles de los 3 canales de cada pixel, o por cada canal individual (R, G y B).
Una curva se define en PS con puntos de anclaje o referencia, situados con el ratón o introducidos con valores numéricos con el teclado sobre una gráfica. PS permite un máximo de 16 puntos de anclaje, e interpolará todos los puntos intermedios de la curva. Para sacar el editor de curvas seleccionar: Imagen->Ajustes->Curvas.
Veamos un ejemplo de aplicación de curva para aumentar el brillo de una imagen: esta curva lo que hará será aumentar todos los niveles de la imagen. Los niveles 0 quedarán a 0, los niveles 255 obviamente también quedarán a 255 (no hay mayor), pero todo el rango intermedio de niveles va a ser aumentado en mayor o menor medida, teniendo como efecto el incremento del brillo de la imagen. El histograma gris es el original, y el negro el resultante de la aplicación de la curva. Como puede verse todos los niveles se desplazan hacia la parte derecha del histograma pero sin quemar la imagen en ningún caso, pues así como expandimos las sombras estamos comprimiendo las luces.
http://img207.imageshack.us/img207/991/ejemplo25xw.jpg
USO DE CURVAS PARA CONTROLAR EL HISTOGRAMA: RANGO DINÁMICO y CONTRASTE
Para controlar la distribución de niveles en el histograma así como el contraste de la imagen, suelen utilizarse curvas en forma de 'S'. Dicha forma hace coincidir a los niveles más bajos, con niveles todavía inferiores a los actuales, y viceversa, a los niveles más altos, con niveles todavía superiores.
Para definir una curva 'S' son suficientes 5 puntos (incluso nos podemos ahorrar alguno, lo importante es que tenga pinta de 'S' y que esté adaptada el histograma a tratar):
http://img263.imageshack.us/img263/3900/curvavt16cz.jpg
Lo ideal es ir colocando los puntos en este orden:
1) Punto negro (Sombras): ajusta la parte izquierda del histograma para que coincida con el nivel 0. Es por tanto un punto que en el eje X tiene el valor del nivel más oscuro presente en la fotografía original, y en el eje Y vale 0: (nivel mín, 0)
2) Punto blanco (Exposición*): ajusta la parte derecha del histograma para que coincida con el nivel 255. Es por tanto un punto que en el eje X tiene el valor del nivel más claro presente en la fotografía original, y en el eje Y vale 255: (nivel máx, 255)
Si sólo usáramos estos 2 puntos, obtendríamos una recta que sería equivalente a hacer un control de Niveles ajustando las flechitas izquierda y derecha del mismo, es decir conseguiríamos expandir al máximo el rango dinámico de la imagen de forma uniforme sin hacer ningún control más.
3) Punto gris (Brillo*): ajusta el nivel de gris de la imagen original que va a representar el punto de inflexión en la operación de contraste, así como el brillo de la imagen. Por partes:
- Con su posición en el eje X determinaremos que cuando contrastemos, todos los niveles de la imagen original que queden a su izquierda se van a oscurecer respecto a su valor actual; del mismo modo todos los niveles de la fotografía original que queden a su derecha se van a aclarar respecto a su valor actual. Lo lógico, es situarlo aproximadamente en el punto medio del histograma, para que así en nuestra operación de contraste la mitad de pixels de la imagen se clarearán, mientras la otra mitad se oscurecerá. Como PS nos deja ver el efecto en tiempo real, no hay nada como probar e ir moviéndolo para ver su efecto porque depende de cada caso.
- Con su posición en el eje Y podemos incrementar o disminir el brillo de la imagen. La diagonal (Y=X) es un buen punto de partida, en ella no alteraremos el brillo de la imagen actual. Si lo colocamos por encima de la diagonal (Y>X) aumentamos el brillo y viceversa.
Este control equivale en su afectación a la imagen a la flechita central del control de Niveles, pero con más control.
4) Control de contraste para sombras y 5 Control de contraste para luces: con los puntos establecidos hasta ahora hemos expandido el histograma para ocupar todo el rango dinámico, y hemos establecido el brillo general de la imagen.
Expandir el histograma tiene como consecuencia que el contraste va a aumentar pues habremos movido niveles bajos a valores más bajos aún, y luces a niveles más altos de los que tenían. Pero ha sido como efecto colateral y sin control alguno. Normalmente, el contraste conseguido hasta ahora no será suficiente, y con estos dos puntos podremos aumentarlo (o disminuirlo si se diera el caso).
Estableciendo el punto 4 de modo que se cree una barriguita hacia abajo en la curva que une los puntos 1 y 3, conseguiremos oscurecer más todos los niveles comprendidos entre dichos puntos, es decir estamos oscureciendo los grises más oscuros de la imagen.
Del mismo modo estableciendo el punto 5 de modo que se cree una barriguita hacia arriba entre los puntos 3 y 2, aclararemos más de lo que están los grises más claros de la imagen.
Si no tenéis PS3, antes de sacar el control de curvas mostrad la ventana de histograma y situad la curva alineada con ella para saber lo que estamos haciendo. Por suerte PS3 ya trae el histograma impreso como fondo de la curva (como en mi ejemplo de arriba, que viene de ACR).
Vamos con un ejemplo práctico paso a paso: partimos de una foto rica en grises intermedios, pero cuyo histograma no aprovecha todo el margen dinámico (los extremos del histograma están vacíos) ni está convenientemente contrastada (el histograma muestra un pico predominante).
http://img262.imageshack.us/img262/8374/foto16al.jpg
En primer lugar vamos a maximizar el rango dinámico: puntos 1 y 2. El histograma se expande hasta los extremos.
http://img262.imageshack.us/img262/9333/foto24wl.jpg
Después establecemos el punto 3. Como el peso del histograma original (el que os muestro ahí sería el resultante de aplicar los puntos 1 y 2) está ligeramente desplazado a la izquierda, sitúo la coordenada X de dicho punto un poco a la izquierda del centro. En cuanto a la coordenada Y le doy un valor ligeramente por encima de la diagonal para subir el brillo un poco:
http://img262.imageshack.us/img262/8251/foto30yd.jpg
Ya tenemos la imagen con el máximo margen dinámico posible y brillo adecuados. El contraste se ha incrementado como efecto añadido, pero no lo suficiente así que vamos a formar la curva en S para que haya todavía más:
http://img444.imageshack.us/img444/8597/foto47wh.jpg
El resultado es una foto que va desde el negro hasta el blanco, pero sin ninguna zona negra ni quemada (los extremos del histograma terminan de forma suave, sin agregación de pixels en el 0 ni en el 255), y con un contraste óptimo (el histograma es mucho más plano que antes, ya no tiene un pico dominante sobre los demás).
(* he llamado Exposición y Brillo a controles con los que quizá alguno discrepe. Simplemente he seguido la nomenclatura de ACR y al fin y al cabo lo importante es el concepto aplicado a las curvas.)
NOTA:
Cuando aplicamos curvas teniendo la imagen en Modo RGB a una imagen en color en lugar de BN (y esto afecta por tanto a imágenes en BN ya viradas), vamos a alterar no solo el contraste sino también la saturación y los tonos como bien se dice aquí: http://www.ojodigital.com/foro/showthread.php?t=122538
Esto también ocurre si se usan Niveles u otra herramienta y la solución si queremos afinar es tan simple como usar el Modo Color Lab aplicando la curva sobre el canal Luminosidad.