Re: Bildhelligkeit messen
Frank Lassowski schrub:
> Michael Limburg schrub:
>> Am 26. Februar 2010 schrieb Frank Lassowski:
>>
>>> Ich werde dieses Jahr per Webcam unser Storchenhorst ins Netz stellen. Da
>>> ist es natürlich sinnvoll nur bei Tageslicht Aufnahmen zu machen und
>>> nachts etwas anderes auf der Webseite anzubieten. Dazu möchte ich
>>> periodisch feststellen, ob auf einem Webcam-Bild noch irgendetwas zu
>>> erkennen ist. Ich denke, dafür eignet sich z.B. die Helligkeit des Bildes.
>> Nun, es gibt verschiedene Möglichkeiten..
>>
>> 1. Helligkeitsmittelwert über's Bild bilden und Schwelle festlegen. Wenn
>> man nicht das komplette Bild betrachten möchte, kann man ja ein
>> paar markante Spots (Pixel mit Umgebung). Das verringert den
>> Rechenaufwand und ist dementsprechend schnell.
>
> Das von Manne erwähnte identify aus ImageMagick liefert vielleicht die
> Bildinformation, die ich möchte, nämlich "Standard deviation".
Das hab ich jetzt mal probiert, funktioniert einwandfrei.
>> 3. Man kann den Sonnenstand/untergang berechnen. Im WWW gibt es
>> auch Tabellen dafür. 2 Werte pro Woche sollten da reichen. Die kann
>> man ja auch noch an die Empfindlichkeit der Webcam anpassen.
>
> Jo, das wäre natürlich viel eleganter.
> ...
> Außerdem gibt es ja sogar ein passendes perl-Modul:
> libdatetime-event-sunrise-perl
Noch viel schöner: date_sunrise und date_sunset in php
http://php.net/manual/en/function.date-sunrise.php
http://php.net/manual/en/function.date-sunset.php
<?php
echo date_sunrise(time(), SUNFUNCS_RET_STRING, 52.2, 9.0, 90+5/6, 1)," ";
echo date_sunset(time(), SUNFUNCS_RET_STRING, 52.2, 9.0, 90+5/6, 1);
?>
Das Ganze 2mal pro Woche ausführen, crontab entsprechend anpassen lassen
und feddisch:
--------------------------------------------------
#!/bin/bash
cd /var/spool/cron/crontabs
times=`wget -q -O - "http://localhost/sunrise.php"`
risestd=`echo "${times}" | cut -c 1-2`
risemin=`echo "${times}" | cut -c 4-5`
setstd=`echo "${times}" | cut -c 7-8`
setmin=`echo "${times}" | cut -c 10-11`
# Zeilen mit "cam_" aus der crontab löschen
sed -i '/cam_/d' root
echo $risemin $risestd" * * * /usr/sbin/cam_up" >> root
echo $setmin $setstd" * * * /usr/sbin/cam_down" >> root
crontab root
--------------------------------------------------
Vielen Dank für die Hilfe!
Gruß
Frank
Reply to: