I currently have a program that can detect colored balls with openCV and I'd like to add the HoughCircle method to make it better.
I had the idea to apply the HoughCircle method on the thresholded image that i got from the inRange method but unfortunately it does not work. I saw that the HoughCircle method is only taking gray-scale images, is there a way to pass the thresholded image to it ?
this is how I do :
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;
}
the thresholded image is coming from :
inRange(HSV,Scalar(H_MIN,S_MIN,V_MIN),Scalar(H_MAX,S_MAX,V_MAX),threshold);
Here is an example of a thresholded image that i can get : https://www.noelshack.com/2019-39-5-1569586501-threshold.png
Thanks in advance for your help.