В настоящее время у меня есть программа, которая может определять цветные шары с помощью 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
Заранее спасибо за вашу помощь.