0

我必须计算白色像素并比较 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));

我不知道这之后该怎么办。如何获得下一个轮廓????

4

1 回答 1

0

这是一个代码片段迭代轮廓,您的 counour 在“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) { ... 
于 2013-09-24T06:30:32.827 回答