Grüezi,
ich weiß ja nicht, wer sonst noch gerne Panoramabilder macht, aber mein erster Anlauf mit Hugin und autopano-SIFT unter Ubuntu (ich kenne das Programm unter Windows schon länger) war erfolglos. Da ich aber einerseits stur, andererseits neugierig bin, hab' ich mich auf die Suche nach einem Weg gemacht, um Hugin doch zum Laufen zu bewegen.
Da ich glaube, daß manchmal dieses Quentchen Sturheit oder Verbissenheit oder wie auch immer fehlt, und sich manche auch zu schnell geschlagen geben, habe ich nicht nur die Lösung aufgeschrieben, sondern auch, wie ich darauf gekommen bin. Nur angemerkt: ich bin ein ziemlicher Linux-Neuling, erst seit letzten Herbst umgestiegen. Vielleicht animiert es ja den einen oder anderen, sich in die kleinen Anfänger-Probleme hineinzuknien. Es lohnt sich bestimmt...
Große Hilfen sind immer wieder:
- Programme (auch solche mit GUI) aus der Befehlszeile aufrufen, da dort dann auch die besseren Fehlermeldungen ausgeworfen werden;
- die Manpages (z.B. man autopano)
- und natürlich das ausgezeichnete ubuntuusers.de-Wiki
Worum's geht:
Zunächst aber eine (weitere) kleine Erläuterung, ergänzend zum Wiki:
Hugin ist eine grafische Bedienungsoberfläche für die Panotools von Prof. Dersch und weitere (Zusatz-)Programme. Das wohl populärste Anwendungsgebiet ist das Vernähen (stitching) einzelner, fortlaufender Fotos zu Panoramabildern über gemeinsame "Paßpunkte", aber es können damit auch diverse Verzerrungen (Kissen-/Tonnenverzerrung/Froschauge/Perspektiven) korrigiert werden. Dies ist z.B. besonders praktisch um einen Straßenzug, den man nur in Fluchtpunkt-Perspektive aufnehmen konnte, als orthogonale Ansicht umzurechnen, um sie z.B. auf ein 3D-Modell zu mappen (z.B. in Blender, oder auch SketchUp (Windows), um dann das Häuschen in GoogleEarth zu publizieren); auch können kleine, enge Räume mit einem Froschauge-Objektiv in ihrer Gesamtheit aufgenommen werden und dann die Froschaugen-Verzerrung zu einem "normalen" Bild des Raumes verändert werden. Es ist also ein Schweizer Messer für etwas exotische, aber optisch/geometrisch richtige Bildbearbeitung.
Wichtige Zusatzprogramme sind Autopano-SIFT zur automatischen Erstellung von Paßpunkten für das spätere Zusammennähen zum Panoramabild, und Enblend, zur Herstellung sanfter, kaum merklicher Übergänge zwichen den Einzelbildern.
Die gute Nachricht:
Alle 3 Programme sind nun für Feisty in den Paketquellen vorhanden.
Das Problem:
Damit Autopano-SIFT aus Hugin heraus funktioniert, müssen einige Anpassungen vorgenommen werden. Die Anleitung im Wiki (in Datei → Einstellungen → Reiter "Autopano" → "alternatives Autopano-SIFT-Programm verwenden" → in die Zeile "autopano" eintragen) hat bei mir leider nicht funktioniert, ich erhielt ständig ein Popup-Fenster mit der Fehlermeldung:
"Kommando:autopano --output autopano_result_tempfile.pto --imagelist /tmp/ap_imgnamesCmloSh Fehlgeschlagen mit Fehlerkode:1"
Auf dem Weg zur Lösung:
Der Versuch, autopano aus der Konsole aufzurufen, war dann sehr erhellend:
ubuntu@ubuntu:~$ autopano autopano-sift, Automatic panorama generation program usage: autopano.exe [options] output.pto keys1.xml keys2.xml [..]
Autopano-SIFT erwartet also xml-Dateien mit den fertigen Angaben zu den Paßpunkten, hugin übergibt aber eine Datei mit Angaben zur Lage der Bilder:
Datei → Einstellungen → Reiter "Autopano" → "alternatives Autopano-SIFT-Programm verwenden" → Textfeld "Argumente":
--output %o --imagelist %namefile
Aus der manpage zu autopano erfährt man, daß diverse andere Hilfsprogramme verfügbar sind, unter anderem "autopano-complete", ein Skript, das zunächst die Paßpunkte erzeugt und dann das Ergebnis an autopano übergibt.
Zu früh gefreut:
Ich habe also in den Einstellungen statt "autopano" nun "autopano-complete", und als Argumente "-o %o %i" eingetragen. Leider hatte ich wieder keinen Erfolg.
Also im Editor das Skript (es findet sich unter /usr/bin/autopano-complete) anschauen, und Zeile für Zeile und Stück für Stück ausprobieren - das ist zwar der langsame Weg, aber ich kenne mich mit Bash-Scripting eben gar nicht aus. Und gucke da, die Zeile
AUTOPANO_PATH=$(dirname $(which generatekeys.exe))
macht schon Probleme, gebe ich in der Befehlszeile den Teil in Klammern ein, ergibt's:
ubuntu@ubuntu: dirname $(which generatekeys.exe) ubuntu@ubuntu:~$ dirname: fehlender Operand „dirname --help“ gibt weitere Informationen.
Wir kommen der Sache schon näher. Irgendwas stimmt also mit
$(which generatekeys.exe)
nicht. Und tatsächlich, "which generatekeys.exe" im Terminal eingegeben ergibt: rein gar nichts. Und das ist eindeutig zu wenig. "which" sollte zurückgeben, wo "generatekeys.exe" liegt. Daher testweise mal "locate generatekeys.exe" getippt:
ubuntu@ubuntu:~$ locate generatekeys.exe /usr/lib/autopano-sift/generatekeys.exe
Na also!
Gleich können wir uns ein Bier aufmachen:
Und Tatsache, wir haben nun das richtige Ergebnis. Daher also das Skript "autopano-complete" als "sudo" folgendermaßen geändert:
#!/bin/sh # by Pablo d'Angelo <pablo.dangelo@web.de> set -e MONO=$(which mono) # Set this to the directory you installed autopano-sift into, for example #AUTOPANO_PATH=/usr/local/autopano-sift/bin # Do not use a trailing backslash. If the executeables are within your path # (recommended, you can leave the line below).# AUTOPANO_PATH=$(dirname $(which generatekeys.exe)) !!!auskommentiert, war wirkungslos # angepasst, damit's funktioniert AUTOPANO_PATH=$(dirname $(locate generatekeys.exe))
Und nun klappt's. Zwar bleibt das "Starte Autopano"-Popup-Fenster blind, aber im Hintergrund geht alles seinen Gang, und nach kurzer Zeit sind die Paßpunkte erstellt.
Sicher gibt's elegantere Weg zum Erfolg, aber: so hab' ich mich durchgehangelt, ein bißchen Ausdauer, ein bißchen Recherche, ein bißchen Glück, und es funktioniert. Das gefällt mir an (ubuntu)Linux.
Vielleicht hilft's ja dem/r einen oder anderen. Und die, denen dieser Text zu lang ist, bitte ich um Nachsicht - hier war ein euphorischer Ubuntu-Fan am Werk 😉
Grüße aus München,
Herbert.