HoughCircles kann auf diesem Bild keine Kreise erkennen

Ich versuche, Kreise in meinem Bild zu erkennen, die einen Punktekreis enthalten, kann dies aber leider nicht. Ich verwende opencv HoughTransform und kann keine Parameter finden, die diese Funktion ermöglichen.

src = imread("encoded.jpg",1);
    /// Convert it to gray
    cvtColor(src, src_gray, CV_BGR2GRAY);

    vector<Vec3f> circles;

    /// Apply the Hough Transform to find the circles
    HoughCircles(src_gray, circles, CV_HOUGH_GRADIENT, 1, 10,
        100, 30, 1, 30 // change the last two parameters
        // (min_radius & max_radius) to detect larger circles
        );

    /// Draw the circles detected
    for (size_t i = 0; i < circles.size(); i++)
    {
        cout << "Positive" << endl;
        Point center(cvRound(circles[i][0]), cvRound(circles[i][1]));
        int radius = cvRound(circles[i][2]);
        // circle center
        circle(src, center, 3, Scalar(0, 255, 0), -1, 8, 0);
        // circle outline
        circle(src, center, radius, Scalar(0, 0, 255), 3, 8, 0);
    }

    /// Show your results
    namedWindow("Hough Circle Transform Demo", CV_WINDOW_AUTOSIZE);
    imshow("Hough Circle Transform Demo", src_gray);
    waitKey(0);

Mein Bild ist hier:

Warum kann HoughCircles in diesem Bild keine Kreise erkennen? Es scheint auf anderen einfacheren Bildern wie dem einer Leiterplatte zu funktionieren.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage