opencv 取得轮廓的外界矩形后怎么得到这个外接矩形的长和宽?
Rectr0=boundingRect(Mat(contours[i]));以后怎么做呢?...
Rect r0 = boundingRect(Mat(contours[i])); 以后怎么做呢?
展开
1个回答
展开全部
不知道你说的是两个物体,是否指虚拟合并以后的关联对象?或者仍然只是独立对象?
对于独立对象而言,分别处理即可。
对于单个物体的水平外接矩形可以通过轮廓化,自己判断轮廓顶点的坐标,分别取XY方向的最大最小值为顶点坐标。
而两个物体绑定的对象,可以按以上方法分别求出XY,再筛选出结果的最大最小值,作为顶点坐标即可。
如果不是水平矩形,则更简单。参考函数 cv.MinAreaRect2
对于独立对象而言,分别处理即可。
对于单个物体的水平外接矩形可以通过轮廓化,自己判断轮廓顶点的坐标,分别取XY方向的最大最小值为顶点坐标。
而两个物体绑定的对象,可以按以上方法分别求出XY,再筛选出结果的最大最小值,作为顶点坐标即可。
如果不是水平矩形,则更简单。参考函数 cv.MinAreaRect2
追问
是单个轮廓的水平外接矩形。我知道用findcontours找到轮廓以后,contour中储存了轮廓的坐标,分别找到这些点中x、y坐标的最大值最小值能解决问题,但是boundingRect这个函数不是已经画出这个水平外界矩形了吗?那么这个函数里应该有长和宽吧,能不能直接调用呢?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询