Hallo Leute
Ich muss für ein eigenes Projekt Punkte in einem Bild finden.
Dabei handelt es sich um ein IR-Bild, auf den etwa 3 unterschiedlich große helle Punkte (IR-LEDs) zu sehen sind.
Mein erster Ansatz war, dass ich das Bild einfach Zeile für Zeile durch gehe, und immer wenn ich auf einen Punkt treffe, der einen Hellichkeitswert übersteigt, in der Umgebung nach weiteren hellen Punkten zu suchen. Dann deren Durchschnittswerte bestimmen, damit ich den Mittelpunkt habe.
Das Problem dabei war, dass es, wenn ein Punkt zu groß war, ihn nicht ganz gefunden hat, da die Suchrange zu klein war, und ihn dann als zwei Punkte interpretiert hat.
Dafür ging das Verfahren relativ schnell, was auch wichtig ist, da ein Webcamstream analysiert werden soll, auf den möglichst in Echtzeit reagiert werden soll.
Mein zweiter Ansatz war also, dass ich wenn ich einen hellen Pixel gefunden habe, "Suchpixel" erstellt habe, die um sich herrum suchen, und dann weitere Suchpixel erstellen. Also ein rekrusiver aufruf.
Dadurch werden die Punkte uach schön erkannt, aber:
1. Dauert das sehr lange. Ich habe eine Verzögerung von fast 2-5 Sekunden.
2. Ich bekomme manchmal einen Stackoverflow Fehler, wenn die Punkte zu groß sind.
Habt ihr eine Idee für einen anderen Anstaz?
Wäre es gut, wenn ich die kritischen teile in C/C++ implementiere?
Mit freundlichen Grüßen
freetree
Ich muss für ein eigenes Projekt Punkte in einem Bild finden.
Dabei handelt es sich um ein IR-Bild, auf den etwa 3 unterschiedlich große helle Punkte (IR-LEDs) zu sehen sind.
Mein erster Ansatz war, dass ich das Bild einfach Zeile für Zeile durch gehe, und immer wenn ich auf einen Punkt treffe, der einen Hellichkeitswert übersteigt, in der Umgebung nach weiteren hellen Punkten zu suchen. Dann deren Durchschnittswerte bestimmen, damit ich den Mittelpunkt habe.
Das Problem dabei war, dass es, wenn ein Punkt zu groß war, ihn nicht ganz gefunden hat, da die Suchrange zu klein war, und ihn dann als zwei Punkte interpretiert hat.
Dafür ging das Verfahren relativ schnell, was auch wichtig ist, da ein Webcamstream analysiert werden soll, auf den möglichst in Echtzeit reagiert werden soll.
Mein zweiter Ansatz war also, dass ich wenn ich einen hellen Pixel gefunden habe, "Suchpixel" erstellt habe, die um sich herrum suchen, und dann weitere Suchpixel erstellen. Also ein rekrusiver aufruf.
Dadurch werden die Punkte uach schön erkannt, aber:
1. Dauert das sehr lange. Ich habe eine Verzögerung von fast 2-5 Sekunden.
2. Ich bekomme manchmal einen Stackoverflow Fehler, wenn die Punkte zu groß sind.
Habt ihr eine Idee für einen anderen Anstaz?
Wäre es gut, wenn ich die kritischen teile in C/C++ implementiere?
Mit freundlichen Grüßen
freetree