Ich möchte in der Lage sein, Punkte in Bildern zu finden, die der Mittelpunkt eines radialen Verlaufs sind, wie im linken Bild unten gezeigt. Irgendwelche Ideen, wie ich eine Hough-Transformation oder eine andere Computer-Vision-Methode verwenden könnte?
Vielen Dank
Beispiel für ein Suchbild:
image-processing
computer-vision
gradient
Waspinator
quelle
quelle
Antworten:
Ich habe in opencv gearbeitet und versucht, die Spitze eines Gradienten zu finden, der durch Distanztransformation erzeugt wurde. Ich erkannte, dass morphologische Operationen (Erosion / Dilatation) in Graustufenbildern in diesem Fall sehr nützlich waren. Wenn Sie ein Graustufenbild aushöhlen, nimmt jedes Pixel den Wert des unteren / höchsten Nachbarn an. Sie können daher Intensitätspeaks in Verläufen finden, indem Sie das Graustufenbild von demselben erweiterten / erodierten Bild subtrahieren. Hier ist mein Ergebnis:
Und eine Möglichkeit, dies in OpenCV / Cpp zu tun:
quelle
Folgendes habe ich bisher. Die Art und Weise, wie ich meinen Hough-Raum bevölkere, ist alles andere als optimal. Ich bin mir ziemlich sicher, dass ich etwas Vektorisierung tun kann, um es schneller zu machen. Ich benutze Matlab R2011a. Original Bild
Vorschläge werden geschätzt, danke.
Ich habe eine Zeichnungslinienfunktion, die ich in matlab central gefunden habe, geändert, um sie um einen Wert um ein Pixel zu erhöhen, anstatt ein Pixel auf einen Wert zu setzen
quelle
Führen Sie ein Histogramm mit orientierten Verläufen über Bildbereiche aus. Der Peak in jedem dieser Histogramme gibt Ihnen die dominante Richtung dieses Bereichs an (wie die Pfeile, die Sie anzeigen).
Finden Sie heraus, wo sich all diese Pfeile schneiden. Wenn sich dieser Punkt innerhalb des Objekts befindet, kann er der Mittelpunkt eines radialen Verlaufs sein.
quelle