我已经将第一帧的所有轮廓的面积存储在一个向量中,现在我想将第二帧的每个轮廓的面积与第一帧进行比较。如果面积相同,则放入一个向量,如果面积不同,则放入另一个向量。我该怎么做?请帮助我。提前致谢
// 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]);
}
}
}
现在这个函数比较同一帧内的轮廓,但我希望第二帧的每个轮廓与第一帧的每个轮廓进行比较,那么它应该在不同的向量中。
OpenCV 中有预定义的函数来匹配轮廓 Opencv 轮廓匹配C++