Open Source im professionellen Einsatz

Stitching, Bewegung und Rauschen

Je nach Kamera lauten die Dateinamen anders, die Cut-Kommandos muss der Anwender entsprechend anpassen. Nach dieser Schleife liegen im »jpg« -Verzeichnis die entwickelten Bilddateien, alle korrigiert um die Belichtungseinstellungen und den Weißabgleich des optimalen Fotos. Jetzt geht es ans Zusammenfügen der großen Anzahl von Bildern, was natürlich möglichst automatisch ablaufen soll. Die optimale Lösung ist eine Mischung aus Kommandozeile und Hugin-GUI (Abbildung 7).

Abbildung 7: Kamera-Einstellungen und Belichtungsreihen kombiniert Hugin zu einem Panoramafoto.

Abbildung 7: Kamera-Einstellungen und Belichtungsreihen kombiniert Hugin zu einem Panoramafoto.

Die besten Ergebnisse erreicht, wer die Bilder um jeweils etwa die Hälfte überlappen lässt. Bei wenigen Bildern (Abbildungen 4 bis 6) reicht das Hugin-GUI vollkommen. Im Test erwies es sich aber oberhalb von 200 Bildern als instabil, mindestens das erste Zusammenfügen sollte dann von der Kommandozeile aus stattfinden. Im Paket »hugin« sind dafür einige CLI-Tools enthalten. So ist zum Beispiel »Autopano-sift-c« in der Lage, markante Stellen in Bildern zu erkennen, die auch auf mehreren Fotos vorkommen. Passen sie zusammen, setzt das Programm dort einen Kontrollpunkt, der es ermöglicht, die Bilder wie ein Mosaik aneinanderzufügen. Dieser Schritt ist aber sehr rechenaufwändig und enthält systematische Fehlerquellen.

Bei sich bewegenden Gegenständen wie Fahrzeugen oder auch bei Menschen erkennt das Programm zwar die Zugehörigkeit. Hat sich das Objekt in der Zwischenzeit jedoch bewegt, stimmt seine Position nicht mehr. Auch das Bildrauschen in kontrastarmen Bildern stellt ein Problem dar, das sich jedoch schon bei der Aufnahme durch die Wahl einer niedrigen ISO-Empfindlichkeit vermeiden lässt. Die Fotos, die trotzdem noch Fehler verursachen, löscht der Anwender am besten manuell, sie sind über ihre allzu großen Fehlerabstände leicht zu finden.

Zu guter Letzt steht der Algorithmus teils vor den gleichen Aufgaben wie das menschliche Auge, vor allem bei sich streng wiederholenden Mustern. Dann landet ein Referenzpunkt leicht mal fälschlicherweise bei der Kachel nebenan. Trotzdem lohnt es sich, immer hoffnungsvoll mit der Automatik anzufangen. Auf der Kommandozeile lautet der Befehl:

autopano-sift-c --maxmatches 15 --maxdim 2000 J1.pto _MG_*JPG

Die Berechnung dauert bei 200 Bildern schon mal eine halbe Stunde und liefert eine Datei »J1.pto« , die alle Kontrollpunkte auflistet. Die Beschränkung auf nur 15 Punkte (»maxmatches 15« ) ist sinnvoll, damit Autopano bei Bildern, die besonders günstige Bedingungen haben, nicht so viele Punkte hinzufügt. Das würde die anderen Bilder dominieren und das spätere manuelle Eingreifen komplizieren.

Ist das Panorama als Belichtungsreihe aufgenommen, die üblicherweise aus drei jeweils gleich ausgerichteten Bildern besteht, fügt der Anwender noch weitere Punkte hinzu. Zwar ist klar, dass sich jeweils drei Bilder exakt überlappen, aber wegen der Unter- und Überbelichtung erarbeitet der Algorithmus ausgerechnet in diesem Fall ungenauere Ergebnisse. Abhilfe schafft, in die Datei »J1.pto« noch fünf gleichmäßig übers Bild verteilte Punkte einzufügen, die jeweils identische Bilder mit unterschiedlicher Belichtung sauber miteinander verbinden. Auch das geht automatisch, Listing  2 zeigt die entsprechende Schleife.

Listing 2

Kontrollpunkte in Belichtungsreihen

01 s=$(echo $(ls *JPG | wc -l) -3 | bc);
02 for i in $(seq 0 3 $s); do j=$(echo "$i+1" | bc); k=$(echo "$i+2" | bc);
03 echo "c n$i N$j x492.08 y584.21 X492.08 Y584.21 t0
04 c n$i N$j x2181.18 y620.08 X2181.18 Y620.08 t0
05 c n$i N$j x396 y3585 X396 Y3585 t0
06 c n$i N$j x2333.13 y3437.67 X2333.13 Y3437.67 t0
07 c n$i N$j x1196.26 y1935.27 X1196.26 Y1935.27 t0
08 c n$i N$k x492.08 y584.21 X492.08 Y584.21 t0
09 c n$i N$k x2181.18 y620.08 X2181.18 Y620.08 t0
10 c n$i N$k x396 y3585 X396 Y3585 t0
11 c n$i N$k x2333.13 y3437.67 X2333.13 Y3437.67 t0
12 c n$i N$k x1196.26 y1935.27 X1196.26 Y1935.27 t0" >> J1.pto;
13 done

Kontrollpunkte entfernen

Das Kommando »celeste_standalone -i J1.pto -o J2.pto« entfernt aus der Liste der Kontrollpunkte jene, die unsinnig erscheinen, weil sie zum Beispiel auf sich bewegenden Gegenständen im Bild liegen. Dabei entsteht eine neue Datei »J2.pto« . Unterschiedliche Dateinamen erleichtern den Schritt zurück.

Jetzt stellt der Auto-Optimiser die Anordnung der Bilder her und optimiert diese mit »autooptimiser -a -p -l -s -o J3.pto J2.pto« . Nun wartet die Datei »J3.pto« aufs Laden in Hugins GUI. Dort klickt der Hobby-Stitcher auf die Liste der Kontrollpunkte und sortiert sie nach Abständen. Die am weitesten auseinanderdriftenden Kontrollpunkte sind normalerweise falsch, die sollte er gleich löschen. Hier sind Augenmaß und Erfahrung gefragt, erst mit der Zeit stellt sich beim Anwender ein sicheres Gefühl für die maximal akzeptable Entfernung unter verschiedenen Umständen ein.

Eher unkompliziert ist der nächste Schritt: zwei Mausklicks, erst auf »Optimieren« und dann »Alles« . Je mehr gute und sinnvoll verteilte Kontrollpunkte Hugin vorfindet, desto besser wird jetzt das Ergebnis ausfallen. Dieser Schritt ist bei der Erstellung eines Panoramas mit Abstand der arbeitsaufwändigste, weil es notwendig werden kann, manuell zusätzliche Referenzpunkte hinzuzufügen.

Diesen Artikel als PDF kaufen

Express-Kauf als PDF

Umfang: 8 Heftseiten

Preis € 0,99
(inkl. 19% MwSt.)

Als digitales Abo

Als PDF im Abo bestellen

comments powered by Disqus

Ausgabe 07/2013

Preis € 6,40

Insecurity Bulletin

Insecurity Bulletin

Im Insecurity Bulletin widmet sich Mark Vogelsberger aktuellen Sicherheitslücken sowie Hintergründen und Security-Grundlagen. mehr...

Linux-Magazin auf Facebook