Google+ Crastinia: GIMP: corrigiendo el "viñeteo" del cielo en panoramas

domingo, 20 de julio de 2014

GIMP: corrigiendo el "viñeteo" del cielo en panoramas

A veces cuando tomamos fotos para crear una panorámica no podemos o queremos hacerlo con el cuidado necesario, con las implicaciones posteriores cuando las unimos, entre ellas las diferentes exposiciones de las diferentes tomas que acaban haciendo que el panorama tenga un contraste apreciable entre distintas zonas. Esto es especialmente cierto cuando creamos panorámicas que abarcan un ángulo muy grande del horizonte y el cielo está despejado: las tomas cercanas a la vertical del Sol aparecerán mucho más claras que las opuestas, dando un aspecto de viñeteo a la foto. Un ejemplo:

Panorámica del Circo Romano de Mérida.
Como puede verse, el cielo en el panorama aparece con una forma característica, sinusoidal, con una zona claramente oscura y la otra más clara. En el cielo se observan además artefactos periódicos en forma de círculos correspondientes a cada una de las tomas del panorama. Tanto el problema de la exposición como de los artefactos pueden, si no corregirse, sí al menos disimularse de una forma relativamente rápida utilizando GIMP. La versión que se utilizará es la última disponible en este momento, 2.8.10.

Empezamos por abrir la imagen con GIMP y duplicar la capa. Si no tenemos abierto el menú de capas ahora es un buen momento para abrirlo yendo a Ventanas -> Diálogos empotrables -> Capas. También se puede usar el atajo de teclado Control+L. Podemos duplicar la capa de varias maneras:

- Pulsando con el botón derecho sobre la imagen y en el menú desplegable eligiendo Capa -> Nuevo a partir de lo visible.


- En el propio diálogo de capas, botón derecho sobre la única capa existente (la propia imagen) y seleccionando Duplicar la capa.

- En el propio menú de GIMP ir a Capa -> Nuevo a partir de lo visible.

En cualquier caso el resultado será que en el diálogo de capas tendremos una capa adicional exactamente igual a la primera.


Es el momento de utilizar una herramienta de selección. Lo más cómodo en este caso es utilizar la herramienta Selección difusa (letra de atajo: U), que selecciona regiones contiguas basándose en el color.



En panoramas con cielos completamente despejados el límite entre el cielo y el horizonte suele ser muy marcada, por lo que esta herramienta es ideal para ir seleccionando acumulativamente trozos de cielo hasta que lo tenemos seleccionado en un solo bloque. Vamos pulsando en diferentes zonas del cielo mientras mantenemos la tecla SHIFT pulsada (aparece un pequeño signo + en el icono de la herramienta de selección) hasta que conseguimos seleccionar todo el cielo. La herramienta de selección difusa tiene un selector de Umbral que permite afinar o ampliar la cantidad de selección contigua que la herramienta selecciona en cada pulsación del ratón. A mayor umbral mayor cantidad de selección por pulsación, pero más riesgo hay de seleccionar partes que no queremos (como zonas por debajo de la línea del cielo, por ejemplo). Para completar la selección en zonas donde la herramienta de selección difusa sea incómoda (como zonas muy pequeñas que no han sido correctamente seleccionadas) podemos usar las clásicas selecciones elípticas (atajo E) o rectangulares (atajo R), siempre pulsando SHIFT para añadir las zonas a la selección existente.

El cielo a medio seleccionar.

El cielo completamente seleccionado. Notar la línea punteada que bordea el horizonte y que se ajusta bastante bien a él.

Una vez estemos contentos con nuestra selección el paso siguiente consiste en invertir el brillo de cada pixel de la selección. Podemos conseguirlo yendo al menú de GIMP, a Colores y luego a Inversión del valor.



El brillo del cielo se invierte:


Para poder trabajar solo con la selección y más comodamente, añadimos una máscara a la capa sobre la que estamos trabajando. De nuevo podemos hacerlo de varios modos:

- Botón derecho sobre la imagen -> Capa -> Máscara -> Añadir máscara de capa.
- Botón derecho sobre el diálogo de capa y seleccionando Añadir máscara de capa.
- Menú de GIMP, Capa -> Máscara -> Añadir máscara de capa.

En cualquiera de los tres casos nos aparece un diálogo para seleccionar el tipo de máscara que queremos crear. En nuestro caso elegimos Selección.


En el diálogo de capas aparece la máscara (la imagen en blanco y negro) junto a la imagen de la capa:


Ahora llega el punto clave: fusionaremos la máscara, que contiene los valores de brillo invertidos, con la capa inferior, con los valores de brillo originales, mediante el método de Suma, lo que tenderá a igualar el brillo y reducir los artefactos. Para ello elegimos Suma del desplegable del diálogo de capa:







En cuanto se selecciona, el resultado es inmediato:


Aplicamos la máscara para que esta deje aplicados los cambios y desaparezca: pulsamos con el botón derecho sobre la capa de trabajo en el diálogo de capas y seleccionamos Aplicar máscara de capa.


 Ya solo queda un detalle por pulir: la suma de los brillos aumentará la granuralidad y el ruido del cielo. Lo ideal en este caso es pasar un filtro de desenfoque, y en concreto utilizar el filtro Desenfoque gaussiano selectivo. Se podría usar el filtro Desenfoque gaussiano, a secas, pero deja halos indeseables en las zonas límite entre el cielo y el horizonte. Antes de nada aplanamos la imagen yendo al menú de GIMP Imagen -> Aplanar la imagen. Las capas se fusionarán sin más efectos visibles y la selcción se mantendrá. En el menú Filtros seleccionamos Difuminar -> Desenfoque gaussiano selectivo.


En el diálogo del filtro elegimos unos valores adecuados. La previsualización nos ayudará a elegirlos:


La aplicación del filtro de desenfoque gaussiano selectivo puede ser muy lenta dependiendo del tamaño de la imagen y de los valores que hayamos elegido para el filtro, pero da mejores resultados que con el desenfoque gaussiano a secas.

Y ahora ya tenemos un panorama con un cielo en el que la diferencia de exposiciones y los artefactos están más disimulados que en el original:

Antes
Después

No hay comentarios:

Publicar un comentario