python opencv minAreaRect 生成最小外接矩形的方法


Posted in Python onJuly 01, 2019

使用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() 获得,返回形式[ [x0,y0], [x1,y1], [x2,y2], [x3,y3] ]。得到的最小外接矩形的4个顶点顺序、中心坐标、宽度、高度、旋转角度(是度数形式,不是弧度数)的对应关系如下:

python opencv minAreaRect 生成最小外接矩形的方法

注意:

  • 旋转角度θ是水平轴(x轴)逆时针旋转,与碰到的矩形的第一条边的夹角。并且这个边的边长是width,另一条边边长是height。也就是说,在这里,width与height不是按照长短来定义的。
  • 在opencv中,坐标系原点在左上角,相对于x轴,逆时针旋转角度为负,顺时针旋转角度为正。所以,θ∈(-90度,0]。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python的urllib模块显示下载进度示例
Jan 17 Python
python中的reduce内建函数使用方法指南
Aug 31 Python
Python模拟百度登录实例详解
Jan 20 Python
python实现关键词提取的示例讲解
Apr 28 Python
浅谈关于Python3中venv虚拟环境
Aug 01 Python
对python读取zip压缩文件里面的csv数据实例详解
Feb 08 Python
python实现植物大战僵尸游戏实例代码
Jun 10 Python
Python爬虫:url中带字典列表参数的编码转换方法
Aug 21 Python
Python 实现数组相减示例
Dec 27 Python
详解字符串在Python内部是如何省内存的
Feb 03 Python
Python多重继承之菱形继承的实例详解
Feb 12 Python
python logging设置level失败的解决方法
Feb 19 Python
VPS CENTOS 上配置python,mysql,nginx,uwsgi,django的方法详解
Jul 01 #Python
Python之pymysql的使用小结
Jul 01 #Python
linux下安装python3和对应的pip环境教程详解
Jul 01 #Python
python写日志文件操作类与应用示例
Jul 01 #Python
python实现自动化上线脚本的示例
Jul 01 #Python
在Python中构建增广矩阵的实现方法
Jul 01 #Python
django框架实现模板中获取request 的各种信息示例
Jul 01 #Python
You might like
漫荒推荐:画风超赞的国风漫画推荐 超长假期不无聊
2020/03/08 国漫
php实现随机显示图片方法汇总
2015/05/21 PHP
PHP排序算法类实例
2015/06/17 PHP
PHP结合Jquery和ajax实现瀑布流特效
2016/01/07 PHP
深入理解PHP的远程多会话调试
2017/09/21 PHP
另类调用flash无须激活的方法
2006/12/27 Javascript
JavaScript setTimeout和setInterval的使用方法 说明
2010/03/25 Javascript
JavaScript 构造函数 面相对象学习必备知识
2010/06/09 Javascript
JS无法捕获滚动条上的mouse up事件的原因猜想
2012/03/21 Javascript
JQuery中使用Ajax赋值给全局变量异常的解决方法
2014/01/10 Javascript
JavaScript常用小技巧小结
2014/12/29 Javascript
微信小程序技巧之show内容展示,上传文件编码问题
2017/01/23 Javascript
webpack进阶——缓存与独立打包的用法
2017/08/02 Javascript
vue使用Google地图的实现示例代码
2018/12/19 Javascript
layui实现多图片上传并限制上传的图片数量
2019/09/26 Javascript
VUE.js实现动态设置输入框disabled属性
2019/10/28 Javascript
Vue实现购物车实例代码两则
2020/05/30 Javascript
解决vue的touchStart事件及click事件冲突问题
2020/07/21 Javascript
Ant Design的可编辑Tree的实现操作
2020/10/31 Javascript
Vue2.x和Vue3.x的双向绑定原理详解
2020/11/05 Javascript
Vue实现点击当前行变色
2020/12/14 Vue.js
跟老齐学Python之正规地说一句话
2014/09/28 Python
Python爬虫包 BeautifulSoup  递归抓取实例详解
2017/01/28 Python
韩国美国时尚服装和美容在线全球市场:KOODING
2018/11/07 全球购物
PatPat阿根廷:妈妈们的购物平台
2019/05/30 全球购物
linux面试题参考答案(6)
2014/08/29 面试题
医学院四年学习生活的自我评价
2013/11/06 职场文书
函授本科自我鉴定
2014/02/04 职场文书
外贸采购员岗位职责
2014/03/08 职场文书
对孩子的寄语
2014/04/09 职场文书
班级学雷锋活动总结
2014/06/26 职场文书
十佳党员事迹材料
2014/08/28 职场文书
讲党性心得体会
2014/09/03 职场文书
公安机关查摆剖析材料
2014/10/10 职场文书
实习生矿工检讨书
2014/10/13 职场文书
党支部考察意见范文
2015/06/02 职场文书