Ich versuche Kreise mit der Hough-Transformation zu erkennen.
Mit meinem aktuellen Code kann ich den unter
erkennen
Aber ich möchte ein schwarzes Loch in dem Kreis finden, den ich entdeckt habe. aber die Änderung der Parameter der Houghcircle-Methode ist mir nicht geholfen. Tatsächlich hat es Kreise gefunden, die nicht existieren.
Ich habe auch versucht, den Kreis, den ich gefunden habe, zu beschneiden und eine weitere Transformation zu machen, aber es hat mir auch nicht geholfen.
hier ist mein Code
%Vor%Update : da hough clean verwendet, kann ich manuell verwenden, um zu sehen, ob es den Kreis findet oder nicht.
hier canny Ergebnisse mit Canny (src, src, 100, 200,3);
danke
Sie setzen einen der HoughCircles
-Parameter minDist = src.rows/8
, der ziemlich groß ist. Die Dokumentation erklärt:
minDist - Mindestabstand zwischen den Zentren der erkannten Kreise. Wenn der Parameter zu klein ist, können mehrere Nachbarkreise zusätzlich zu einem echten falsch erkannt werden. Wenn es zu groß ist, können einige Kreise übersehen werden.
Die Methode kann nicht sowohl den gefundenen Kreis als auch den gewünschten Kreis zurückgeben, da sie fast denselben Mittelpunkt (in src.rows/8
) haben, nur unterschiedliche Größen. Wenn Sie maxRadius
auf einen Wert um 30 setzen, um den größeren Kreis auszuschließen, erhalten Sie den gewünschten kleineren Kreis?
Tags und Links c++ opencv feature-detection image-processing hough-transform