Objekte(Kreise) in einem Bild finden



  • Hallo liebe Helfer,

    wie der Titel schon verrät, bin ich auf der Suche nach einer guten Idee 😉 und hoffe diese vllt. hier finden zu können.

    Aber vorerst möchte ich kurz beschreiben, wie diese Bilder aussehen:
    (ich weiß leider nicht, wie ich hier Bilder anfügen kann 😞 )

    Es liegt ein tiff grauwertbild vor mit 16 bit farbtiefe.
    Nach mehreren Verarbeitungsschritten (Sobeloperation und Streckung der Grauwerte usw.)
    ist es mir gelungen ein Resultat zu erhalten, was mir ganz deutlich Kreise offenlegt. Diese gilt es zu markieren und den Rest des Bildes zu schwärzen. Die Kreise sind aber leider unterschiedlich groß und deren Grauwerte(ebenfalls unterschiedlich) sind den Grauwerten der Umgebung teilweise recht ähnlich.

    Ich habe bereits etwas von einer Hough-Transformation gehört die zwar interessant klingt, aber ich nicht wirklich weiß, wie ich diese geschickt umsetzen kann.
    Wenn ich sie richtig verstanden habe, nennt man zu beginn einen Radius und sucht die detektierten Kanten im Bild. Von jedem Kantenpixel aus "zieht" man nun einen Kreis mit dem vorgegebenen Radius und wenn es sich um mein zu detektierendes Objekt (Kreis) handelt, dann treffen sich alle so gezogenen Kreise in einem Punkt (mein Mittelpunkt). (falls ich das falsch dargestellt haben sollte, dann haut mir ruhig auf die Finger 😉 )

    Das klingt alles gut und schön, aber in meinem Bild existieren mehr Kanten, als nur die der Kreise und was noch viel ärgerlicher ist: Die Objekte sind unterschiedlich groß und die Radien der Kreise sind mir unbekannt.
    Bekannt sind mir von jedem Pixel im Bild lediglich die Grauwerte (0...65535) und die Position x,y.

    Vllt. kennt Ihr noch andere Algorithmen und/oder eine Bibliothek, die man dafür nutzen könnte.
    Ich würde mich über jede Hilfestellung sehr freuen.

    Vielen Dank
    Beste Grüße Mephisto



  • Dieser Thread wurde von Moderator/in SeppJ aus dem Forum C++ (auch C++0x und C++11) in das Forum Rund um die Programmierung verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.





  • @Dobi

    Vielen Dank für deine Antwort. Noch kann ich leider nicht sagen, ob mir das helfen wird, da ich mit dem einbinden von opencv probleme habe ^^
    Aber ich werde mir es auf alle Fälle mal ansehen.



  • So, nun funktioniert es. Ich danke nochmal für den link.
    Das hat mir sehr geholfen. Noch werden zwar Sachen erkannt die nicht erkannt werden sollten, aber das ist ein anderes Problem 😉
    Hauptsache ist, dass schonmal Kreise gefunden werden.


Anmelden zum Antworten