![Obtenha o valor de brilho de uma imagem](https://rvso.com/image/886004/Obtenha%20o%20valor%20de%20brilho%20de%20uma%20imagem.png)
Eu uso o openHAB e quero usar um celular antigo como indicador de dia/noite. Instalei um aplicativo de webcam e ele está filmando o céu. Posso obter a última foto via http://[ip]/shot.jpg
.
Posso obter um "valor de brilho" como este curl http://[ip]/shot.jpg | some-command --get-brightness
:?
Responder1
A pergunta foi respondidaaqui no Stack Exchange de recomendações de softwareporSteve Barnes.
Duas possibilidades:
Use o imagemagick para verificar se o brilho da imagem funcionará enquanto a câmera do telefone não tiver exposição automática ou estiver desligada, caso contrário, funcionará apenas para valores extremos, (escuro/claro), por exemplo
convert <image> -colorspace Gray -format "%[fx:quantumrange*image.mean]" info:
exiftool pode analisar as informações EXIF do arquivo e extrair o "Valor Light", que deve fornecer uma leitura razoavelmente consistente (assumindo que a câmera do seu telefone específico inclua esta tag).
Ambas as ferramentas são gratuitas, gratuitas e de código aberto e estão disponíveis para a maioria das plataformas.
Responder2
Alternativamente ao exiftool, você pode usarexiv2, que achei muito mais rápido que exiftool e imagemagick.
Comparação (no Raspberry Pi Zero)
Testado sempre com a mesma imagem 4056 x 3040
Converter imagemagick
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 identificação 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 identificar 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, sem grep
pi@rpicamhq:/mnt/ramdisk $ time exiv2 -PElt -g Brightness image.jpg
Brightness 0.01
real 0m0,070s
user 0m0,024s
sys 0m0,039s