Lichtererkennung in Bild
-
Hey,
ich würde gerne in einem Bild Teelichter (angezündet) von oben erkennen. Das ist ein Spaßprojekt, ich will das nur mal eben zusammenhauen. Ich bin noch am recherchieren und brauche ein paar Anhaltspunkte.
Das Bild von der Webcam kriege ich ja mit DirectShow rein. Nur wie erkenne ich die Lichter? Ich denke ich sample das Bild um, so dass die einzelnen Punkte nur noch einen Helligkeitswert haben und skalier das Ganze runter. Jetzt muss ich ja nur noch (mehr oder weniger) runde, besonders helle Flecken erkennen.
Dafür wird es ja wohl fertige Algorithmen geben, mit meinen Suchbegriffen erreiche ich bei Google aber nichts. Kennt jemand eine Library (gern C++, zur Not auch C#), Algorithmen, Namen von dem Themenfeld oder brauchbare Suchbegriffe?
-
Für Suche von Kreisen kann man eine Hough-Transformation benutzen. OpenCV ist eine C-Library (afaik mit C++-Wrapper) für Bildverarbeitung. Eine Hough-Trafo dürfte da bereits eingebaut sein.
-
Für C# kannst du nach der AForge Bibliothek suchen. Für C++ nach OpenCV.
Im wesentlichen gehst Du so vor:
- Bildvorverarbeitung mit einigen passenden Filtern. (z.B. Gauß-Glättung, Farbraumtransformation von RGB nach HSV,...)
- Binarisierung. Das Bild wird auf ein Binärbild runtergerechnet (Treshold-Algorithmus).
- Was übrig bleibt sind schwarze Objekte vor weißem Hintergrund. Sogenannte Blobs. Das sind die Objekte von Interesse und welche genau übrig bleiben hängt ganz entscheident von den vorherigen Schritten ab.
- Evtl. ist es notwendig weitere Eigenschaften zu überprüfen damit wirklich nur die Teelichter übrig bleiben. Z.B. die Anzahl der Pixel.
-
http://opencv.willowgarage.com/wiki/
OpenCV kann ich nur empfehlen.
-
Geil, es funktioniert, vielen Dank! OpenCV ist ja wirklich eine Wunderwaffe.
Damit konnte ich in gerade mal 300 Zeilen eine Fernbedienung aus einer Webcam, einer grünen Garnrolle (Volume), rotem Tesaabroller (next/prev Track) und blauem Feuerzeug (play/pause) basteln :p
Die Idee ist aber leider nicht von mir und das Zeug kommt morgen wieder in die Regale, ein bisschen unpraktisch ist das schon. Die Teelichter sind leider zu heiß geworden zum hin- und herschieben.