2016-04-10 9 views
0

Ich arbeite an einem Bildbearbeitungsprojekt. Je schneller ich die Bilder bearbeite, desto besser. Wenn ich jedoch die fps meiner Kamera erhöhe, beginnt alles dunkler zu erscheinen, da die Kamera nicht genügend Zeit hat, Licht zu empfangen. Ich habe mich gefragt, ob ich einen Weg finden könnte, da ich weiß, was das verursacht.Ist es möglich, einen Filter zu implementieren, um dunkle Bilder beleuchtet erscheinen zu lassen?

Ich denke daran, einen Code zu schreiben, der alle Pixelwerte proportional mit der Kamera erhöht. Da der Unterschied nur die Zeitdauer ist, denke ich, sollte es ein lineares Verhältnis zwischen den Pixelwerten und der Zeitdauer geben, die die Kamera während der Aufnahme dieses Bildes hatte.

Bevor ich dies versuchte, habe ich gesucht, ob es etwas online gibt, aber nichts gefunden hat. Es fühlt sich an, als ob dies ein grundlegendes Konzept wäre, so würde ich überrascht sein, wenn niemand zuvor so etwas getan hätte, also könnte ich falsche Schlüsselwörter verwenden.

Also meine Frage ist, gibt es einen Filter oder einen Algorithmus, der die "Beleuchtung" eines dunklen Bildes erhöht (seit Aufnahme mit hohen fps). Wenn nicht, macht das, was ich vorhabe, Sinn?

+0

, was es Ihnen bei Ihrer Verarbeitung erreichen? – Piglet

+0

Ich werde eine schnelle Bewegung bei hohen fps verfolgen. Rechnerisch denke ich, dass ich es durch Parallelverarbeitung usw. durchführbar machen kann, jedoch konnte ich keine klaren Bilder mit einer hohen Bildrate (das sind 60-90 fps) erhalten. –

+0

Das Tracking wird nicht von der Bildverbesserung profitieren, die Sie verlangen habe nur eine bestimmte Menge an Informationen. Sie können keine neuen nützlichen Informationen durch Bildverarbeitung hinzufügen. Es wird Ihr Ergebnis nicht verbessern, wenn Sie diese Informationen in irgendeiner Weise ändern. – Piglet

Antwort

0

Ich denke, Sie sollten hier Histogramm-Entzerrung verwenden, anstatt alle Pixel um einen konstanten Faktor zu erhöhen. Histogramm-Entzerrung macht die Wahrscheinlichkeit aller möglichen Pixelintensitäten gleich und verbessert so das Bild.

Lesen Sie mehr über sie die folgenden Links

http://www.math.uci.edu/icamp/courses/math77c/demos/hist_eq.pdf https://en.wikipedia.org/wiki/Histogram_equalization

Lesen Sie diesen Artikel mit auf, wie es in opencv zu tun, http://docs.opencv.org/2.4/doc/tutorials/imgproc/histograms/histogram_equalization/histogram_equalization.html

+0

Das war ein ziemlich nützlicher Vorschlag, ich werde das definitiv ausprobieren. Vielen Dank! –

+0

Und nur neugierig, was ist der Nachteil, alle Pixelwerte um einen konstanten Faktor zu erhöhen? Geht es um Lärm? Wenn ja, kann ich das mit einem Bandpassfilter versuchen, um Rauschen zu eliminieren? –

+1

Ich nehme an, Sie können das tun, aber wird nicht in ein gutes Bild führen, wie Sie es bereits versucht hätten. Die erwähnte Methode verbessert den Kontrast. – Anirudh

0

Wenn Ihr Bild zu dunkel ist, verwenden Sie mehr Licht. Das wäre der richtige Weg.

Natürlich können Sie Helligkeitswerte aber das Bild erhöhen, indem Sie sie einfach mit einem Faktor multiplizieren oder einen Offset hinzufügen. Oder das Histogramm verbreiten.

Anstelle eines schlechten dunklen Bildes haben Sie ein schlechtes, helles Bild.

Geringer Kontrast, niedriger Dynamikbereich, niedriger Signal-Rausch-Abstand, all das wird sich nicht ändern.

+0

Das Medium I Experiment ist angemessen beleuchtet und alle Bilder, die ich nehme, sind ziemlich klar, außer wenn ich die Bildrate erhöhen. Da die Sensoren nicht genügend Zeit haben, um Licht zu empfangen, bin ich, soweit ich das beurteilen kann, ziemlich genau mit der digitalen Verarbeitung beschäftigt. –

+1

@ OE1 ja, aber die Erhöhung der Bildrate verringert die Belichtungszeit. Daher müssen Sie die Beleuchtung erhöhen, um die gleiche Helligkeit zu erhalten ... Wenn Sie die Beleuchtung nicht erhöhen können, haben Sie das Problem, dass Sie keine Informationen durch Verarbeitung hinzufügen können. Du bist mit den wenigen Informationen fest, die du hast. – Piglet

Verwandte Themen