Cambiar la fecha de series de imágenes
miércoles, 7 de febrero de 2018Uno de los problemas de las cámaras de fototrampeo es que en cuanto están más de 10 segundos sin pilas se resetea el reloj y la fecha impresa en la foto es errónea o muy errónea. En la mayoría de las ocasiones se vuelve al año de fabricación y en otras, cuando el fallo de baterías es leve o momentáneo pues se vuelven atrás 20 horas ó 30 minutos.
Si (como es mi caso) la fecha/hora en que se capturó la imagen es importante pues es un incordio. Pero fácil de solucionar si sabes cuanto de retrasado estaba el reloj de la cámara.
La dificultad está en saber la cantidad de tiempo en que está desajustada la cámara, pero gracias a las fotografías que toma la cámara nos toma al instalarla o desinstalarla es relativamente fácil calcular este desajuste con un margen de error de sólo minutos.
En mi caso, recogí las fotografías a las 19:00 y en ese momento la cámara me tomó una foto marcandola como las 02:16 del mismo día, es decir, la cámara iba retrasada 16 horas 45 minutos.
Cambiar datos EXIF
Leer y escribir datos EXIF en archivos de imágenes exiftool es básico. El alias -alldates nos permite ver todas las fechas relativas a una imagen o varias exiftool -alldates IMAG_0012.JPG
Date/Time Original : 2018:01:31 13:05:09
Create Date : 2018:01:31 13:05:09
Modify Date : 2018:01:31 13:05:09
Para corregir todo una serie de fotos y adelantar sus fechas de creación y modificación 16 horas y 45 minutos basta con entrar en la carpeta que las contenga y en un terminalexiftool -alldates+="0:0:0 16:45:0" *
#retrasar 1 año 20 dias y tres horas
exiftool -alldates-="1:0:20 3:0:0" *.JPG
El formato es AÑO:MES:DIA HORA:MINUTO:SEGUNDOS. Hay que especificarlos la fecha incluso si no vais a modificarlos como en el ejemplo poniéndolos a cero.
En un segundo exiftool modifica todas las imágenes indicadas generando un copia de seguridad del archivo sin modificar añadiendo el sufijo «_original».
Ahora podéis renombrar las imágenes según su fecha de creación simplemente haciendo:exiftool -FileOrder FileNumber "-FileName<CreateDate" -d AGQ_%Y%m%d_%H%M%S%%-c.%%le'
Eso generaría una lista de archivos como:AGQ_20180130_002234.jpg
AGQ_20180130_125225.jpg
AGQ_20180127_144258.jpg
AGQ_20180131_024455.jpg
AGQ_20180206_141620.jpg
AGQ_20180205_200035.jpg
AGQ_20180203_124745.jpg
Nota la opción «-FileOrder FileNumber» es interesante incluirla (no obligatorio) por el siguiente motivo: si las fotos están tomadas con varios horas o minutos de diferencia no hay problema en el renombrado, pero si las fotos corresponden a una ráfaga de (ejemplo) una cámara reflex, en la que varias fotos comparten la hora:minuto:segundo de creación exiftool las renombrará añadiendo al final un -1, -2, -3, etc… pero puede que índice no respete el orden en que fue realizada la ráfaga. Al incluir FileNumber le decimos que respete el orden número que llevaba el nombre original, y lo mantenga. Así las fotos FOTO_0244.NEF, foto FOTO_0245.NEF, foto FOTO_0246.NEF pasarán a ser AGQ_20180110_123456-1.nef, AGQ_20180110_123456-2.nef, AGQ_20180110_123456-3.nef…compartiendo fecha y orden de creación.
Modificar la fecha impresa en la imagen
(puntua para premio :D )
Obviamente el ejemplo del paso anterior únicamente modificábamos los datos exif insertos el archivo fotográfico. Pero muchas cámaras de fototrampeo sobreimprimen en la imagen la fecha en fueron creadas (mal impresa porque el reloj de la cámara estaba desconfigurado).
Pero nada que no tenga arreglo, con un par de líneas y otra fabulosa herramienta ImageMagick podemos arreglarlo rápidamente.
Las siguientes líneas cogen todos los JPG de una carpeta, renombrados como en el paso anterior y sobreimprimen la fecha de la fotografía con la fecha corregida:
mkdir corregidos
for file in $(find . -type f -name "*jpg"); do
t=$(echo "$file"|sed -r 's/.\/AGQ_([0-9]{4})([0-9]{2})([0-9]{2})_([0-9]{2})([0-9]{2})([0-9]{2}).jpg/\2\/\3\/\1 \4:\5:\6/');
convert "$file" -gravity south-east -fill '#dddddd' -draw 'rectangle 1600,1845 2250,1950' -fill black -pointsize 76 -annotate +320+5 "$t" -flatten "./corregidos/$file"
done
Con esa línea se corrigen 200 fotografías en apenas 30 segundos
14 de December, 2024 @ 19:19