int my_rightline(const char * filename){
Mat image=imread(filename,0);
//IplImage * object;
if(image.empty()){
cout<<"读入图像错误";
return -1;
}
//std::vector<std::vector<cv::Point>> contours;
vector<vector<cv::Point> > contours;
//vector<Vec4i> hierarchy;
cv::findContours(image,contours,CV_RETR_LIST,CV_CHAIN_APPROX_NONE);
int cmin=100;
int cmax=1000;
std::vector<std::vector<cv::Point>>::const_iterator itc=contours.begin();
while(itc!=contours.end()){
if(itc->size()<cmin||itc->size()>cmax)
itc=contours.erase(itc);
else
{
++itc;
}
}
cv::Mat result(image.size(),CV_8U,cv::Scalar(255));
cv::drawContours(result,contours,-1,cv::Scalar(0),2);
imwrite("E:/opencv_image/savexin/binary_image_89_h.bmp",result);
return 0;
}
Mat image=imread(filename,0);
//IplImage * object;
if(image.empty()){
cout<<"读入图像错误";
return -1;
}
//std::vector<std::vector<cv::Point>> contours;
vector<vector<cv::Point> > contours;
//vector<Vec4i> hierarchy;
cv::findContours(image,contours,CV_RETR_LIST,CV_CHAIN_APPROX_NONE);
int cmin=100;
int cmax=1000;
std::vector<std::vector<cv::Point>>::const_iterator itc=contours.begin();
while(itc!=contours.end()){
if(itc->size()<cmin||itc->size()>cmax)
itc=contours.erase(itc);
else
{
++itc;
}
}
cv::Mat result(image.size(),CV_8U,cv::Scalar(255));
cv::drawContours(result,contours,-1,cv::Scalar(0),2);
imwrite("E:/opencv_image/savexin/binary_image_89_h.bmp",result);
return 0;
}