5

したがって、画像のようにすべてのボールを検出しようとしていますが、ご覧のとおり、すべてが検出されているわけではありません。過去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);
4

1 に答える 1

3

ボールをテンプレートとして使用してSIFT記述子を抽出するSIFTアルゴリズムを試すことをお勧めします。この種の記述子を使用してオブジェクト検出を行う方法の例を次に示します。

巧妙なアプローチに固執したい場合は、ボールサイズの制限で遊んでください。

幸運を。

于 2012-01-17T15:03:34.237 に答える