Stroboskop-Bilder aus der Digital-Kamera
Das Analysieren von Bewegungsvorgängen anhand von digitalen Videos ist eine der Standard-Methoden des aktuellen1) Physik-Unterrichts, zumal in der Oberstufe. Schon mit einfachen digitalen Kompakt-Kameras lassen sich ohne Schwierigkeiten entsprechende Filme aufnehmen. Durch Auswertung solchen Videos lassen sich unterschiedlichste Bewegungen erstaunlich genau analysieren. Doch diese Methode hat auch Nachteile. So ist es nicht ganz einfach, die Methode der digitalen Video-Analyse „ins Heft des Schülers zu bringen“. Hier sind Stroboskop-Aufnahmen, die schon immer in den Schulbüchern zu finden sind, eine gute Ergänzung. Wie sich ohne großen Aufwand mit einer einfachen Digitalkamera Stroboskop- Bilder erstellen lassen, soll hier dargestellt werden.2)
Die Arbeitsschritte
Fast alle Digitalkameras besitzen die Möglichkeit, digitale Videos aufzunehmen.
Damit alle Einzelbilder den gleichen Bildausschnitt zeigen, ist es praktisch
unumgänglich, beim Filmen ein Stativ zu benutzen; wichtig ist auch, für eine gute
Ausleuchtung der Szene ohne Schattenbildung zu sorgen.
Zum Erstellen eines Stroboskop-Bildes benötigt man nach der Erstellung des
Videos zuerst ein Programm, das ein Video in Einzelbilder zerlegen kann. Viele
Videobearbeitungsprogramme besitzen diese Fähigkeit, so auch das Software-
Paket Video Tracker, das eigentlich zur digitalen Video-Analyse im Physik-
Unterricht konzipiert ist3). Leider nutzen die gängigen Digitalkameras sehr viele
unterschiedliche Videoformate und nicht jede Software beherrscht jedes Format.
Hier muss jeder für seine Digitalkamera die richtige Softwarelösung finden.
Nachdem das Video in Einzelbilder zerlegt ist, müssen die Einzelbilder
übereinander kopiert werden; das geht z.B. mit dem Bildbearbeitungsprogramm
GIMP4)3. Je nach Bildrate des Videos bietet es sich dabei an, nur jedes zweite oder
dritte Bild zu verwenden.
Das fertig gestellte Stroboskop-Bild kann dann als jpg-oder png-Datei exportiert und für den Ausdruck passend zugeschnitten werden. Wichtig ist dabei, dass es nicht zu Verzerrungen der Proportionen beim Ausdruck kommt, denn diese beeinträchtigen eine gelingende Auswertung.
So, wie hier dargestellt, eignet sich das Verfahren vor allem zur gelegentlichen Anwendung; das Zusammenkopieren der Einzelbilder „von Hand“ ist doch recht aufwändig.
Schneller mit der Kommandozeile
Leichter geht es auch in diesem Fall auf der Kommandozeile. Das Programm ffmpeg zerlegt viele Video-Formate problemlos in Einzelbilder und informiert dabei auch über alle wichtigen Eigenschaften des Ausgangs-Videos5). Der Befehl
ffmpeg -i video.avi vd%4d.jpg
zerlegt das Video mit dem Dateinamen video.avi in die Einzelbilder vd0001.jpg, vd0002.jpg, ... . Die Angabe „%4d“ im Dateinamen der Einzelbilder legt dabei fest, dass die Einzelbilder vierstellig (vd0001.jpg, vd0002,jpg, ...) gezählt werden. Die Auflösung des Videos, hier 1280 Pixel x 720 Pixel, kann man der Ausgabe von ffmpeg entnehmen. Um die Einzelbilder nun zu einem Stroboskop-Bild zusammenzusetzen, kann man auf das Programmpaket imagemagick zurückgreifen. Sowohl ffmpeg als auch imagemagick gehören zur Basisausstattung vieler aktueller Linux-Distributionen; sie müssen installiert sein, um das hier beschriebene Vorgehen nachvollziehen zu können..
Mit 6)
magick vd0005.jpg vd0007.jpg -compose Darken -composite strb0001.jpg
legt man die ersten beiden Bilder aufeinander. Dann geht es weiter:
magick vd0007.jpg strb0001.jpg -compose Darken -composite strb0002.jpg magick vd0009.jpg strb0002.jpg -compose Darken -composite strb0003.jpg ... magick vd0025.jpg strb0010.jpg -compose Darken -composite strb0011.jpg
Dabei hängen die konkreten Nummern und Dateinamen natürlich vom Video und der eigenen Auswahl ab; im vorliegenden Fall wurden die Bilder mit den laufenden Nummern 5 bis 25 verwendet, wobei jeweils ein Bild ausgelassen wurde. Das eigentliche Stroboskop-Bild würde in diesem Fall in der Datei strobo0011.jpg stehen.
Noch ein Skript
Natürlich kann man auch ein Skript benutzen, um sich von der Eingabe der Kommandozeilen- Befehle zu entlasten. Ein entsprechendes Perl-Skript MacheStroboBild.pl habe ich im Anhang und hier zum Download bereit gestellt.7). Der Aufruf erfolgt mit
perl MacheStroboBild.pl
direkt in der Kommandozeile, nachdem das Video in Einzelbilder zerlegt worden ist. Das Skript funktioniert nur bei dunklen Körpern, die sich vor hellem Grund bewegen. Die Nutzung der Bewegung heller Körper vor dunklen Grund sollte funktionieren, wenn man im Perl-Skript die Option „-compose Darken“ durchgängig durch die Option „-compose Lighten“ ersetzt.

Im vorliegenden Fall (s. Abb.) werden die Dateien vd0005.jpg, vd0007.jpg, …, vd0023.jpg und vd0025.jpg zu einem Stroboskop-Bild strobo.jpg zusammengefügt. Dieses Stroboskop-Bild lässt sich natürlich anschließend beliebig weiterbearbeiten, beispielsweise mit GIMP.
Anhang: Das Perl-Skript
Das nachfolgende Perl-Skript ruft seinerseits die Programme ffmpeg und imagemagick auf. Ob das Perl-Skript funktioniert, hängt auch davon ab, dass diese Programme unverändert und mit unveränderten Optionen arbeiten. Das Perl-Skript habe ich deshalb 2025 verändert.### Perl-Skript MacheStroboBild.pl ### zur Erstellung von Stroboskop-Bildern aus Einzel-Aufnahmen ### bei Bewegung dunkler Körper vor hellem Grund ### ### Dokumentation unter www.nadenau.de ### ### (c) Matthias Nadenau ### Stand: 25.03.2012 .. 01.02.2025 ### Das Programm steht unter der GNU General Public License (GPLv3) ### und wird ohne jegliche Gewähr ausgeliefert ################################################################# # perl MacheStroboBild.pl # # # # Kern-Dateiname der Bilder: vd # # Nr. des ersten Bildes: 14 # # Nr. des letzten Bildes: 26 # # Zahl der bei jeder Schritt ausgelassenen Bilder: 2 # # Dateierweiterung: jpg # # Stellenzahl der Numerierung 4 # ################################################################# ### | ### v ### macht aus den Bildern ### vd0014.jpg, vd0017.jpg, vd0020.jpg, ### vd0023.jpg und vd0026.jpg ### ein Stroboskop-Bild Strb.jpg # ---Unterprogramm BildeDateiNamen--- sub BildeDateiNamen { my ($n, $F, $GenBez, $Erw, $nString, $i, $uebergabe); $n=$_[0]; $F=$_[1]; $GenBez=$_[2]; $Erw=$_[3]; $nString=$n; $L=length($nString); if ($L<$F) { for ($i=1; $i<=$F-$L; $i++){ $nString="0".$nString; } } $uebergabe=$GenBez.$nString.".".$Erw; } # ---Start Hauptprogramm--- # -Eingaben- print "Themenstichwort der Bilder: "; $Thema = <STDIN>; chomp($Thema); print "Nr. des ersten Bildes: "; $n0 = <STDIN>; chomp($n0); print "Nr. des letzten Bildes: "; $n2 = <STDIN>; chomp($n2); print "Zahl der bei jeder Schritt ausgelassenen Bilder: "; $aus = <STDIN>; chomp($aus); print "Dateierweiterung: "; $Typ = <STDIN>; chomp($Typ); print "Stellenzahl der Numerierung "; $nDez = <STDIN>; chomp($nDez); # -Verarbeitung- $n1=$n0; $m=1; $DateiName1=&BildeDateiNamen($n1, $nDez, $Thema, $Typ); $DateiName2=&BildeDateiNamen($n1+$aus+1, $nDez, $Thema, $Typ); $StroboName=&BildeDateiNamen($m, $nDez, "Strobo", $Typ); print $DateiName1, " + ", $DateiName2, " -> ", $StroboName, "\n"; $SysKom="convert ".$DateiName1." ".$DateiName2.' \ -compose Darken -composite '.$StroboName; print $SysKom, "\n"; system $SysKom; $n1=$n1+$aus+1; $m=$m+1; while ($n1<=$n2){ $DateiName1=&BildeDateiNamen($n1, $nDez, $Thema, $Typ); $DateiName2=&BildeDateiNamen($m-1, $nDez, "Strobo", $Typ); $StroboName=&BildeDateiNamen($m, $nDez, "Strobo", $Typ); print $DateiName1, " + ", $DateiName2, " -> ", $StroboName, "\n"; $SysKom="magick ".$DateiName1." ".$DateiName2.' \ -compose Darken -composite '.$StroboName; print $SysKom, "\n"; system $SysKom; print "-", $DateiName2, "\n"; system "rm", $DateiName2; $n1=$n1+$aus+1; $m=$m+1; } $StroboEndName="strobo.".$Typ; system "cp", $StroboName, $StroboEndName; print "-", $StroboName, "\n"; system "rm", $StroboName; print "\n"; print "Das Stroboskop-Bild heißt: ", $StroboEndName, "\n", "\n"; # ---Programm-Ende---
Anmerkungen
Alle Angaben erfolgen ohne Gewähr
1 Stand 2012. Der Gesamtartikel wurde im Januar noch einmal überarbeitet.
2 Alle Angaben in diesem Artikel erfolgen nach besten Wissen, aber ohne jegliche Gewähr. Entsprechendes gilt für
das Perl-Skript im Anhang.
Das nebenstehende Stroboskop-Bild des fallenden Federballs gibt Zeitsprünge von 1/12 s wieder; die gesamte
Bildhöhe entspricht in der Wirklichkeit 2,05 m.
3 http://www.cabrillo.edu/~dbrown/tracker/
4 Die einelnen Bilder werden dazu als verschiedene Ebenen eines Bildes übereinander gelegt (bearbeiten - einfügen
als neue Ebene). Dabei muss man im „Ebenenstapel“ für alle Ebenen (außer der untersten) den Modus „Nur
abdunkeln“ wählen, jedenfalls dann, wenn sich ein dunkler Körper vor einem hellen Hintergrund bewegt.
5 Eine genauere Anleitung findet sich beispielsweise unter:
http://www.henteaser.de/2009/mit-ffmpeg-einzelbilder-aus-videodateien-auslesen/
6 Bewegt sich ein dunkler Körper vor hellem Hintergrund, ist - wie im Folgenden geschehen - die Option
„-compose Darken“ zu verwenden; für die Bewegung heller Körper vor dunklem Grund sollte analog
„-compose Lighten“ funktionieren.