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);
Warum kann HoughCircles in diesem Bild keine Kreise erkennen? Es scheint auf anderen einfacheren Bildern wie dem einer Leiterplatte zu funktionieren.