void bwareaopen(IplImage* img, IplImage* pimg, int size) { //此函数的功能
CvMemStorage *storage;
CvSeq *contour;
IplImage *inputimg;
double area;
if(!img || !size) {
return;
}
inputimg = cvCloneImage(img);
cvThreshold(inputimg, inputimg, 10, 255, CV_THRESH_BINARY);
storage = cvCreateMemStorage(0);
cvFindContours(inputimg, storage, &contour, sizeof(CvContour),
CV_RETR_EXTERNAL , CV_CHAIN_APPROX_SIMPLE, cvPoint(0, 0));
while(contour) {
/*area = cvContourArea(contour, CV_WHOLE_SEQ);*/
area = fabs(cvContourArea( contour, CV_WHOLE_SEQ )); //获取当前轮廓面积
printf("area == %lf\n", area);
//画轮廓
//画外接矩形
CvRect r = ((CvContour*)contour)->rect;
if (r.height * r.width > size)
{
cvRectangle(pimg,
OPENCV连通域分析,画连通域的外接矩形程序示例
最新推荐文章于 2023-02-17 13:56:48 发布