Ich möchte den Radius der roten Kreise berechnen (Bild 2). Ich habe Probleme, diese Kreise mit HoughCircles von OpenCV zu finden. Wie Sie in Abb. 2 Ich kann nur die kleinen Kreise in der Mitte finden, die mit HoughCircles schwarz dargestellt sind.Finde überlappende/komplexe Kreise mit OpenCV
original Abb 2.
Da ich in der Mitte der roten Kreise kennen (die die gleiche wie die roten sind), ist es eine Möglichkeit, einfach den Radius der roten Kreise zu berechnen?
Ist es auch möglich, eine generische Art und Weise der Berechnung Radius von Kreisen auf einem komplexeren Bild wie dieser zu haben:
Edit: Hier ist der interessante Teil meines Codes nach Abb Erhalt 2 :
threshold(maskedImage, maskedImage, thresh, 255, THRESH_BINARY_INV | THRESH_OTSU);
std::vector<Vec3f> circles;
// Canny(maskedImage, maskedImage, thresh, thresh * 2, 3);
HoughCircles(maskedImage, circles, CV_HOUGH_GRADIENT, 1, src_gray.rows/4, cannyThreshold, accumulatorThreshold, 0, 0);
Mat display = src_display.clone();
for (size_t i = 0; i < circles.size(); i++)
{
Point center(cvRound(circles[i][0]), cvRound(circles[i][1]));
int radius = cvRound(circles[i][2]);
// circle center
circle(display, center, 3, Scalar(0, 255, 0), -1, 8, 0);
// circle outline
circle(display, center, radius, Scalar(0, 0, 255), 3, 8, 0);
}
Ich habe versucht, spielen mit cannyThreshold und Akku ohne Ergebnisse. Echte Bilder sind 5x Biggers. Hier a link zum Beispiel 1 nach der Schwelle.
Dank
können Sie Ihren HoughCircles-Code anzeigen? Überlappungen/Halbkreise usw. sind normalerweise kein Problem für HoughCircles afaik. – Micka
Vielen Dank Micka Ich habe gerade einen Code hinzugefügt – coincoin
Können Sie maskedImage in eine Datei speichern ('imwrite (" maskedImage.jpg ", maskedImage)') und einen Link posten? –