کاری نداره کلیه کانتورها رو بدست بیارید سپس با تابع contourArea مساحت کلیه کانتورها را بدست آورده و کانتوری که دارای بیشترین مساحت هست را انتخاب کنید. به صورت زیر:
Mat color_img = imread("d:\\test.png",1);
Mat mask_img;
cvtColor(color_img,mask_img,CV_BGR2GRAY);
vector<vector<Point>> contours;
findContours(mask_img,contours,CV_RETR_EXTERNAL,CV_CHAIN_APPROX_SIMPLE);
int max_area = 0;
int max_index = -1;
for (size_t i=0;i < contours.size();i++){
int cur_area = contourArea(contours[i]);
if (cur_area > max_area){
max_area = cur_area;
max_index = i;
}
}
Rect max_rect = boundingRect(contours[max_index]);
cv::rectangle(color_img,max_rect,CV_RGB(0,255,0),2);
imshow("view",color_img);waitKey(0);