Вы можете использовать следующий код для извлечения круга / объектов из заданного изображения.
Mat src, src_gray,binarySeg;
vector< vector <Point> > contours;
vector <Vec4i> hierarchy;
src = imread("src.bmp");
cvtColor(src, src_gray, CV_BGR2GRAY);
threshold(src_gray,binarySeg,75,255,CV_THRESH_BINARY);
morphologyEx(binarySeg,binarySeg,MORPH_DILATE,Mat::ones(3,3,CV_32F),Point(-1,-1),1);
findContours(binarySeg, contours, hierarchy, CV_RETR_TREE, CV_CHAIN_APPROX_SIMPLE, Point(0, 0));
cout<<contours.size();
Что здесь происходит, вы сначала пороговаете изображение, основываясь на заданных вами значениях.Затем вы делаете расширенные операции по удалению небольших участков.После этого вы найдете количество контуров.