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中装饰器级连的使用方法示例
Sep 29 Python
python xlsxwriter创建excel图表的方法
Jun 11 Python
python中的for循环
Sep 28 Python
把django中admin后台界面的英文修改为中文显示的方法
Jul 26 Python
在OpenCV里使用Camshift算法的实现
Nov 22 Python
opencv设置采集视频分辨率方式
Dec 10 Python
使用Python给头像加上圣诞帽或圣诞老人小图标附源码
Dec 25 Python
基于TensorFlow中自定义梯度的2种方式
Feb 04 Python
浅谈Python里面None True False之间的区别
Jul 09 Python
Python3实现英文字母转换哥特式字体实例代码
Sep 01 Python
Pytorch - TORCH.NN.INIT 参数初始化的操作
Feb 27 Python
pycharm 如何查看某一函数源码的快捷键
May 12 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
菜鸟修复电子管记
2021/03/02 无线电
php中用date函数获取当前时间有误的解决办法
2013/08/02 PHP
PHP实现今天是星期几的几种写法
2013/09/26 PHP
php中的strpos使用示例
2014/02/27 PHP
php接口技术实例详解
2016/12/07 PHP
php正则提取html图片(img)src地址与任意属性的方法
2017/02/08 PHP
PHP获取表单数据与HTML嵌入PHP脚本的实现
2017/02/09 PHP
XAMPP升级PHP版本实现步骤解析
2020/09/04 PHP
拖动一个HTML元素
2006/12/22 Javascript
各种常用浏览器getBoundingClientRect的解析
2009/05/21 Javascript
Jquery 设置标题的自动翻转
2009/10/03 Javascript
javascript与webservice的通信实现代码
2010/12/25 Javascript
jquery 选项卡效果 新手代码
2011/07/08 Javascript
JS小功能(checkbox实现全选和全取消)实例代码
2013/11/28 Javascript
jquery和雅虎的yql服务实现天气预报服务示例
2014/02/08 Javascript
JavaScript中的setMilliseconds()方法使用详解
2015/06/11 Javascript
原生Javascript和jQuery做轮播图简单例子
2016/10/11 Javascript
bootstrap-datetimepicker实现只显示到日期的方法
2016/11/25 Javascript
JavaScript优化以及前段开发小技巧
2017/02/02 Javascript
JavaScript原生实现观察者模式的示例
2017/12/15 Javascript
Vue组件通信中非父子组件传值知识点总结
2019/12/05 Javascript
js实现计时器秒表功能
2019/12/16 Javascript
基于vuex实现购物车功能
2021/01/10 Vue.js
Python使用MD5加密字符串示例
2014/08/22 Python
python实现的简单RPG游戏流程实例
2015/06/28 Python
用tensorflow搭建CNN的方法
2018/03/05 Python
unittest+coverage单元测试代码覆盖操作实例详解
2018/04/04 Python
python3解析库lxml的安装与基本使用
2018/06/27 Python
纯python进行矩阵的相乘运算的方法示例
2019/07/17 Python
解决Django 在ForeignKey中出现 non-nullable field错误的问题
2019/08/06 Python
python使用html2text库实现从HTML转markdown的方法详解
2020/02/21 Python
一款纯css3实现的颜色渐变按钮的代码教程
2014/11/12 HTML / CSS
LACOSTE波兰官网:Polo衫、服装和鞋类
2020/09/29 全球购物
软件测试有哪些?什么是配置项?
2012/02/12 面试题
驾驶员培训方案
2014/05/01 职场文书
毕业典礼邀请函
2015/01/31 职场文书