文章目录

  • cv2.boudingRect
  • cv2.minAreaRect

示意图

cv2.boudingRect

x,y,w,h = cv2.boundingRect(array)
  • 输入:img/点集

    array Input gray-scale image or 2D point set, stored in std::vector or Mat.

  • 输出:x,y 是矩阵的左上点坐标 w, h是宽度和高度
    是一个未旋转的矩形

cv2.minAreaRect

将2D点集作为输入,并返回一个Box2D结构,其中包括以下详细信息–(中心(x,y),(宽度、高度)、旋转角度)

(center(x,y), (width, height), angle of rotation) = cv2.minAreaRect(points)
  • 输入:点集
  • 输出:(中心(x,y),(宽度、高度)、旋转角度)

但是要绘制一个矩形,我们需要矩形的四个角,因此为了将Box2D结构转换为4个角点,OpenCV提供了另一个函数cv2.boxPoints(),这将Box2D结构作为输入并返回4个角点。4个角点从y最高的点开始按顺时针顺序排列。语法如下:

points = cv2.boxPoints(box)

在绘制矩形之前,需要将4个角点转换为整数类型。可以使用np.int32或者np.int64(不要使用np.int8,因为它允许最大值127并截断)。有时,你可能会看到使用了np.int0,不要混淆,这相当于np.int32或者np.int64,具体取决于你的系统结构。完整的代码如下:

rect = CV2.minAreaRect(cnt)
box = cv2.boxPoints(rect)
box = np.int0(box)

获得四个角点以后,这四个角点从具有最高y的点开始按顺时针顺序排列,如下所示。如果2个点具有相同的最高y,则最右的点是起点。这些点被编号为0,1,2,3(0开始,3结束)。
因此,OpenCV的cv2.minAreaRect()给出的旋转角度实际上是直线(连接起点和终点)与水平线之间的角度,如下所示。
因此角度值始终位于[-90, 0)之间。为什么?因为如果对象旋转超过90°,则使用下一条边来计算与水平面的角度。因此计算出的角度始终位于[-90,0)之间。
实际角度是对象旋转的角度,计算出的角度是cv.minAreaRect()返回的角度。

参考:
https://theailearner.com/tag/cv2-minarearect/

OpenCV 外接矩形框 cv2.boundingRect、cv2.minAreaRect相关推荐

  1. opencv 选择矩形框

    新版opencv c++和python都不支持选多个roi,可以连续选几次. 参数解读: selectROI(windowName, img, showCrosshair=None, fromCent ...

  2. opencv利用矩形框选中某一区域_【从零学习OpenCV】4Ubuntu系统中安装OpenCV 4

    经过几个月的努力,小白终于完成了市面上第一本OpenCV 4入门书籍<从零学习OpenCV 4>.为了更让小伙伴更早的了解最新版的OpenCV 4,小白与出版社沟通,提前在公众号上连载部分 ...

  3. python opencv 画矩形框 外接矩形

    画矩形 import cv2 image = cv2.imread('1.jpg') cv2.rectangle(image, (xmin, ymin), (xmax, ymax), (0, 0, 2 ...

  4. 利用cv2.rectangle()绘制矩形框(python)

    文章目录 cv2.rectangle绘制矩形框 使用解析 范例 总结 cv2.addWeighted绘制半透明框 使用解析 范例 总结 使用cv2.rectangle可以绘制矩形框,但要绘制半透明框使 ...

  5. python opencv最小外接矩形_Opencv绘制最小外接矩形、最小外接圆

    Opencv中求点集的最小外结矩使用方法minAreaRect,求点集的最小外接圆使用方法minEnclosingCircle. minAreaRect方法原型: RotatedRect minAre ...

  6. 【千律】OpenCV基础:图像外接矩形、最小外接矩形、凸包、外接圆、拟合椭圆的绘制

    环境:Python3.8 和 OpenCV 内容:图像外接矩形.最小外接矩形.凸包.外接圆.拟合椭圆的绘制 import cv2 as cv import numpy as np import mat ...

  7. opencv findContours()轮廓特征分析大全(求面积、周长、几何矩、质心、凸包、最小外接矩形、最小外接三角形、最小外接椭圆等)

    文章目录 前言 一.效果 二.opencv对应函数介绍 1.轮廓面积 2.轮廓周长 3.轮廓几何矩 4.轮廓的最大外接矩形 5.轮廓的凸包 6.轮廓的最小外接矩形 7.轮廓的最小外接三角形 8.轮廓的 ...

  8. opencv 轮廓查找, 凸包,最小外接矩形,最小外接圆,最小外接椭圆

    本章内容: 1. 轮廓查找 2. 绘制轮廓 3. 凸包 4.最小外接矩形 5.最小外接圆 6.最小外接椭圆 1.搜索轮廓 2.绘制轮廓 输出结果 3.凸包 输出结果 4.最小外接矩形 输出结果 5.最 ...

  9. opencv方框内图像保存_opencv利用矩形框选中某一区域并保存为新图片

    本文实例为大家分享了Android九宫格图片展示的具体代码,供大家参考,具体内容如下 一.基本原理 Mat img= imread(image): Rect rect(50,20, 200, 50); ...

最新文章

  1. java类加载的表现形式
  2. Webservice超时问题
  3. 听说,当使用Reactjs的时候,Gulp和Browserify很配哦
  4. 登陆工行网上银行报60058017错误及输入正确网银密码提示密码不正确
  5. Silverlight开发历程—模糊特效与投影特效
  6. linux accept过程,Linux协议栈accept和syn队列问题
  7. python watchdog的使用_python watchdog监控文件修改
  8. vue开发 - 将方法绑定到window对象,给app端调用
  9. php jquery ajax实例,jQuery的$.ajax示例
  10. greenplum配置高可用_0665-6.2.0-如何在CDH中配置HMS高可用
  11. Android中Webview自适应屏幕
  12. 阶段1 语言基础+高级_1-3-Java语言高级_06-File类与IO流_02 递归_1_递归概念分类注意事项...
  13. 语音识别系统原理介绍----gmm-hmm
  14. centos老是自动更换ip地址解决方案
  15. [转]内向的人如何建立人际网络
  16. 解方程(equation)
  17. suse linux启用80端口,SuSE Linux防火墙配置
  18. 7 种模型加权集成方法
  19. Dell precision 7720 移动工作站 nvidia 显卡安装说明
  20. Java 获取当前年 、当前月

热门文章

  1. 泰肯星球(Token Planets)基于EOS区块链技术的虚拟游戏
  2. PMP一模考试错题集+解析 之 人员
  3. 所生成项目的处理器架构“MSIL”与引用“ ”的处理器架构“AMD64”不匹配。
  4. 计算机内存tm,Intel(R) Core(TM) i3-3110M CPU @ 2.40GHz支持多大内存
  5. 走近澳洲------个人所得税篇
  6. 软考证书的含金量有多高?
  7. IDEA JAVA文档注释和方法注释模板
  8. 词袋模型(BOW,bag of words)和词向量模型(Word Embedding)理解
  9. Android supports-screens 屏幕适配
  10. POI导出Excel(一)