viernes, 24 de mayo de 2024

Apilado por mínimo para preservar sombras en RAW

Me quedan pocas funciones de apilado por probar, y una de ellas es el mínimo. Haciendo en este caso el ejercicio al revés tratamos de discurrir una aplicación donde este apilado tenga utilidad, y se me ha ocurrido la de preservar las sombras proyectadas por un "reloj solar" casero.

Por descontado se podría hacer una media y contrastar las sombras, pero buscando deliberadamente los niveles del RAW menos expuestos de la serie deberíamos conseguir unas sombras mucho más profundas de partida. Es un caso similar a 'Apilado por máximo para acumular luz en RAW', donde también podríamos haber hecho la media y luego resaltar las luces pero fuimos directamente a buscar los niveles RAW máximos.

He hecho 5 capturas a intervalos de 1h entre las 10h00 y las 14h00 sobre un "reloj solar" casero, compuesto por una chincheta clavada en un cartón y dos piedras para que no se vuele el conjunto:



Todas las tomas se hicieron con la misma exposición. Al revelarlas con idénticos parámetros enseguida advertimos la luminosidad creciente fruto del ángulo de incidencia progresivamente menos rasante del Sol:


El ejercicio es muy simplón pero de rebote nos ha brindado una oportunidad interesante que no habíamos explotado: debido al amplio intervalo entre tomas (4h en total) y a que la rótula del trípode de viaje usado es muy poco robusta (literalmente se escuuurrrrre), las tomas sufrieron un importante desalineamiento progresivo debido al peso del cuerpo y el objetivo:


Lo que se muestra arriba es un recorte del RAW sintético ya construido con el mínimo en cada fotosito. Puede verse que no existen artefactos extraños pero los desalineamientos son muy patentes. Bien, y si probamos a corregirlos en el dominio Bayer para que en el RAW sintético de salida no exista el problema?

Dicho y hecho. La única condición que debe cumplirse es que los desplazamientos para hacer casar los datos RAW de cada toma deben ser siempre por un número par de píxeles, o se dejaría de respetar la estructura de la matriz de Bayer obteniendo resultados disparatados. Éste es un hándicap conocido del procesado espacial en el dominio RAW, cuando en una imagen ya revelada los desplazamientos pueden hacerse tranquilamente con precisión de 1 píxel.

Aplicamos las siguientes correcciones que toman como referencia la primera captura:



El resultado sin ser perfecto mejora muchísimo la versión anterior. El archivo RAW sintético puede descargarse de minlight.dng. Incluimos además la hora correspondiente a cada captura (hacer clic para ver el resultado al 100%):


Conforme pasaban las horas las sombras iban siendo menos oscuras al haber una mayor luminosidad ambiente. Así los píxeles del cartón bañados por el sol en todas las tomas provienen de la primera captura, la que resultó con menor exposición, y por eso tienen su misma luminosidad. Esto queda patente en el mapa de fusión (en negro esa primera toma, hacer clic para ver en tamaño original):


La selección de los menores niveles RAW encontrados en la serie tiene como efecto colateral ser un "salvavidas" de altas luces. Si en alguna de las tomas las altas luces no estuvieran quemadas, como es el caso, el RAW de salida las tendrá intactas pese a que sí se pudieran haber quemado en el resto de tomas.

~~~

Recopilamos los apilados en RAW hechos hasta ahora: Media, Mediana, Antimediana, Máximo, HDR, y éste por Mínimo:



En Photoshop replicaríamos el apilado por mínimo abriendo todas las imágenes en capas, alineándolas, convirtiéndolas en un objeto inteligente y aplicando 'Capa' → 'Objetos inteligentes' → 'Modo de apilamiento', eligiendo Mínima. O sin acudir a objetos inteligentes simplemente apilándolas en capas en modo de fusión 'Oscurecer'.

~~~

Repositorio con todo el código R, script DNG, ejecutables de exiftool y dng_validate: GitHub.


No hay comentarios:

Publicar un comentario

Por claridad del blog, por favor trata de utilizar una sintaxis lo más correcta posible y no abusar del uso de emoticonos, mayúsculas y similares.