welche Software kann aus Videosequenz ein Panoramafoto erstellen?

Mauki

Mauki

Aktives Mitglied
Thread Starter
Dabei seit
24.07.2002
Beiträge
15.499
Reaktionspunkte
189
Gibt es auf dem Mac eine Software die aus einer Videosequenz eine Panoramafoto erstellen kann? Für Windows gibt es da die kostenlose SoftwareICE (Image Composite Editor) ->


Auf dem Mac gab es mal den ArcSoft Panorama Maker 7, der wird aber nicht mehr angeboten.
 
Gibt es wirklich keine Software für den Mac? Kann ich mir garnicht vorstellen.
 
Ich habe mich auf Grund der Frage und aus persönlichem Interesse ebenfalls mal etwas im Netz umgesehen, aber auch nichts gefunden, was vergleichbar zu Microsofts ICE wäre.
Deine Filme in VLC laden, Frame für Frame abfotografieren und im Anschluss stitchen wird sicher nicht das sein wonach du suchst;)
Komisch, in der Tat. Die Software, die das am iPhone im Panoramamodus zusammensetzt für den Mac, das wäre wonach du suchst.
Nun, vielleicht meldet sich ja noch jemand. Ob @Veritas da nicht ne Info hätte?
 
Leider nein, ich hätte mit Premiere die einzelnen Frames exportiert und durch Photoshop gejagt, aber das wäre leichter Overkill, preislich zumindest.

Was aber nicht heißt, dass es das auch kostenlos gibt. Ich meine, in iMovie wurde die Funktion gestrichen, aber du brauchst ja nur ein Tool, dass dir gewisse Frames exportiert, die landen dann in einem Ordner und Programm xy holt sich die Bilder zum Stitchen da raus, das MS Tool macht ja auch nichts anderes, vom Prinzip her.

@Mauki wenn du mir einen Link zu einem Panoramavideo hast, kann ich das mal testen.
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: KOJOTE
shift cmd 3 ?

Screenshot.... sollte gehen oder ?
 
Wenn man eine Filmsequenz hat und diese als Einzelbilder speichern möchte, dann kann man f.B. GIF-Brewery verwenden. Der Einsatzzweck ist eigentlich genau umgekehrt gedacht, aber das Programm exportiert Filmsequenzen auch als PNGs, welche man dann recht einfach stitchen kann - habe ich ausprobiert, eben weil auch ich mal nach einem tool wie es sie in der Windowswelt gibt, für den Mac nicht finden konnte.
 
Was aber nicht heißt, dass es das auch kostenlos gibt. Ich meine, in iMovie wurde die Funktion gestrichen,

Du meinst den Export von einzelnen Bildern? Ich habe das alte iMovie noch auf der Platte.

wenn du mir einen Link zu einem Panoramavideo hast, kann ich das mal testen.

https://1drv.ms/v/s!ArG_yepObw0ygUz3Xjc59Qx9JozF

Wenn man eine Filmsequenz hat und diese als Einzelbilder speichern möchte, dann kann man f.B. GIF-Brewery verwenden. .

Habe ich gerade kurz getestet aber irgendwie hat das nicht richtig geklappt :D
 
Was ist eigentlich mit dem QuickTime Player? Habe gerade mal ein Video laufen lassen und kann per Cursur-Tasten in den Frames navigieren und per cmd+shift+4+Leertaste Bildschirmfotos machen. Format ist dann aber .png und möglicherweise ist die Qualität zu schlecht.
Im VLC Player kann man für den Screenshot .jpg dagegen einstellen.
 
Neee, png ist unkomprimiert, jpg komprimiert. png kann auch Transparenzen speichern, so z.B. die Schatten an den Fenstern unter OS X. Qualitativ sogar besser als jpg ;)

Panorama wird gerade berechnet, bei über 300 Bildern dauert das noch kurz :p
 
  • Gefällt mir
Reaktionen: Mauki und KOJOTE
Läuft...
Unbenanntes_Panorama1.jpg
 
Wie geht es hier jetzt weiter?
 
Sieht gut aus. Wie bist du nun vorgegangen?
 
Ich hab mit Premiere bzw. über den Media Encoder den Clip in JPGs ausgegeben, einige Bilder gelöscht, dass es schneller geht und dann in Photoshop über Photomerge das Panorama erzeugt.
 
Was wäre ein adäquates Mittel, wenn Premiere nicht verfügbar ist, QuickTime Player oder besser der VLC?
 
Gute Frage, ich arbeite nur mit den Adobe Programmen. Wie es bei anderen Programmen funktioniert, kann ich nicht sagen.
 
Hier mal meine Lösung mit Mathematica:

Code:
listOfImages = Map[ColorConvert[#, "RGB"] &, Import["video.mov", "ImageList"]];

newImage = listOfImages[[1]];

Monitor[i = 2; While[i <= Length[listOfImages],
  images = {newImage, listOfImages[[i]]}; 
 
  {error, transformation} = FindGeometricTransform[Sequence @@ images, TransformationClass -> "Similarity", Method -> {"ImageAlign", "Fourier"}];
 
  dims = ImageDimensions /@ images;
 
  tmp1 = ImagePad[images[[1]], Map[{0, Max[#]} &, Transpose[{dims[[1]], transformation[dims[[2]]]}] - dims[[1]]], ColorConvert[Transparent, "RGB"]];
 
  tmp2 = ImagePerspectiveTransformation[images[[2]], transformation,  DataRange -> Full, Padding -> ColorConvert[Transparent, "RGB"], PlotRange -> Transpose[{{0, 0}, transformation[dims[[2]]]}]];
 
  newImage = ImageCompose[tmp1, tmp2, {0, 0}, {0, 0}];
 
  i++];
 , i]

Export["image.png", newImage]

Das ganze Prozedere ist ziemlich einfach. Zuerst werden die einzelnen Frames des Videos als Bilder importiert und in den RGB-Farbraum konvertiert. Danach werden die Bilder nacheinander zu einem großen Bild zusammengesetzt. Gestartet wird mit dem ersten Bild aus der Liste (als newImage). In der dann folgenden Schleife werden nacheinander weitere Bilde aus der Liste genommen, die Transformation berechnet, mit der sie an die bereits zusammengefügten Bilder angefügt werden können und dann angefügt. Das Ergebnis wird dann als png exportiert. Die Schleife habe ich noch in einen Monitor-Befehl gepackt um beobachten zu können, an welchem Bild gerade gearbeitet wird. Das ganze dauert zwar etwas, liefert aber ansehnliche Ergebnisse. Wer will kann die Transformationsklasse weiter einschränken oder allgemeiner halten. Je nach Qualität des Bildmaterials (wurde mit Stativ aufgenommen oder freihändig, bei letzterem muss man unbedingt Wackler durch Rotationen kompensieren) ist da mehr oder weniger nötig. Ein Tipp noch, sollte das Objektiv die Bilder stark verzerren, sollte man dies nach dem Import der Bilder und vor dem Zusammensetzen der Bilder korrigieren. Hier war das nicht nötig.
 
  • Gefällt mir
Reaktionen: ruerueka
Wie bekommt man das dann zum Laufen?
 
Ah, sorry. Für diese Lösung brauchst du die Software Mathematica. Die Home-Version ist für 300 Euro zu haben. Ich weiß, das ist nicht gerade wenig, dafür kann die Software aber auch jede Menge. Man muss sich allerdings etwas einarbeiten. Aber egal, zum Ausprobieren kannst du unter https://www.wolfram.com/mathematica/trial/ eine Probeversion bekommen.

Wenn du Mathematica installiert hast, öffnest du eine neues Dokument (das ist im Willkommensbildschirm der rote Button. Danach kannst du dann den Code einfügen. Ich würde empfehlen die beiden ersten Zeilen in eine Zelle zu kopieren (Zellen sind Abschnitte im Dokument, die je nach Formatierung Text oder Code enthalten können, standardmäßig wird Code erwartet, führt man eine Zelle mit Shift + Return aus, wird der komplette in ihr enthaltene Code ausgeführt). Die Zeilen von Monitor... bis , i] in eine weitere Zelle (wenn du die ersten beiden Zeilen in eine Zelle kopiert hast, kannst du eine neue Zelle hinzufügen, wenn du mit dem Mauszeiger unter die Zelle klickst (der Zeiger ist dann ein wagerechter Texteingabezeiger) und einmal Enter drückst). Und die Zeile mit Export... kommt darunter in eine weitere Zelle. Du kannst nun nacheinander in die Zellen Klicken und diese mit Shift + Return ausführen oder du führst im Menü "Evaluation" den Punkt "Evaluate Notebook" aus, dann werden alle Zellen des Dokuments nacheinander ausgeführt. Rechts im Dokument siehst du Klammern, die dir anzeigen wo die Zellen beginnen und enden. Wird bzw. wartet eine Zelle darauf ausgeführt zu werden, dann ist diese Klammer fett schwarz dargestellt. Du musst dann warten, bis die Berechnungen durchgeführt sind (im vorliegenden Fall braucht der komplette Code zwischen 30 Minuten und 1 Stunde mit dem Beispielsvideo aus Beitrag 7). Du kannst im Menü "Evaluation" mit dem Punkt "Abort Evaluation" die Berechnungen abbrechen oder mit "Quit Kernel > Local" die Berechnungen hart abbrechen (beim ersten Befehl bleiben bereits ausgeführte Ausdrücke und Ergebnisse erhalten, beim zweiten Befehl geht das alles verloren).
Wie werden die Daten übergeben und am Ende das Ergebnis gespeichert? Ganz einfach, im ersten Befehl steht ...Import["video.mov",... d.h. es wird die Datei video.mov (ich habe das Video aus Beitrag 7 in eine Mov-Datei konvertiert, damit Mathematica es lesen kann) im Heimverzeichnis des Benutzers geladen. Du musst die Datei also vorher in eine Mov-Datei konvertieren und dort mit dem Namen video.mov ablegen. Alternativ kannst du "video.mov" auch durch "/Pfad/zum/Video/video.mov" ersetzen, also einen Pfad wie in der Shell eingeben (die Tilde fürs Heimverzeichnis funktioniert), wenn du die Datei irgendwo anders gespeichert hast. Der letzte Befehl lautet
Export["image.png", newImage], d.h. der Inhalt von newImage wird als image.png (also als png-Datei) in deinem Heimverzeichnis exportiert. Wenn die Befehle vorher alle ausgeführt wurden, enthält newImage das fertige Bild. Wenn es klappt, sollte unter diesem Befehl in einer Ausgabezelle noch einmal der Dateiname stehen.
Das ganze dauert wie gesagt etwas. Das Video enthält 260 Frames, die zuerst alle dekomprimiert und geladen werden wollen (das braucht über 1 GB an Arbeitsspeicher), danach werden 260 Bilder nach und nach zusammengesetzt. Das dauert. Man könnte natürlich auch nur jedes zehnte Bild nehmen (die Überlagerung ist dann immer noch mehr als ausreichend und das ganze ist dann relativ schnell durch). Aber so wird jede Information verwendet, die da ist.
 
  • Gefällt mir
Reaktionen: ruerueka und KOJOTE
@TEXnician: Wahnsinn. Vielen Dank für die Mühe und die ausführliche Beschreibung.:upten:
 
Zurück
Oben Unten