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查看zip包中文件及大小的方法
Jul 09 Python
Python开发如何在ubuntu 15.10 上配置vim
Jan 25 Python
Python卸载模块的方法汇总
Jun 07 Python
分享一下如何编写高效且优雅的 Python 代码
Sep 07 Python
Python 绘图库 Matplotlib 入门教程
Apr 19 Python
Django JWT Token RestfulAPI用户认证详解
Jan 23 Python
OpenCV HSV颜色识别及HSV基本颜色分量范围
Mar 22 Python
OpenCV图像颜色反转算法详解
May 13 Python
scrapy-redis源码分析之发送POST请求详解
May 15 Python
python 随机生成10位数密码的实现代码
Jun 27 Python
学会python自动收发邮件 代替你问候女友
May 20 Python
基于Pytorch版yolov5的滑块验证码破解思路详解
Feb 25 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 CLI模式下的多进程应用分析
2013/06/03 PHP
详解WordPress中分类函数wp_list_categories的使用
2016/01/04 PHP
php获取文件后缀的9种方法
2016/03/22 PHP
yii2.0整合阿里云oss上传单个文件的示例
2017/09/19 PHP
基于jquery库的tab新形式使用
2012/11/16 Javascript
JavaScript中的style.display属性操作
2013/03/27 Javascript
详解参数传递四种形式
2015/07/21 Javascript
JavaScript操作select元素和option的实例代码
2016/01/29 Javascript
基于JavaScript FileReader上传图片显示本地链接
2016/05/27 Javascript
Bootstrap树形菜单插件TreeView.js使用方法详解
2016/11/01 Javascript
实现隔行换色效果的两种方式【实用】
2016/11/27 Javascript
Bootstrap3 多个模态对话框无法显示的解决方案
2017/02/23 Javascript
微信小程序商城项目之商品属性分类(4)
2017/04/17 Javascript
vue awesome swiper异步加载数据出现的bug问题
2018/07/03 Javascript
超详细动手搭建一个VuePress 站点及开启PWA与自动部署的方法
2019/01/27 Javascript
轻松解决JavaScript定时器越走越快的问题
2019/05/13 Javascript
微信小程序数据统计和错误统计的实现方法
2019/06/26 Javascript
layer关闭弹出窗口触发表单提交问题的处理方法
2019/09/25 Javascript
jQuery实时统计输入框字数及限制
2020/06/24 jQuery
[08:07]DOTA2每周TOP10 精彩击杀集锦vol.8
2014/06/25 DOTA
Python 实现一个颜色色值转换的小工具
2016/12/06 Python
Python实现向服务器请求压缩数据及解压缩数据的方法示例
2017/06/09 Python
Python3简单实例计算同花的概率代码
2017/12/06 Python
Python使用pip安装报错:is not a supported wheel on this platform的解决方法
2018/01/23 Python
示例详解Python3 or Python2 两者之间的差异
2018/08/23 Python
Python3.7安装keras和TensorFlow的教程图解
2020/06/18 Python
详解Django CAS 解决方案
2019/10/30 Python
html5 自定义播放器核心代码
2013/12/20 HTML / CSS
班主任寄语大全
2014/04/04 职场文书
2014年师德师风学习材料
2014/05/16 职场文书
团结就是力量演讲稿
2014/05/21 职场文书
人力资源管理毕业求职信
2014/08/05 职场文书
大学生见习期满自我鉴定
2014/09/13 职场文书
2015年元宵节活动总结
2015/02/06 职场文书
在职证明书模板
2015/06/15 职场文书
解除租赁合同协议书
2016/03/21 职场文书