如何比较两个图像的比较轮廓

时间:2016-01-15 09:24:21

标签: c++ opencv

我已将所有轮廓的区域存储在第一帧的矢量中,现在我想将第二帧的每个轮廓的区域与第一帧进行比较。如果区域相同,则放入矢量,如果它们不相同,则放入另一个矢量。我该怎么做?请帮我。 提前致谢

// one frame at a time

void draw_ellipse(Mat &a,int count)

{ 

     findContours( th1, contours, hierarchy, CV_RETR_TREE,
                    CV_CHAIN_APPROX_SIMPLE, Point(0,0) ); 

      for(i=0;i<contours.size();i++)
       {
          area.push_back(contourArea(contours[i]));// area is a vector
       }

      for(j=1;j<=count;j++)
       {

         for(i=0;i<contours.size();i++)
          {

            if(area[i]>area[i+1])         // v1,v2,v3 are vectors
               v1.push_back(contours[i]);

            else if(area[i]<area[i+1])
               v2.push_back(contours[i]);

            else if(area[i]==area[i+1])
               v3.push_back(contours[i]);
          }

       }

    }  

现在这个函数比较同一帧内的轮廓但是我希望第二帧的每个轮廓与第一帧的每个轮廓进行比较,然后它应该进入不同的向量。

1 个答案:

答案 0 :(得分:0)

OpenCV中有预先定义的函数来匹配轮廓Opencv Contour Matching C++