Helligkeitswert für ein Bild abrufen

Helligkeitswert für ein Bild abrufen

Ich nutze openHAB und möchte ein altes Handy als Tag-/Nachtanzeiger verwenden. Ich habe eine Webcam-App installiert und diese filmt den Himmel. Die neuste Aufnahme kann ich über abrufen http://[ip]/shot.jpg.

Kann ich einen „Helligkeitswert“ wie diesen erhalten: curl http://[ip]/shot.jpg | some-command --get-brightness?

Antwort1

Frage ist beantwortethier auf Software Recommendations Stack ExchangevonSteve Barnes.

Zwei Möglichkeiten:

Verwenden Sie ImageMagick, um die Helligkeit des Bildes zu überprüfen. Dies funktioniert, solange die Telefonkamera keine automatische Belichtung hat oder diese ausgeschaltet ist. Andernfalls funktioniert es nur bei extremen Werten (dunkel/hell), z. B.

 convert <image> -colorspace Gray -format "%[fx:quantumrange*image.mean]" info:

Exiftool kann die EXIF-Informationen aus der Datei analysieren und den „Lichtwert“ extrahieren, der Ihnen einen einigermaßen konsistenten Messwert liefern sollte (vorausgesetzt, die Kamera Ihres jeweiligen Telefons enthält dieses Tag).

Beide Tools sind kostenlos, gratis und Open Source und für die meisten Plattformen verfügbar.

Antwort2

Alternativ zu exiftool können Sie verwendenexiv2, was ich viel schneller fand als Exiftool und Imagemagick.

Vergleich (auf Raspberry Pi Zero)

Getestet mit immer dem gleichen 4056 x 3040 Bild

Imagemagick konvertieren

pi@rpicamhq:/mnt/ramdisk $ time convert image.jpg -colorspace Gray -format "%[fx:quantumrange*image.mean]" info:
1039.34
real    0m1,989s
user    0m1,753s
sys     0m0,193s

Imagemagick identifiziert das Format

pi@rpicamhq:/mnt/ramdisk $ time identify -format "%[mean]\n" image.jpg
1128.99

real    0m3,357s
user    0m3,133s
sys     0m0,199s

pi@rpicamhq:/mnt/ramdisk $ time identify -format "%[fx:mean]\n" image.jpg
0.0172272

real    0m3,435s
user    0m3,274s
sys     0m0,130s

pi@rpicamhq:/mnt/ramdisk $ time identify -format "%[fx:quantumrange*mean]\n" image.jpg
1128.99

real    0m3,387s
user    0m3,218s
sys     0m0,139s

Imagemagick identifiziert Exif

pi@rpicamhq:/mnt/ramdisk $ time identify -format '%[EXIF:BrightnessValue]'

real    0m0,275s
user    0m0,071s
sys     0m0,040s

Exiftool

pi@rpicamhq:/mnt/ramdisk $ time exiftool -a -u -g1 image.jpg | grep 'Brightness'
Brightness Value                : 0.01

real    0m2,647s
user    0m2,429s
sys     0m0,191s

exiv2

pi@rpicamhq:/mnt/ramdisk $ time exiv2 -PElt image.jpg | grep 'Brightness'
Brightness                      0.01

real    0m0,097s
user    0m0,042s
sys     0m0,050s

exiv2, ohne grep

pi@rpicamhq:/mnt/ramdisk $ time exiv2 -PElt -g Brightness image.jpg
Brightness                      0.01

real    0m0,070s
user    0m0,024s
sys     0m0,039s

verwandte Informationen