opencv获取轮廓

来源:互联网 发布:网络教育学费一般多少 编辑:程序博客网 时间:2024/06/11 17:45

cvFindContours(IplImage *img, CvMemStorage *storage, CvSeq **firstContour, int headerSize = sizeof(CvContour), CvContourRetrievalMode mode = CV_RETR_LIST,CvChainApproxMethod method = CV_CHAIN_APPROX_SIMPLE)


参数img必须是二值图像。

cvFindContour(img, storage, &contour, sizeof(CvContour), CV_RETR_LIST, CV_CHAIN_APPROX_SIMPLE)

contour保存着轮廓的信息。

contour保存第一个轮廓的信息,序列里面的每一个元素都是CvPoint类型的点  contour->total是元素个数。

contour->h_next是下一个轮廓


输出所有轮廓点的代码

for(; contour != NULL; contour = contour->h_next) {CvRect rect = cvBoundingRect(contour, 0);cvRectangle(src, cvPoint(rect.x, rect.y), cvPoint(rect.x + rect.width, rect.y + rect.height), CV_RGB(255, 0, 0), 1, 8, 0);printf("The %dth contour\n------------------------\n",i++);for(j = 0; j < contour->total; ++j) {CvPoint *p = (CvPoint *)cvGetSeqElem(contour, j);printf("x:%d\ty:%d\n",p->x, p->y);}}




原创粉丝点击