查找特定区域内的轮廓

时间:2012-04-02 03:51:54

标签: opencv

我使用openCV轮廓检测方法检测了640 * 480图像的所有轮廓。在所有这些轮廓中,我想找到位于我将定义的特定区域的轮廓。你能给我任何建议去做吗?

我是否必须找到所有轮廓的中心并检查它们是否位于给定区域?

1 个答案:

答案 0 :(得分:0)

以C ++为参考,让我们假设您已将轮廓保存在:

vector < vector < Point > >contours;

然后您可以将各个轮廓包含在Rects中,如下所示:

vector<Rect> boundRect( contours.size() );
vector<Point> center( contours.size() )//center of each Rect


      for( int i = 0; i < contours.size(); i++ )
      {
            boundRect[i] = boundingRect( contours[i] );
            center[i]=Point(boundRect[i].x+boundRect[i].width/2,boundRect[i].y+boundRect[i].height/2)
      }

现在您拥有每个轮廓的近似质心。您现在可以检查您的中心是否处于所需的投资回报率中。