Hallo, ich habe eine punktförmige Lichtquelle die sich im Bild dann als Kreisfläche abbildet, mit einem Durchmesser von etwa 5x5 Pixel. Ich möchte die Position der Lichtquelle ermitteln. Wenn möglich mit einer Auflösung kleiner als ein Pixel. Mein Ansatz wäre: - alle Pixel >Helligkeitsschwelle betrachten. - X und Y Richtung getrennt analysieren. - Die Position (Subpixel) finden, für die die Fläche aller Punkte links und rechts gleich ist. Bestimmt bin ich aber nicht der erste, der so was macht. Deshalb suche ich nach dem passenden Stichwort oder Beispielimplementierungen. mfg. visoxx
Suchst Du den Mittelpunkt oder den Schwerpunkt? Zuerst mußt Du ein Maß definieren, inwiefern ein Pixel dazugehört oder nicht. Dazu bietet sich der Betrag eines Skalarprodukts im Farbraum mit einer Referenzfarbe an. Ich nenne das Ergebnis mal W. Dann kannst Du die Abstände mit diesem Betrag gewichten. Suchst Du den Mittelpunkt, sind links und rechts und oben und unten die Summen von W über alle Pixel jeweils gleich. Suchst Du einen Schwerpunkt, sind links und rechts und oben und unten die Summen von W multipliziert mit dem Abstand über alle Pixel jeweils gleich.
:
Bearbeitet durch User
Hört sich an als ob du Sterne verfolgen willst? => star track centroid algorithm Gruß Roland
Hallo Walter, richtig, dann such ich eher den Mittelpunkt, denn beim Schwerpunkt wären die Pixel am Rand ja deutlich mehr gewichtet, als die , die direkt um den Mittelpunkt liegen. Und ich will ja die Lage der Punktförmigen Lichtquelle bestimmen. visoxx
@Roland. Nein. Aber Tracking ist richtig. Ich will die Position eines Objekts im Zimmer sehr genau bestimmen. Hab eines 5MP Kamera hier, und hab gesehen, dass sich eine 1Watt LED auch bei der kürzest möglichen Belichtungszeit noch viel zu hell abbildet. Der Rest des Raums (bzw. das Bild) ist dann aber dunkel. Eine 5MP Kamera hat zwar 2500 x 2000 Pixel, die sind aber immer in so 2x2 (RGBG) Farbarrays, so dass ich bei einer Lichtfarbe nur noch 1250x1000 Pixel habe, was mit dann schon zu wenig Auflösung ist. Vermutlich muss ich noch ein Graufilter vorschalten, um den Lichtpunkt noch kleiner zu bekommen. Trotzdem hätte ich am Ende gerne 1/2 oder 1/4 Pixel (brauchbare) Auflösung.
Aber "star track centroid algorithm" war gut. http://ssl.mit.edu/publications/theses/SM-2012-KnutsonMatthew.pdf
Hi, zuerst musst du eine "blob detection" machen. Stichwort "connected component labeling". Dann kannst Du zuverlässig den Schwerpunkt ermitteln.
Das ist bei manchen Applikationen aber nicht so einfach möglich, bze gar nicht. Wenn es bespielsweise eine statistische Treffersituation hat, wie bei einem Laser oder Gammateilchen. Das sieht dann aus, wie vom PaintBruch gesprüht und hängt nicht zusammen.
Hi, Ich hatte so was in meiner Techniker Abschlussarbeit machen gemusst. Die Geschwindigkeit eines Objektes messen und auf dem klebte eine IR-LED. Die Kamera hatte einen eingebauten IR-Pass-Filter der nur Infrarot durchlies. Ich hatte da zu den Schwerpunkt des Objektes ermittelt. Habe das aber alles mit einem echten Schwarzweiß Bild gemacht. Ich bin wie folgt vorgegangen: - Schwellwert von jedem Pixel abgezogen Damit waren die Dunkel nicht interessant Pixel alle schwarz (0). Hat die Kamera als Feature integriert gehabt. - zeilenweise durch das Bild laufen und die hellen Pixelbereiche merken Die Zeilenr und den Anfang und das Ende in der Zeile in einer Liste merken. - die zusammenhängende Zeile in der Liste suchen und merken Du Must nur schauen welche der gefunden Zeilen Elemente in der Nachbarzeile ist und sich mit mindestens ein Pixel in der Spalte überschneiden mit den anderen gefunden Zeilenelemte. Ich hatte den gefunden Zeilenelemte noch eine Objektnr hinzugefügt in der Liste. - die gefunden zusammenhängende Zeilenelrmente wurden dann mit dem Moment-Algorithmus (http://de.m.wikipedia.org/wiki/Moment_(Bildverarbeitung)) der Schwerpunkt ermittelt. Ich habe damit ca 5 ms für einen Bild (1,5 MPixel) benötigt. War ein Dualcore-Rechner mit 2,4 GHz von 2007. hatte aber nur ein Kern genutzt, und der langweilte sich schon mit der Aufgabe. Wenn noch fragen sind, melde dich.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.