Folgendes gilt für das Android-Betriebssystem.
Ich versuche abzuschätzen, wie dunkel (oder hell) es in dem Raum ist, in dem sich das Telefon mit der Kamera befindet.
Die Idee ist, dass die Kamera eine bestimmte Helligkeitsstufe zurückgibt, mit der ich die Lichtmenge in der Umgebung des Telefons bestimmen kann.
Meine Frage ist einfach: Wie benutze ich die Kamera (entweder die Vorderseite der Rückkamera), um diese Helligkeit (die "Lichtmenge") zu erhalten?
Vielen Dank im Voraus.
So registrieren Sie einen Listener auf dem Lichtsensor:
%Vor%BEARBEITEN: Danke an @AntiMatter für die vorgeschlagenen Updates.
Text & Tabellen:
SensorEventListener
SensorManager
SensorEvent
Sensor
Wenn Sie die Kamera benutzen wollten, zum Beispiel wenn die anderen Sensoren nicht verfügbar wären, würde ich
Dann würde ich das Histogramm für die Bildhelligkeit berechnen und nach rechts (am hellsten) nach links (am dunkelsten) arbeiten, bis Sie den ersten signifikanten Wert höher als N gefunden haben, der die Helligkeit Ihrer Szene bestimmen würde.
Nachdem ich das alles gesagt habe, würde ich es nicht tun, da Sie für viele Ausreißer-Situationen testen müssten.
Natürlich nicht sicher, was Sie verwenden Fall ist, wenn es eine Situation ist, wo Sie es verwenden, um "Helligkeit" in einem Auto einzustellen, dann nach vorne gerichtete Kamera würde durch Scheinwerfer etc.
betroffen seinJedenfalls ein interessantes Problem, aber es scheint eine Menge Arbeit für so wenig Gewinn zu sein, besonders bei den meisten anständigen Hardwareteilen mit diesen Sensoren.
Meine Antwort ist vielleicht zu unvollständig für eine Antwort, aber ich mag die Formatierung hier.
Außerdem ist meine Antwort nicht witzig, also hör nicht gleich auf zu lesen.
Natürlich müssen Sie zuerst ein Foto machen. Dann müssen Sie "Helligkeit" definieren. Ich habe den Algorithmus nicht, um das zu tun, aber ich denke, etwas ist schon gemacht worden. Vielleicht etwas wie:
Bestimmen Sie, welche Pixelwerte hell sind, welche dunkel sind und welche dazwischen liegen (und jede davon kann eine variable Helligkeitsmenge haben). Sie müssen dann diesen Algorithmus auf Ihr Foto anwenden, um einen Helligkeitswert zu erhalten.
Ja, das ist eine sehr kurze (35.000 Fuß) Sicht auf das Problem, aber es sollte Ihnen einige Ideen geben, wo Sie anfangen sollen.
[Bearbeiten]
Hier ist ein Ort zum Starten (der Android Dokumentation für Sensoren)
[/ edit]
Die Verwendung der Kamera ist sinnlos, da die Kamera Belichtungszeit und Blende an das Umgebungslicht anpasst, so dass die aufgenommenen Bilder unabhängig vom tatsächlich verfügbaren Licht eine sehr ähnliche Gesamthelligkeit aufweisen (zumindest in einer idealen Welt).
Die Android API bietet Funktionen im SensorManager für den Zugriff auf die Hardware-Sensoren (Sie interessieren sich für den Sensor vom Typ TYPE_LIGHT). Ich bin mir jedoch nicht sicher, ob Sie sich auf den Zugriff auf diese Sensoren über die API verlassen können, obwohl sie vorhanden sein können (oder auch nicht).
Tags und Links java android camera brightness