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

时间:2011-11-09 20:32:09

标签: opencv colors geometry object-detection

所以即时尝试检测图像中的所有球,但是你可以看到并非所有球都被检测到。我已经玩了最近2个小时的参数,不能再检测到任何球。我的检测代码如下。请帮忙。我的头是油炸的。enter image description here

    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);

1 个答案:

答案 0 :(得分:3)

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

如果你想坚持你的精准方法,那就玩球的大小限制。

祝你好运。

相关问题