【问题标题】:Comparing white pixels of two contours in opencv比较opencv中两个轮廓的白色像素
【发布时间】:2013-09-24 14:30:32
【问题描述】:

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

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

【问题讨论】:

标签: opencv


【解决方案1】:

这是一个迭代轮廓的代码片段,您的 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) { ... 

【讨论】:

  • 感谢@Andrey 的帮助!但我已经这样做了。我的意思是在 5th 10th 等找到下一个轮廓。并比较它们的白色像素。
  • 您需要轨道轮廓吗?还是我还是不明白你的问题?如果是跟踪问题,请查看 Hausdorff 距离和匈牙利算法。它将帮助您找到从不同帧找到的轮廓之间的对应关系。
猜你喜欢
  • 2023-04-04
  • 2012-11-02
  • 1970-01-01
  • 2011-12-30
  • 1970-01-01
  • 1970-01-01
  • 2012-07-04
  • 1970-01-01
  • 2013-04-23
相关资源
最近更新 更多