IR Quellen aus Webcambild herausfiltern

Status
Nicht offen für weitere Antworten.

bluerider007

Mitglied
hallo leute!

ich bin neu hier als verzeiht mir bitte, falls ich irgendeinblödsinn schreibe :)

also meine frage an euch:

ich will ein größeres Projekt realisieren und ein teil ist es jetzt nun aus einem webcambild (der speziell auf IR ausgelegt ist) die einzenlen bereiche auf denen eine IR licht sichtbar ist herauszufiltern.
wenn ich jetzt also ein bild mit mehreren weißen flecken habe, will ich das rund um diese weißen flecke ein rechteck gezeichnet wird eventuell der rest des bildes komplett verdunkelt wird.

bei meinem projekt geht es nämlich darum die position meines fingers zu erkennen. dazu muss das von den fingern reflektierte IR licht von der kamera erkannt und entprechend in eine koordinate umgewandelt werden.

wäre soetwas möglich? wenn ja dann wie?

ich hoffe ich hab das irgendwie verständlich erklärt ;)
außerdem bedanke ich mich für die antworten im voraus
 

Noctarius

Top Contributor
Ich würde einfach das Bild in Regionen (Quadranten) einteilen und die Helligkeit der Pixel (R+G+B) aufaddieren und schauen ob der hellste Quadrant der Finger ist.
Besonders riesige (über viele Quadranten verteilte), helle Flächen würde ich dabei ausschließen. Wie viele Quadranten aneinander "sehr hell" sein dürfen müsste man ausprobieren.

Wäre eine sehr einfache Testmöglichkeit, ob so eine "simple" Analyse nicht schon ausreicht.
 

Geeeee

Bekanntes Mitglied
Das Thema kommt mir gerade irgendwie bekannt vor. Hab da vor ~1 Jahr mal was in diese Richtung mit der WiiMote gesehen. Eine WiiMote ist eine gute "IR-Kamera". So wie es sich anhört, hast du ja schon eine WebCam für diesen Zweck. Es gibt auch Java-Bibliotheken, die z.B. schon ein bisschen Positionsbestimmung drin haben.
 

bluerider007

Mitglied
hi!
danke für die schnellen antworten :)

das mit den einteilen in bestimmten bereichen ist eigentlich eine sehr plausible idee, werd ich glaub ich mal ausprobieren.

und ja, es ist so etwas in der richtung wie mit der wiimote (ich besitze sogar eine :D), aber es ist eine andere art von anwendung für die die wiimote glaub ich nicht ganz ideal ist, außerdem soll das ein richtiges projekt werden und da kommt es glaub ich nicht so gut an, wenn ich mit der wiimote herumspiele, oder :). also muss ich einfach von der wiimote wegkommen und etwas eigenes entwickeln. aber zum experimentieren ist es ideal.
 

newcron

Aktives Mitglied
Hallo Bluerider,
wäre es möglich, ein bild einer solchen IR-Kamera zu sehen, eventuell kann ich dir dann noch besser weiterhelfen, als ich es jetzt tue.

Was du beschreibst, nennt man in der Bildverarbeitung Bildregionen, dabei handelt es sich um zusammenhängende Bereiche eines Bildes.

Die einfachste Methode, um solche Regionen zu finden, ist das Bild zunächst in Graustufen und dann in ein Schwarz/Weiß Bild umzuwandeln, wobei du mit einem geschickt gewählten dem Schwellwert (der Helligkeitswert, ab dem der Pixel weiß werden soll; darunter wird er schwarz) einiges erreichen kannst. Es gibt diverse Verfahren, um einen möglichst guten Schwellwert zu berechnen, ich würde dir das MAX-ENTROPY und das IsoData Verfahren nahelegen: beide sind einfach zu implementieren und bringen recht gute Ergebnisse. Wenn dir das nicht reicht, kannst du immer noch nach besseren alternativen suchen.

Das Resultat hiervon ist, dass dein Bild in reinem schwarz/weiß vorliegt, Nun kannst du die Regionen ziemlich einfach mit einem FloodFill Algorithmus füllen. Gehe davon aus, dass alles was schwarz ist, der hintergrund ist und laufe über jeden Pixel. Findest du einen Pixel der weiß ist, fülle ihn und alle umliegenden weißen Pixel (hier kommt der flood fill Algorithmus ins spiel) mit einer neuen Farbe, dann gehe weiter, bis du wieder einen weißen Pixel findest (die gerade gefüllte Fläche zählt nun nicht mehr als weiß!) Wenn du bei diesem FloodFill auch gleichzeitig die Bounding-Box von der Fläche, die du gerade füllst, berechnest, hast du am ende viele bunte Flächen und die zugehörigen Bounding-Boxen.

Für weitergehende informationen suche nach dem Begriff: "Binary Image Processing".
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen

Neue Themen


Oben