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实现实例
Apr 26 Python
Python处理RSS、ATOM模块FEEDPARSER介绍
Feb 18 Python
python遍历类中所有成员的方法
Mar 18 Python
用Python将IP地址在整型和字符串之间轻松转换
Mar 22 Python
Python实现1-9数组形成的结果为100的所有运算式的示例
Nov 03 Python
python+selenium识别验证码并登录的示例代码
Dec 21 Python
Pandas:DataFrame对象的基础操作方法
Jun 07 Python
python文件操作之批量修改文件后缀名的方法
Aug 10 Python
解决Python plt.savefig 保存图片时一片空白的问题
Jan 10 Python
Python 中使用 PyMySQL模块操作数据库的方法
Nov 10 Python
jupyter lab的目录调整及设置默认浏览器为chrome的方法
Apr 10 Python
pandas:get_dummies()与pd.factorize()的用法及区别说明
May 21 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
php 随机记录mysql rand()造成CPU 100%的解决办法
2010/05/18 PHP
PHP安全配置详细说明
2011/09/26 PHP
PHP十六进制颜色随机生成器功能示例
2017/07/24 PHP
PHP将数据导出Excel表中的实例(投机型)
2017/07/31 PHP
Prototype 学习 Prototype对象
2009/07/12 Javascript
JavaScript 实现完美兼容多浏览器的复制功能代码
2015/04/28 Javascript
详解如何较好的使用js
2016/12/16 Javascript
简单实现JS上传图片预览功能
2017/04/14 Javascript
vue实现点击图片放大效果
2017/08/15 Javascript
vue v-model实现自定义样式多选与单选功能
2018/07/05 Javascript
angularJs中json数据转换与本地存储的实例
2018/10/08 Javascript
简单了解微信小程序的目录结构
2019/07/01 Javascript
原生JavaScript实现进度条
2021/02/19 Javascript
Python的pycurl包用法简介
2015/11/13 Python
Python自动化运维和部署项目工具Fabric使用实例
2016/09/18 Python
python调用外部程序的实操步骤
2019/03/04 Python
python实现二级登陆菜单及安装过程
2019/06/21 Python
pycharm运行程序时看不到任何结果显示的解决
2020/02/21 Python
Python中内建模块collections如何使用
2020/05/27 Python
Pycharm中如何关掉python console
2020/10/27 Python
CSS3实现水平居中、垂直居中、水平垂直居中的实例代码
2020/02/27 HTML / CSS
突袭HTML5之Javascript API扩展1—Web Worker异步执行及相关概述
2013/01/31 HTML / CSS
Kipling凯浦林美国官网:世界著名时尚休闲包袋品牌
2016/08/24 全球购物
世界顶级足球门票网站:Live Football Tickets
2017/10/14 全球购物
娇韵诗法国官网:Clarins法国
2019/01/29 全球购物
俄罗斯香水和化妆品网上商店:NOTINO.ru
2019/12/17 全球购物
小学生演讲稿
2014/01/12 职场文书
创业计划书——互联网商机
2014/01/12 职场文书
共产党员公开承诺践诺书
2014/05/28 职场文书
党员志愿者活动总结
2014/06/26 职场文书
实习协议书范本
2014/09/25 职场文书
2014年审计人员工作总结
2014/12/19 职场文书
2015年度党员个人总结
2015/02/14 职场文书
求职推荐信范文
2015/03/27 职场文书
pytorch 如何把图像数据集进行划分成train,test和val
2021/05/31 Python
CSS中使用grid布局实现一套模板多种布局
2022/07/15 HTML / CSS