Obtener el valor de brillo de una imagen

Obtener el valor de brillo de una imagen

Utilizo openHAB y quiero utilizar un teléfono móvil antiguo como indicador de día/noche. He instalado una aplicación de cámara web y está filmando el cielo. Puedo obtener la última foto a través de http://[ip]/shot.jpg.

¿Puedo obtener un "valor de brillo" como este curl http://[ip]/shot.jpg | some-command --get-brightness:?

Respuesta1

La pregunta esta respondidaaquí en Stack Exchange de recomendaciones de softwareporSteve Barnes.

Dos posibilidades:

Use imagemagick para verificar que el brillo de la imagen funcionará siempre que la cámara del teléfono no tenga exposición automática o esté apagada; de lo contrario, solo funcionará para valores extremos (oscuro/claro), por ejemplo.

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

exiftool puede analizar la información EXIF ​​del archivo y extraer el "Valor de luz" que debería brindarle una lectura razonablemente consistente (suponiendo que la cámara de su teléfono específico incluya esta etiqueta).

Ambas herramientas son gratuitas, gratuitas y de código abierto y están disponibles para la mayoría de las plataformas.

Respuesta2

Alternativamente a exiftool, puedes usarexiv2, que encontré mucho más rápido que exiftool e imagemagick.

Comparación (en Raspberry Pi Zero)

Probado con siempre la misma imagen de 4056 x 3040

Convertir imagen mágica

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

Formato de identificación de Imagemagick

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 identifica 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, sin grep

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

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

información relacionada