我使用openCV轮廓检测方法检测了640 * 480图像的所有轮廓。在所有这些轮廓中,我想找到位于我将定义的特定区域的轮廓。你能给我任何建议去做吗?
我是否必须找到所有轮廓的中心并检查它们是否位于给定区域?
答案 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)
}
现在您拥有每个轮廓的近似质心。您现在可以检查您的中心是否处于所需的投资回报率中。