使用opencv检测图像中的多个彩色圆圈

5 geometry opencv colors object-detection

所以我试图像图像中那样检测所有球,但是你可以看到并非所有的球都被检测到.我已经玩了最近2个小时的参数,不能再检测到任何球.我的检测代码如下.请帮忙.我的头是油炸的.在此输入图像描述

    IplImage* gray = cvCreateImage(cvGetSize(img), IPL_DEPTH_8U, 1);

    CvMemStorage* storage = cvCreateMemStorage(0);

    //covert to grayscale
    cvCvtColor(img, gray, CV_BGR2GRAY);

    // This is done so as to prevent a lot of false circles from being detected
    cvSmooth(gray, gray, CV_GAUSSIAN, 5, 5);

    IplImage* canny = cvCreateImage(cvGetSize(img),IPL_DEPTH_8U,1);


    //detect circles
    CvSeq* circles = cvHoughCircles(canny, storage, CV_HOUGH_GRADIENT, 1, 27.0, 80, 64,0,0);
Run Code Online (Sandbox Code Playgroud)

Jav*_*ock 3

我建议你尝试使用球作为模板的 SIFT 算法来提取 SIFT 描述符。下面是如何使用此类描述符进行对象检测的示例。

如果您想坚持精明的方法,请遵守球大小的限制。

祝你好运。