Bilder periodisch speichern: Unterschied zwischen den Versionen

Aus MK Wiki DE
Zur Navigation springen Zur Suche springen
K (4 Versionen importiert: Import von michigreat.a.wiki-site.com)
 
(kein Unterschied)

Aktuelle Version vom 19. Juni 2018, 18:48 Uhr

Allgemein

Hier wird beschrieben, wie in einem festgelegten Intervall Bilder von einem HTTP-Server oder einer Webcam bezogen werden können oder ein Screenshot gemacht werden kann. Jedes Bild - egal, woher es kommt - muss einen eigenen, eindeutigen Dateinamen haben. Am besten eignet sich hierfür die Uhrzeit und das Datum. Dieses kann man bei Linux mit Hilfe des Befehls /bin/date '+%Y%m%d_%H%M%S' ausgeben lassen, dies würde eine Ausgabe etwa wie 20140517_184823 erzeugen. Diese Ausgabe lässt sich, wenn man den Befehl, der die Ausgabe erzeugt, mit "`"-Zeichen (diese Zeichen lässt sich auf einer deutschen Standardtastatur unter Linux mit Umschalt+"'" (Taste zwischen "ß" und Rücktaste) erzeugen) einschließt als Teil eines Befehls verwenden. Außerdem kann dem Dateinamen noch ein Präfix vorangestellt werden (optional).

Tipp: Wenn die Sekunden im Dateinamen nicht benötigt werden, kann beim Datumsformatstring "%S" (Sekunden) auch weggelassen werden. Selbiges gilt natürlich auch für alle anderen Teile wie Minuten, Stunden und so weiter. Dann muss aber das Intervall entsprechend gewählt werden, sodass sichergestellt ist, dass es zu keinen Kollissionen kommt.

Bilder beziehen

Von einem entfernten HTTP-Server laden

while /bin/true; do
	wget http://URI -O prefix_`/bin/date '+%Y%m%d_%H%M%S'`.jpg;
	sleep 60;
done;

Von Webcam beziehen

while /bin/true; do
	uvccapture -m -x640 -y480 -oprefix_`/bin/date '+%Y%m%d_%H%M%S'`.jpg;
	sleep 60;
done;

Screenshots

while /bin/true; do
	import -window root prefix_`/bin/date '+%Y%m%d_%H%M%S'`.png;
	sleep 60;
done;

Danach

Etwas ins Bild schreiben

Dateiname in Bilder schreiben oder aktuelle(s) Datum/Uhrzeit:

convert $PIC -font DejaVu-Sans -stroke yellow -pointsize 24 -draw "text 10,20 '$(date '+%F %T')'" $RESULT

Vergleichen

compare $PIC1 $PIC2 -compose Src -highlight-color Red -lowlight-color Black $DIFF
composite $PIC1 $PIC2 -compose difference $DIFF
convert $PIC1 $PIC2 -compose Difference -composite -colorspace gray $DIFF