2016-09-29 1 views
1

Ich arbeite in einem Android-Projekt mit OpenCV und benutze eine Oberfläche, um meine eigene Kamera zu implementieren, weil ich dem Benutzer Feedback geben möchte über das Bild, das sie machen, um ihnen zu helfen, die Qualität zu verbessern. Was ich versuche, ist zu erkennen, wie dunkel das Bild ist, das sie nehmen werden, und ihnen vorzuschlagen, den Blitz zu verwenden. Danke im Voraus.Wissen, ob ein Bild zu dunkel ist, dass es mit OpenCv Flash benötigt

+0

Histogramme sind ein sehr nettes Tool Bildhelligkeit und Kontrast zu beurteilen. lies etwas über sie und wie man sie interpretiert. Abgesehen davon sollte es online genügend Ressourcen geben. einfach Google Auto Belichtungsalgorithmus, z.B. Sie finden viele Artikel darüber, was in Digitalkameras passiert. Ich bin sicher, dass es auch etwas Nützliches über Flash geben wird. – Piglet

Antwort

1

Wenn Sie die Parameter der Kamera kontrollieren, sollten Sie vor der Verwendung des Blitzes Einstellungen daran vornehmen. Wenn Sie einen x2 Faktor auf die globale Exposition möchten, können Sie entweder:

  • mehrfach Belichtungszeit von
  • divide Blendenwert (oder f-Zahl) durch sqrt (2)
  • multiplizieren gewinnen von

Jetzt (dies wird etwas Rauschen hinzufügen), um die Frage zu beantworten, wenn Sie bereits wissen, wie Pixel mit OpenCV in Ihrem Bild zu gelangen, ich Sie es zuerst empfehlen konvertieren mit cvtColor in Graustufen, Dann können Sie (für jedes Bild) die Summe der Pixelintensitäten berechnen (cv::sum) und einen Schwellenwert definieren, unter dem das Bild "zu dunkel" ist.

Exemple von Pseudo-Code (dies verfeinert werden soll nach Ihren Bedürfnissen/Anwendung):

while sum(pixels) < threshold 
    it_nb=0 
    exp_time += 0.1 (second) 
    if it_nb>fixed_limit or if (exp_time/gain cannot be increased anymore) 
     print 'use flash'  
     break 
+0

Bitte beachten Sie, dass eine Erhöhung der Belichtungszeit auch das Rauschen erhöht. Ich habe einen Fehler in Ihrer Antwort behoben. Die f-Zahl muss verringert werden, um mehr Licht zu bekommen! – Piglet

Verwandte Themen