我已经用openCV轮廓检测方法对一幅640*480图像的所有轮廓进行了检测。在所有这些轮廓中,我希望找到驻留在我将定义的特定区域中的轮廓。你能给我一些建议吗?
我是否必须找到所有轮廓的中心in,并检查它们是否位于给定区域?
发布于 2016-04-05 13:14:44
使用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)
}现在,您就有了每个轮廓的近似质心。您现在可以检查您的中心是否位于所需的ROI中。
https://stackoverflow.com/questions/9970696
复制相似问题