我正在试图开发一个程序,根据尺寸计算contourAreas
的数量并将其显示给用户。轮廓计数和标签
我能够为所有区域创建drawContours
,但我想在每个contouArea
下添加一个文本标签并显示相应的大小。
我正在试图开发一个程序,根据尺寸计算contourAreas
的数量并将其显示给用户。轮廓计数和标签
我能够为所有区域创建drawContours
,但我想在每个contouArea
下添加一个文本标签并显示相应的大小。
这应该让你开始。要遍历所有轮廓,必须使用下面的h_next的for循环。如果你想了解更多我真的推荐Gary Bradski的书Learning OpenCv。这本书是关于轮廓发现的一些很好的例子。
CvMemStorage* contour_storage = cvCreateMemStorage(0);
CvSeq* contours;
CvFont font;
cvInitFont(&font, CV_FONT_HERSHEY_SIMPLEX, 0.6f, 0.6f, 0, 2);
cvFindContours(sourceImage, contour_storage, &contours, sizeof (CvContour), CV_RETR_CCOMP, CV_CHAIN_APPROX_SIMPLE);
for (CvSeq* d = contours; d != NULL; d = d->h_next) {
CvRect iconBox = cvBoundingRect(d, 0);
CvPoint center = cvPoint(iconBox.x + (iconBox.width/2), iconBox.y + (iconBox.height/2));
int area = abs(cvContourArea(d, CV_WHOLE_SEQ));
cvPutText(sourceImage,"area", center, &font, CV_RGB(255, 255, 255));
}
,你知道如何检索您的轮廓中心的位置,您可以使用开放CV功能putText
我想,不是吗”呢?
嗨abarral, 感谢您replying.Unfortunately英语不是我的母语,我觉得我的问题没有得到很好的制定。抱歉。 我想要实现的是测量每个contourArea,并在周围的圆圈上显示相应的位置,并在每个圆圈下方显示相应的区域和文本标签。 我的问题如下: 我如何分别显示contourArea(countours [0] [1] ???)和相应的圆(drawContour)? 如何在每个圆圈下添加文字标签? 我有一个在OpenTev帮助PuText视图,但我不知道如何实现? –
嗨diip_thomas, 非常感谢您的回复和建议。我试了一下你的代码,它的工作原理。 :) 我会买这本书,因为我真的需要学习这个图书馆。 –