обнаружение множества цветных кругов на изображении с помощью opencv

Итак, я пытаюсь обнаружить все шары, как на изображении, но, как вы можете видеть, не все обнаруживаются. Я экспериментировал с параметрами в течение последних 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);
5
задан user1118321 23 March 2015 в 00:02
поделиться