我必须计算白色像素并比较opencv中的两个轮廓,即第一帧和第五帧中的一个轮廓,然后是第五帧和第十帧,依此类推。
我搜索了很多关于如何在视频中找到下一个轮廓的信息。但一切都是徒劳的。我怀疑opencv是否具有查找下一个轮廓的功能。通过阅读教程和其他内容,我完全感到困惑。
我做到了这一点。我怀疑我的逻辑。
cvFindContours(bgModel->foreground, memory, &contour, sizeof(CvContour),CV_RETR_CCOMP,CV_CHAIN_APPROX_SIMPLE, cvPoint(0,0));
if(FrameNumber%5==0)
{
for( ; contour != 0; contour = contour->h_next )
{
double area = fabs(cvContourArea(contour,CV_WHOLE_SEQ, 0));
我不知道在此之后该怎么做。如何获得下一个轮廓????
答案 0 :(得分:0)
这是一个代码片段迭代轮廓,你的对手是'c'变量。
//Contour Stuffz
CvMemStorage* g_storage = NULL;
g_storage = cvCreateMemStorage(0);
CvSeq* contours = 0;
cvFindContours(r2, g_storage, &contours);
for (CvSeq* c = contours; c != NULL; c=c->h_next) {
//*** Contour Stuff
int nContourPoints = c->total; // Get total number of points in the chain
if (nContourPoints > 46) { ...