Fotos mergen

Wanneer met verschillende camera's dezelfde gebeurtenis wordt geschoten, worden de zaken een stuk ingewikkelder. Doel is om een groot fotoarchief te maken waarbij de foto's uit verschillende camera's toch op de juiste volgorde staan. Gewoon omdat het kan.

Digitale camera's slaan de tijd waarop de foto is gemaakt op in het plaatje, in de zogenaamde EXIF-header, dus dat is handig! We gebruiken het programma jhead om met deze tijd de foto's in de juiste volgorde te krijgen in het archief.

De tijden van de verschillende camera's staan waarschijnlijk niet goed. De fotos zullen naar dezelfde tijdreferentie moeten worden gezet. Wanneer de camera echt heel veel verkeerd loopt (maanden, jaren), volstaat deze handleiding niet. Zie man jhead voor meer info, en kijk bij de optie -da.

Een referentie kiezen

Een truc is om met alle camera's 1 keer hetzelfde horloge te fotograferen, met duidelijke secondewijzer (bij een chronograaf: stopwatch starten), en deze foto niet weg te gooien. Liefst een mechanisch horloge (of een stemvorkhorloge maar wie heeft dat nu) omdat de resolutie van de secondewijzer hoger is dan bij quartz. De tijd van het horloge, of het nu goed loopt of niet, wordt als referentie gebruikt. Dit is de beste methode omdat het zeer nauwkeurig is en omdat fouten altijd gecheckt, gedubbel-checkt en getrippel-checkt kunnen worden. De correcte tijd kan indien gewenst later uit een van de camera's worden afgeleid met behulp van een correcte tijdreferentie.

Een andere truc is om achteraf tegen een correcte tijdreferentie te kijken hoeveel de camera's verkeerd lopen. De ervaring leert dat dit vergissingen kan opleveren maar het kan wel altijd achteraf. Dit kan bijvoorbeeld met de Tau Tijdserver:
www.dispuuttau.nl/time

Foto's bij elkaar zetten

In dit voorbeeld van het diner zijn er 3 camera's: Bram, Sven en Bas. Houd de foto's in een aparte subdirectory:

diner/bram/*.jpg
diner/bas/*.jpg
diner/sven/*.jpg

Ga naar de subdirectory van het diner:

cd diner

Jhead

Jhead staat geinstalleerd op de tauserver, of kan op een willekeurig Linux, Unix of Apple-systeem worden geinstalleerd. Hoe dan ook, open een terminal en tik het volgende in:

cd bram
jhead *
cd ..

Jhead laat nu van elk plaatje alle EXIF-informatie zien. Voor de camera van Bram ziet dit er zo uit:

File name    : Picture 205.jpg
File size    : 4441115 bytes
File date    : 2009:04:21 22:01:17
Camera make  : NIKON CORPORATION
Camera model : NIKON D60
Date/Time    : 2009:04:10 21:35:39
Resolution   : 3872 x 2592
Flash used   : Yes (auto, return light detected)
Focal length : 32.0mm  (35mm equivalent: 48mm)
Exposure time: 0.250 s  (1/4)
Aperture     : f/5.0
ISO equiv.   : 1600
Whitebalance : Manual
Metering Mode: spot
Exposure     : Manual
Exposure Mode: Manual

Het veld Date/Time is belangrijk, dat moet er in zitten anders werkt dit hele verhaal niet. De andere velden zijn ter lering ende vermaeck.

Tijd goed zetten

Vergelijk elke camera met een referentie, en bepaal het verschil. Het rekenen met hr:mm:ss tijden uit het hoofd is lastig en gevoelig voor fouten, vandaar dit Matlab-programmaatje. Dit blijken de afwijkingen te zijn:

  • Bram: 1 uur, 57 minuten, 53 seconden achter
  • Sven: 1 uur, 0 minuten, 8 seconden achter
  • Bas: 1 uur, 0 minuten, 37 seconden achter

Jhead kan de EXIF informatie wijzigen en heeft een optie om de tijd te verzetten. Tik het volgende in:

cd bram
jhead -ta+1:57:53 *
cd ..
cd sven
jhead -ta+1:00:08 *
cd ..
cd bas
jhead -ta+1:00:37 *
cd ..  

De optie -ta is time adjustment, en +1:57:53 betekent 1 uur, 57 minuten en 53 seconden vooruit (achteruit kan met een - uiteraard). De * betekent alle plaatjes in de directory. Jhead zal nu de EXIF-informatie in de plaatjes wijzigen, en de tijd verschuiven volgens de opgegeven waarden. In het voorbeeld van de camera van Bram levert dit het volgende op:

File name    : Picture 205.jpg
File size    : 4441115 bytes
File date    : 2009:04:21 22:01:17
Camera make  : NIKON CORPORATION
Camera model : NIKON D60
Date/Time    : 2009:04:10 23:33:32
Resolution   : 3872 x 2592
Flash used   : Yes (auto, return light detected)
Focal length : 32.0mm  (35mm equivalent: 48mm)
Exposure time: 0.250 s  (1/4)
Aperture     : f/5.0
ISO equiv.   : 1600
Whitebalance : Manual
Metering Mode: spot
Exposure     : Manual
Exposure Mode: Manual

Naam wijzigen

Vervolgens worden de namen gewijzigd. Het fotoarchief leest namelijk geen EXIF-informatie, maar sorteert plaatjes op filenaam. Daarnaast is het handig bij het uitzoeken als alles bij elkaar staat op de juiste volgorde. Tik het volgende in:

cd bram
jhead -nf%Y%m%d-%H%M%S-bram *
mv * ..
cd ..
cd sven
jhead -nf%Y%m%d-%H%M%S-sven *
mv * ..
cd ..
cd bas
jhead -nf%Y%m%d-%H%M%S-bas *
mv * ..
cd ..

Jhead hernoemt nu alle foto's volgens het schema: jaar, maand, dag, uur, minuut, seconde, fotograafnaam. Voor de foto van Bram uit het voorbeeld wordt dit:

Picture 205.jpg --> 20090410-233332-bram.jpg

Is dit leuk of niet? De foto's kunnen nu op volgorde van tijd worden gezet, en de naam van de fotograaf blijft behouden. Het is belangrijk om de naam van de fotograaf toe te voegen om te voorkomen dat er foto's met dezelfde naam kunnen ontstaan. Het commando mv * .. is optioneel: het zorgt dat alle plaatjes bij elkaar in de directory diner komen te staan.

Als je dit op de Tauserver hebt gedaan, kunnen nu alle foto's op je PC worden gezet om uit te zoeken welke foto's weg kunnen. Sorteer de foto's op filenaam en je hebt de correcte volgorde.

Onderdeel van de TAUserver