Comment puis-je mesurer le niveau de lumière ambiante d’une image?

Je cherche à créer une application qui utilise un appareil photo pour mesurer la quantité de lumière présente lors de la prise d’une image. Certains comportements conditionnels se produiraient en fonction de la quantité de lumière présente. Par exemple, affichez un message disant “On dirait qu’il est l’heure de se coucher” s’il semble qu’il fait noir.

Je comprends que ce sera une assez mauvaise mesure de la quantité réelle de lumière présente en raison de l’exposition et de choses du genre, mais cela n’a pas besoin d’être extrêmement précis.

Je n’ai aucune expérience en traitement d’images, je ne sais même pas quoi demander ni ce qui est réalisable. Est-ce possible? Y at-il des bibliothèques C pour faire quelque chose comme ça?

Une estimation très grossière pourrait être faite en convertissant chaque valeur de canal de couleur de chaque pixel en son intensité, en utilisant le gamma connu ou supposé de la caméra. Ensuite, additionnez les intensités sur l’ensemble de l’image.

Si vous souhaitez que le niveau corresponde à celui observé par un humain, vous devez pondérer l’intensité du canal vert plus élevée et celle du canal bleu plus faible (nos yeux étant particulièrement sensibles au vert et insensibles au bleu).

Première pensée aléatoire, quelque chose comme un filtre de seuil pour supprimer les “objects”, prendre ce qui rest de l’image source et la seuiller à nouveau, compter le nombre de pixels blancs / noirs, devrait vous donner une idée TRÈS approximative de la lumière et de l’obscurité. Seuillage

Si cela doit être très précis, vous devriez envisager d’utiliser certaines techniques de régression telles que les moindres carrés (en particulier, les moindres carrés partiels). Avec ces méthodes, vous disposez d’un dataset d’entraînement (références à plusieurs resockets), qui effectue une comparaison et une interpolation pour trouver une approximation de l’heure de la journée.

Si cela n’a pas besoin d’être aussi précis, vous pouvez obtenir une bonne approximation en calculant simplement la distance moyenne en pixels entre blanc et noir. Si l’appareil photo a une exposition automatique, vous pouvez également en tenir compte.