Landschafts- oder Stadtbilder gewinnen an Reiz, wenn man mehrere von ihnen zum Großformat montiert. Die einzelnen Fotos passen aber oft nicht so recht zusammen, was die Sache schwierig macht. Die Tools Hugin, Enblend und Autopano-SIFT helfen dabei.
Wer seine digitalen Fotos zu einem nahtlosen Bild montieren will, tut sich mit dem Bildbearbeiter Gimp alleine schwer. Die bislang einzige Software dafür findet man mittlerweile nicht mal mehr auf der Homepage des Autors (siehe Kasten “PanoTools”). Dieser Artikel stellt neue Alternativen vor, die selbständig Bilder korrigieren und perfekt zusammenfügen.
PanoTools
Recht lange Zeit waren die PanoTools die einzige freie Software, um selbst Panoramabilder zu basteln [1], allerdings mit komplizierten Lizenzbedingungen. Die Bibliothek und der PTOptimizer stehen unter der freien GNU Public License, während für verschiedene Einzelprogramme anderen Lizenzen gelten.
Weil der Autor Helmut Dersch die Software nicht einmal mehr auf den eigenen Webseiten führt, bieten andere Interessierte die alten Pakete an. Zum Teil findet man sogar die kostenpflichtigen Ableger, auch wenn das nicht ganz legal sein dürfte.
Mittlerweile gibt es ein Sourceforge-Projekt, das den freien Teil der PanoTools weiterpflegt [2].
Verzerrte Bilder beim Fotografieren
Hat man mit einer digitalen Kameras die nötigen Fotos geschossen, fangen die Probleme an. Die Bildübergänge weich und unsichtbar hinzubekommen, ist schon schwierig genug. Normalerweise sind die Fotos aber so verzerrt, dass eine Korrektur von Hand fast unmöglich ist. Dafür ist einerseits das Kameraobjektiv verantwortlich, das selbst schon einzelne Bilder verzerrt, so dass gerade Linien zu krummen werden und die Fotomontage erschweren.
Der andere Grund für das Problem ist die Verzerrung durch die Aufnahme einer Bildserie. Bleibt man an einem Punkt stehen, dreht die Kamera zum Beispiel nach links und drückt dann ab, erscheinen Objekte am rechten Bildrand zu groß, am linken Bildrand zu klein, siehe Abbildung 1.
Freie Software hilft dabei, solche Verzerrungen zu korrigieren, die Einzelbilder aneinander auszurichten und sie schließlich zu einem Bild zusammenzumontieren.
Fotos entzerren und ausrichten
Das grafische Programm Hugin [3] zeigt die Fotos an und lässt den Benutzer relevante Punkte auswählen, mit denen es die Bilder korrigiert und ausrichtet. Es ist zwar an sich nicht schwer zu installieren, braucht aber einige Bibliotheken, die nicht alle Distributionen schon mitbringen. Einige Tipps finden Sie im Kasten “Installation”.
Installation
Soweit vorhanden, finden Sie Binärpakete für gängige Distributionen auf der Heft-CD, ebenso andere Software, von der die hier vorgestellten Programme abhängen.
Hugin [3] braucht zum Beispiel die Bibliothek WxWidgets (früher WxWindows) und deren Erweiterung WxWidgets-XRC. Die meisten andereren Bibliotheken bringen die Distributionen schon mit, zum Beispiel Libtiff, LibPNG und LibJPG. Neben dem Mathematikpaket FFTW braucht Hugin auch die Boost-Library, wenn man es selbst kompilieren will. Gemeinerweise hängen Version und Name wiederum von der Distribution ab. So heißt die Boost-Entwicklungsbibliothek unter Fedora einfach libboost-devel, bei Debian sind das drei Pakete mit den Namen libboost-graph-dev, libboost-dev und libboost-python-dev.
Die für Fedora nötigen Dateien finden Sie auf der Heft-CD im entsprechenden Verzeichnis. Mit einem Befehl installieren Sie Bibliotheken:
rpm -iv panorama-tools-2.7a-1.i386.rpm wxGTK-* fftw2-*
Die libpano12 ist zwar in den Panorama-Tools enthalten, aber der Paketmanager beschwert sich trotzdem über ihr Fehlen, weil die Paketabhängigkeiten nicht stimmen. Hier hilft eine Option des RPM-Programms weiter, der die Überprüfung ausschaltet: rpm -iv --nodeps hugin-0.4-cvs20041021.bp.fc2.i386.rpm.
Suse bringt von Haus aus zwar eine WxWindows-Version mit, sie passt aber nicht zu Hugin. Also sollte man sie entfernen und stattdessen auch dort die entsprechenden Fedora-Pakete verwenden – das funktionierte zumindest im Test mit Suse 9.1.
rpm -iv panorama-tools-2.7a-1.i386.rpm wxGTK-xrc-2.4.2-4.1.fc2.dag.i386.rpm fftw-2.1.3-1102.i586.rpm hugin-20040921-1.bp.fc1.i386.rpm wxGTK-2.4.2-4.1.fc2.dag.i386.rpm
Bei Debian gibt es kein extra wxGTK-Pakte mit “xrc” im Namen, das ist in libwxgtk2.4-contrib-dev. Mit den folgenden Befehlen installieren Sie die nötigen Bibliotheken, die LibPano und Hugin (die letzten beiden von der Heft-CD):
apt-get install libwxgtk2.4-dev libwxgtk2.4-contrib-dev fftw2 dpkg -i libpano12_20040917-1_i386.deb dpkg -i hugin_0.4pre20040917-1_i386.deb
Natürlich hängt das Gelingen auch davon ab, welche Software und Bibliotheken Sie vorher schon installiert hatten. Sollte noch ein Paket fehlen, hilft vielleicht eine Google-Suche nach dem Paketnamen und dem nötigen Paket-Format.Was das Autopano-Programm und Enblend zu ihrem Glück brauchen, verraten die jeweiligen Kästen.
Kasten 2: Mono für Autopano
Autopano-SIFT ist in der Programmiersprache C# geschrieben und benutzt Bibliotheken des Mono-Projekts [4]. Um die Software zu nutzen, brauchen Sie nicht die ganze Mono-Umgebung. Es genügt der so genannte Interpreter, der das Programm ausführt und einige Bibliotheken. Für Suse (9.1) und Fedora finden Sie auf der Heft-CD die passenden Pakete, die sie mit dem Paketmanager der Distribution installieren. Für Suse sind das mono-core-1.0.2-1.ximian.9.1.i586.rpm, libicu26-2.6.2-1.ximian.9.0.i586.rpm, gtk-sharp-1.0.2-1.ximian.9.2.i586.rpm, libgtkhtml3.1_7-3.1.13.0.200405120525-0.snap.ximian.9.1.i586.rpm Fedora-Benutzer brauchen das libgtkhtml-Paket nicht.
Bei Debian tragen Sie am einfachsten das Apt-Repository in /etc/apt/sources.list ein und installieren auf der Kommandozeile die Pakete mono, libgtk-cil und libglib-cil. Mehr Informationen gibt die Website zu Mono auf Debian [5]
Mit Mono geschriebene Exe-Dateien startet man mit dem Aufruf mono programm.exe. Das Binfmt-Misc-Modul des Kernels kann Mono-Bytecode-Dateien auch direkt ausführen. Die meisten Distributionen liefern ein solches Modul mit aus. Falls der Automounter das dafür nötige Pseudo-Dateisystem nicht automatisch einhängt, hilft dieser Befehl:
mount -t binfmt_misc none /proc/sys/fs/binfmt_misc
Schließlich muss man noch dem Kernel beibringen, dass er Mono-Dateien erkennt und mono startet.
echo ':CLR:M::MZ::/usr/bin/mono:' > /proc/sys/fs/binfmt_misc/register
Besitzen die Exe-Dateien Ausführungsrechte (chmod +x), lassen sie sich direkt ausführen. Auch Autopano-SIFT [6] müssen Sie dann nur noch entpacken. Entweder Sie starten es direkt mit /Pfad/zu/autopano-sift-2.0/bin/autopano.exe oder mit Hilfe des Mono-Programms mono /Pfad/zu/autopano-sift-2.0/bin/autopano.exe. Wenn das richtig funktioniert, gibt Autopano einen kurzen Hilfetext aus. Befindet sich das Unterverzeichnis bin im Ausführungspfad PATHautopanog.exe.
Damit das mitgelieferte Skript autopano-complete.sh richtig funktioniert, müssen Sie auf jeden Fall den PATH so einstellen, wie beschrieben. Sonst beschwert es sich, dass es eine bestimmte “assembly” nicht findet.
Kasten 3: Enblend
Das Enblend-Paket [7] braucht außer LibTIFF und LibJPG keine gesonderen Bibliotheken. In Fedora und Suse installieren Sie es mit rpm -iv enblend-2.0-1.bp.fc2.i386.rpm.
Leider gibt es nicht für alle Distributionen fertige Pakete, so dass Sie Enblend eventuell selbst kompilieren müssen, was etwas mehr andere Software voraussetzt. Unter Debian installieren Sie die mit
apt-get install libjpeg62-dev libtiff4-dev libpng3-dev fftw-dev libboost-graph-dev libboost-dev libboost-python-dev
Den Quellcode von Enblend kompilieren Sie gemäß der Anleitung “Software-Installation leicht gemacht” auf der Heft-CD.
Nach dem Start über den Befehl hugin öffnet sich das Hauptfenster, Abbildung 2. Dort wählen Sie über den Button Add individual images… die Einzelbilder aus. Im folgenden Dialog lassen sich mit Hilfe der [Strg]-Taste mehrere Dateien auf einmal auswählen. Das Programm ist übrigens kaum übersetzt, nur wenige GUI-Komponenten erscheinen auf Deutsch. Der Einheitlichkeit halber zeigt dieser Artikel deshalb die rein englische Version.
Im linken Feld listet Hugin die Bilder und zeigt einige Daten dazu an, wie Breite (width) und Höhe (height). Auch die Werte zum Drehen eines Fotos (Yaw, Pitch, Roll) sind zu sehen, stehen aber zu Beginn noch auf Null. Standardmäßig nimmt Hugin das erste Foto als Referenzbild, an dem es die anderen ausrichtet. Mit den Buttons “Anchor this image …” lässt sich dafür ein anderes Bild auswählen.
Hinter dem zweiten Reiter Camera and Lens verbirgt sich die Korrektur der optischen Verzerrung von Kamera und Linse. Hat man Bilder mit EXIF-Informationen [8], liest Hugin daraus selbst die nötigen Daten. Kennen Sie den Bildwinkel ihres Objektivs nicht, gibt Tabelle 1 einen Anhaltspunkt (Auszug aus der Dokumentation der PanoTools).
Bildwinkel und Objektive
| Brennweite | Bildwinkel Querformat | Bildwinkel Hochformat |
| 28mm | 65 | 46 |
| 35mm | 54 | 38 |
| 50mm | 40 | 27 |
Der Schalter Inherit (erben) legt fest, dass alle Bilder diese Einstellungen von dem aktuellen übernehmen. Schaltet man ihn aus, kann das Programm auch Bilder mit unterschiedlichen Verzerrungen verarbeiten. Haben Sie nach einigem Experimentieren bessere Werte für ihre eigene Kamera gefunden, können Sie diese unter Lens Management abspeichern und in anderen Panoramaprojekten wieder laden.
Kontrollpunkte von Hand setzen
Hugin braucht einige herausstechende Bilddetails, um zwei zusammenstoßende Fotos aneinander auszurichten. Der Reiter Control Points hilft dabei. Er zeigt je zwei Bilder, in dem Sie solche signifikanten Stellen anklicken und einander zuordnen.
Stellen Sie dafür zunächst ein, dass Hugin zwei aneinanderstoßende Bilder anzeigt, indem Sie über dem rechten Bild den Reiter mit den Zahlen um eins weiterschalten als das linke (Abbildung 3). Stehen zu Beginn beide auf 0, stellen Sie das rechte also auf 1. Wenn Sie im Folgenden mit den Pfeiltasten ein Bild weiterschalten, zeigt Hugin immer zwei aufeinander folgende Fotos an.

Abbildung 3: Hugin zeigt je zwei aneinander grenzende Bilder, in denen der Benutzer passende Bilddetails zuordnet.
Die Schalter auto fine-tune und auto-estimate sollten angekreuzt sein, denn dann hilft Hugin dabei, Kontrollpunkte zuzuordnen. Mit auto add fügt das Programm jedes zugeordnete Paar an Punkten hinzu – was man von Hand mit dem Button Add erledigt.
Haben Sie genügend Punkte beisammen, schalten Sie mit dem Reiter Optimizer auf den Berechnungsteil um (Abbildung 4). Wählen Sie hinter Optimizer die Option Positions (pairwise optim., starting from Anchor) und drücken Sie Optimize now!. Die drei darunter liegenden Textfelder zeigen dann hinter den eckigen Klammern (mit oder ohne Kreuz) die Bildnummer und den Wert, um den Hugin das einzelne Foto korrigiert. Ist ein Foto nicht angekreuzt, verändert Hugin es nicht. Das ist zum Beispiel beim Referenzbild (Anchor) der Fall. Wählen Sie oben bei Optimize die Einstellung the Custom parameters below können Sie jeden einzelnen Wert jedes Fotos von Hand anpassen – etwas für Fortgeschrittene.
Der Button Preview in der oberen Leiste zeigt eine Vorschau mit den berechneten Werten (Abbildung 5). Im Vorschaufenster schalten Sie am besten Auto ein, damit das Programm auch wirklich das Richtige anzeigt.
Bilder montieren
Der letzte Reiter Stitcher ist das Herz des Programms – und gleichzeitig die größte Hürde, denn nicht alles funktioniert fehlerfrei. Direkt unterstützt Hugin zwei der so genannten Stitching-Engines, die die Bilder letztlich montieren. Das mitgelieferte Nona funktioniert ganz ordentlich, seine Qualität lässt aber zu wünschen übrig, denn meistens ist im Endprodukt eine Naht deutlich sichtbar (Abbildung 6).
Vor dem Stitchen muss man in jedem Fall mit Calculate Field of View den Bildwinkel neu zu berechnen. Warum das Hugin nicht selbst macht, wissen wohl nur die Programmautoren. Genauso aktualisieren Sie die Bildgröße mit Calculate Optimal Size. Verwenden Sie das mitgelieferte Nona, passt das Bildformat JPG schon, und Sie drücken einfach Stitch now!. Kurze (oder längere, je nach Anzahl und Größe der Fotos) Zeit später finden Sie das fertige Bild unter dem ausgewählten Namen auf der Festplatte.
Alternativ benutzen Sie das externe Programm Enblend, das Hugin aber nicht direkt unterstützt, was einen Zwischenschritt erforderlich macht. Zuerst schreiben Sie mit Hugin ein mehrere Tiff-Bilder, die zwar schon korrekt ausgerichtet, aber nicht montiert sind. Dazu wählen Sie neben Stitch the images die Option into a layered TIFF file aus (Abbildung 7). Unten schaltet das Programm das Ausgabeformat selbständig auf Multiple TIFF. Nach einem Klick auf Stitch Now! fragt Hugin nach einem Dateinamen, an den es für jedes Einzelbild eine vierstellige Zahl anhängt. In einem Terminalfenster montieren Sie diese TIFFs mit Enblend zusammen, wobei das -o wieder die Ausgabedatei angibt:
enblend -o panorama.tif bild0000.tif bild0001.tif bild0002.tif
Das Ergebnis kann sich sehen lassen. Ganz selbständig hat Enblend die Bilder montiert, ganz ohne hässliche Nähte (Abbildung 8).
Enblend
Kontrollpunkte automatisieren
Wem das ganze Geklicke zu mühsam ist, der kann auf ein weiteres Programm zurückgreifen, das selbständig Kontrollpunkte setzt. Autopano-SIFT findet sogar viele Übereinstimmungen in Bildern, die dem menschlichen Auge verborgen bleiben. Man startet es auf der Kommandozeile mit dem mitgelieferten Hilfsskript, das hinter dem Parameter -o die Ausgabedatei erwartet, die Hugin später einliest. Danach folgen die Einzelbilder
autopano-complete.sh -o ausgabe.pto links.jpg mitte.jpg rechts.jpg
Alternativ verwenden Sie das grafische Frontend autopanog.exe, das zwar nichts anderes macht, aber man muss wenigstens nicht die Dateinamen tippen. Lädt man die resultierende PTO-Datei in Hugin, muss man auf jeden Fall unter Camera and Lens und degrees of view den Bildwinkel neu einstellen. Die restlichen Schritte Optimizer und Stitcher benutzt man anschließend, wie oben beschrieben.
Ausbaufähig
Mit diesen Tipps sollten Sie erst mal über die Runden kommen. Die vielen nicht besprochenen Optionen und Menüs zeigen, dass noch viele Möglichkeiten in den Programmen stecken. Eine freundliche Mailing-Liste zu Panorama-Software begleitet die aktuelle Entwicklung, hilft aber auch Anfängern. Kleinere Probleme der Programme werden sicher bald behoben. Vielleicht fühlt sich auch der eine Leser oder die andere Leserin berufen, selbst mitzuhelfen. Gerade die Übersetzung in andere Sprachen als Englisch würde sich als Einstiegsprojekt eignen.
Glossar
-
Yaw, Pitch, Roll
-
Begriffe für die Drehung um eine der drei Achsen im Raum. Roll ist eine Drehung um die Achse senkrecht zur Bildebene, Pitch dreht um die horizontale Achse und Yaw um die vertikale, siehe Abbildung X.
-
Stitching
-
englisch: nähen. Das eigentliche Zusammenfügen mehrerer Bilder zu einem. Vorher muss man sie meist ausrichten und perspektivische Verzerrungen korrigieren.
Infos
[1] Tim Schürmann: Panorama-Bilder mit PanoTools, Linux User 09/2003, S.50
[2] Neue Homepage der verwaisten Panotools: http://panotools.sourceforge.net/
[3] Hugin: http://hugin.sourceforge.net/
[4] Mono Downloads: http://www.mono-project.com/downloads/
[5] Mono auf Debian: http://pkg-mono.alioth.debian.org/
[6] Autopano-SIFThttp://user.cs.tu-berlin.de/~nowozin/autopano-sift/
[7] Enblend: http://www-cad.eecs.berkeley.edu/~mihal/enblend/
[8] Michael Mielewczik: Zusatzinformationen zu Digitalfotos, Linux User 10/2003, S.52
[9] Fertige Pakete verschiedener Panorama-Software: http://bugbear.blackfish.org.uk/~bruno/panorama-tools/









