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性能优化的20条建议
Oct 25 Python
python xml.etree.ElementTree遍历xml所有节点实例详解
Dec 04 Python
用python处理图片实现图像中的像素访问
May 04 Python
Python面向对象之继承和组合用法实例分析
Aug 27 Python
python random从集合中随机选择元素的方法
Jan 23 Python
Pandas中resample方法详解
Jul 02 Python
Python socket处理client连接过程解析
Mar 18 Python
使用matplotlib动态刷新指定曲线实例
Apr 23 Python
浅析Python 中的 WSGI 接口和 WSGI 服务的运行
Dec 09 Python
python基于爬虫+django,打造个性化API接口
Jan 21 Python
深入解析NumPy中的Broadcasting广播机制
May 30 Python
详解Python生成器和基于生成器的协程
Jun 03 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中++i 与 i++ 的区别
2012/08/08 PHP
PHP合并两个数组的两种方式的异同
2012/09/14 PHP
dedecms中使用php语句指南
2014/11/13 PHP
PHP GD库相关图像生成和处理函数小结
2016/09/30 PHP
Laravel框架路由和控制器的绑定操作方法
2018/06/12 PHP
Thinkphp5框架实现图片、音频和视频文件的上传功能详解
2019/08/27 PHP
javascript 常用代码技巧大收集
2009/02/25 Javascript
extjs实现选择多表自定义查询功能 前台部分(ext源码)
2011/12/20 Javascript
JS命名空间的另一种实现
2013/08/09 Javascript
jquery事件与函数的使用介绍
2013/09/29 Javascript
jquery提取元素里的纯文本不包含span等里的内容
2013/09/30 Javascript
jQuery插件ajaxFileUpload实现异步上传文件效果
2015/04/14 Javascript
js clearInterval()方法的定义和用法
2015/11/11 Javascript
jQuery 3.0 的 setter和getter 模式详解
2016/07/11 Javascript
关于Vue.js一些问题和思考学习笔记(2)
2016/12/02 Javascript
jQuery返回定位插件详解
2017/05/15 jQuery
详解vue 图片上传功能
2019/04/30 Javascript
详解Vue中的自定义指令
2020/12/07 Vue.js
基于python的ini配置文件操作工具类
2019/04/24 Python
python+webdriver自动化环境搭建步骤详解
2019/06/03 Python
Django项目主urls导入应用中views的红线问题解决
2019/08/10 Python
python 模拟创建seafile 目录操作示例
2019/09/26 Python
python 实现矩阵填充0的例子
2019/11/29 Python
django项目中使用云片网发送短信验证码的实现
2021/01/19 Python
纯CSS3实现的井字棋游戏
2020/11/25 HTML / CSS
德国机场停车位比较和预订网站:Ich-parke-billiger
2018/01/08 全球购物
Burt’s Bees英国官网:世界领先的天然个人护理品牌
2020/08/17 全球购物
婚礼主持词开场白
2014/03/13 职场文书
学校地质灾害防治方案
2014/06/10 职场文书
机械工程及自动化专业求职信
2014/09/03 职场文书
神龙架导游词
2015/02/11 职场文书
2015庆祝七一建党节94周年活动总结
2015/03/20 职场文书
房地产公司财务总监岗位职责
2015/04/03 职场文书
送给小学生的暑假礼物!小学生必背99首古诗
2019/07/02 职场文书
浅谈mysql执行过程以及顺序
2021/05/12 MySQL
SQL Server数据库备份和恢复数据库的全过程
2022/06/14 SQL Server