python opencv minAreaRect 生成最小外接矩形
2017-08-03 11:05
519 查看
使用python opencv返回点集cnt的最小外接矩形,所用函数为 cv2.minAreaRect(cnt) ,cnt是所要求最小外接矩形的点集数组或向量,这个点集不定个数。
举例说明:画一个任意四边形的最小外接矩形,其中 cnt 代表该四边形的4个顶点坐标(点集里面有4个点)
cnt = np.array([[x1,y1],[x2,y2],[x3,y3],[x4,y4]]) # 必须是array数组的形式
rect = cv2.minAreaRect(cnt) # 得到最小外接矩形的(中心(x,y), (宽,高), 旋转角度)
box = cv2.cv.BoxPoints(rect) # cv2.boxPoints(rect) for OpenCV 3.x 获取最小外接矩形的4个顶点
box = np.int0(box)
函数 cv2.minAreaRect() 返回一个Box2D结构 rect:(最小外接矩形的中心(x,y),(宽度,高度),旋转角度)。
但是要绘制这个矩形,我们需要矩形的4个顶点坐标box, 通过函数 cv2.cv.BoxPoints() 获得,box:[ [x0,y0], [x1,y1], [x2,y2], [x3,y3] ]
最小外接矩形的4个顶点顺序、中心坐标、宽度、高度、旋转角度(是度数形式,不是弧度数)的对应关系如下:
注意:旋转角度θ是水平轴(x轴)逆时针旋转,与碰到的矩形的第一条边的夹角。并且这个边的边长是width,另一条边边长是height。也就是说,在这里,width与height不是按照长短来定义的。
在opencv中,坐标系原点在左上角,相对于x轴,逆时针旋转角度为负,顺时针旋转角度为正。在这里,θ∈(-90度,0]。
举例说明:画一个任意四边形的最小外接矩形,其中 cnt 代表该四边形的4个顶点坐标(点集里面有4个点)
cnt = np.array([[x1,y1],[x2,y2],[x3,y3],[x4,y4]]) # 必须是array数组的形式
rect = cv2.minAreaRect(cnt) # 得到最小外接矩形的(中心(x,y), (宽,高), 旋转角度)
box = cv2.cv.BoxPoints(rect) # cv2.boxPoints(rect) for OpenCV 3.x 获取最小外接矩形的4个顶点
box = np.int0(box)
函数 cv2.minAreaRect() 返回一个Box2D结构 rect:(最小外接矩形的中心(x,y),(宽度,高度),旋转角度)。
但是要绘制这个矩形,我们需要矩形的4个顶点坐标box, 通过函数 cv2.cv.BoxPoints() 获得,box:[ [x0,y0], [x1,y1], [x2,y2], [x3,y3] ]
最小外接矩形的4个顶点顺序、中心坐标、宽度、高度、旋转角度(是度数形式,不是弧度数)的对应关系如下:
注意:旋转角度θ是水平轴(x轴)逆时针旋转,与碰到的矩形的第一条边的夹角。并且这个边的边长是width,另一条边边长是height。也就是说,在这里,width与height不是按照长短来定义的。
在opencv中,坐标系原点在左上角,相对于x轴,逆时针旋转角度为负,顺时针旋转角度为正。在这里,θ∈(-90度,0]。
相关文章推荐
- Opencv获取最小外接矩形——minAreaRect
- 【opencv】最小包围矩形minAreaRect与最小包围圆minEnclosingCircl详解
- opencv 寻找最小矩形minAreaRect 的角度问题
- opencv6-最小外接矩形minAreaRect
- 利用minAreaRect求轮廓最小外接矩形
- python-opencv 的minAreaRect的详解
- minAreaRect-OpenCV
- 利用minAreaRect计算平面矩形的旋转角度
- OpenCV3.0 Examples学习笔记(16)-minarea.cpp-minAreaRect,minEnclosingTriangle,minEnclosingCircle获取点集外接形状
- 利用minAreaRect计算平面矩形的旋转角度
- minAreaRect-OpenCV
- 3 用python进行OpenCV实战之画图(直线,矩形,圆形)
- OpenCV环境下绘制轮廓的外接多边形、最小立式矩形、最小外接圆
- Opencv之 minEnclosingCircle源码--求最小包围圆的算法
- OpenCV最小外接正矩形
- python opencv(5)生成日落效果
- Python+OpenCV图像标注矩形框bounding box
- 用Cmake生成opencv_contrib的python接口
- 3 用python进行OpenCV实战之画图(直线,矩形,圆形)
- 【python】【opencv samples】【批处理】【Ubuntu】用Python对opencv samples进行批量生成可执行文件