Как я могу применить метод крутого круга к пороговому изображению? - PullRequest
0 голосов
/ 27 сентября 2019

В настоящее время у меня есть программа, которая может определять цветные шары с помощью openCV, и я хотел бы добавить метод HoughCircle, чтобы сделать его лучше.

У меня была идея применить метод HoughCircle к пороговому изображению, котороея получил от inRange метод, но, к сожалению, он не работает.Я видел, что метод HoughCircle позволяет получать только полутоновые изображения. Есть ли способ передать ему пороговое изображение?

Вот как я делаю:

int isBall(Mat threshold){
    Mat temp;
    threshold.copyTo(temp);
    std::vector<Vec3f> circles;
    HoughCircles(temp, circles, CV_HOUGH_GRADIENT, 1, temp.rows/8 
                                                    , 100
                                                    , 50 
                                                    , 15 /* min radius */
                                                    , 200 /* max radius */
                                                    );
    printf("nb circles = %d\n", circles.size());
    if(circles.size() > 0){
        return 1;
    }
    return 0;

}

пороговое изображениеисходит из:

inRange(HSV,Scalar(H_MIN,S_MIN,V_MIN),Scalar(H_MAX,S_MAX,V_MAX),threshold);

Вот пример порогового изображения, которое я могу получить: https://www.noelshack.com/2019-39-5-1569586501-threshold.png

Заранее спасибо за вашу помощь.

...