viernes, 23 de abril de 2021

Generando un RAW en formato DNG a partir de un TIFF

En este artículo vamos a describir una forma sencilla de generar un archivo RAW de imagen en formato DNG, a partir de un mapa de bits TIFF con estructura Bayer. Además como de cualquier RAW de cámara se pueden extraer los datos crudos en forma de mapa de bits, podremos manipular archivos RAW para construir un nuevo DNG de salida con determinado procesado.

El flujo completo si partimos de uno (o varios) archivos RAW de nuestra cámara sería:
  • Convertir los RAW origen a formato DNG con Adobe DNG Converter.
  • Extraer los datos RAW de imagen en formato TIFF en escala de grises con DCRAW (dcraw -v -d -r 1 1 1 1 -t 0 -4 -T *.dng).
  • A continuación procesamos el (o los) archivos TIFF con Photoshop o cualquier herramienta o lenguaje de programación que permita manipular imágenes de mapa de bits, generando un nuevo TIFF. Es imprescindible respetar el patrón Bayer original.
  • Con las herramientas exiftool y dng_validate encapsulamos el TIFF de salida obtenido en un archivo DNG válido (un DNG es básicamente un TIFF con metadatos específicos), en este caso de 16 bits, que podrá abrirse con cualquier revelador RAW ya que sus metadatos serán una réplica de los del DNG original. El script dngmaker.bat automatiza esta parte.



La posibilidad de editar los datos de un archivo RAW y encapsularlos en otro deja claro que la inviolabilidad del RAW es un mito. Aquí estamos tratando archivos DNG que es un formato abierto y de sobra conocido, pero nada impide a alguien con los conocimientos necesarios alterar el contenido de un RAW de cualquier cámara del mercado.

El RAW sintético rawnegativodigital.dng combina información de dos capturas independientes y añade texto. La información en cada píxel es indistinguible de la correspondiente de los RAW originales:


Vamos a ver cuatro ejemplos en los que a partir de archivos RAW origen obtendremos un archivo RAW en formato DNG de salida con características mejoradas:


En todos ellos el procedimiento es el mismo:
  • Guardar en una misma carpeta todos los archivos DNG que se vayan a procesar, junto con el script dngmaker.bat y los ejecutables dcraw.exe, exiftool.exe y dng_validate.exe.
  • Ejecutar el script dngmaker.bat, que extraerá los datos RAW de todos los DNG tomando uno de ellos como referencia de metadatos, y pausará con el mensaje 'Now it's time to process the resulting TIFF files and build bayer.tif'.
  • Ahora deberemos hacer los procesados oportunos de los TIFF generados a partir de cada DNG, guardando el resultado en bayer.tif. Para los ejemplos de arriba se incluye el código en R.
  • Ya solo quedará pulsar una tecla en la consola para continuar la ejecución del script, que guardará los datos de bayer.tif en un archivo DNG válido de salida.

~~~

Repositorio con todo el código R, script DNG, ejecutables de DCRAW, exiftool y dng_validate, y archivos RAW originales y finales: 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.