OpenCV的cv2.minAreaRect解析

这篇具有很好参考价值的文章主要介绍了OpenCV的cv2.minAreaRect解析。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

在这个文章中,我们将学习如何在感兴趣区域周围画最小面积矩形框。

1.最小面积矩形框

下图显示了两个矩形框,绿色的是普通矩形框,红色的是最小面积矩形框。可以发现,红色的是旋转矩形。
cv2.minarearect,OpenCV,opencv,python,计算机视觉
OpenCV提供了一个函数cv2.minAreaRect来寻找最小面积的旋转矩形。将2D点集作为输入,并返回一个Box2D结构,其中包括以下详细信息–(中心(x,y),(宽度、高度)、旋转角度)。

(center(x,y), (width, height), angle of rotation) = cv2.minAreaRect(points)

但是要绘制一个矩形,我们需要矩形的四个角,因此为了将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)

得到四个坐标后,就可以轻松绘制图形了。现在,让我们讨论一下旋转角度。

2.旋转角度

获得四个角点以后,这四个角点从具有最高y的点开始按顺时针顺序排列,如下所示。如果2个点具有相同的最高y,则最右的点是起点。这些点被编号为0,1,2,3(0开始,3结束)。
cv2.minarearect,OpenCV,opencv,python,计算机视觉
因此,OpenCV的cv2.minAreaRect()给出的旋转角度实际上是直线(连接起点和终点)与水平线之间的角度,如下所示。

cv2.minarearect,OpenCV,opencv,python,计算机视觉
因此角度值始终位于[-90, 0)之间。为什么?因为如果对象旋转超过90°,则使用下一条边来计算与水平面的角度。因此计算出的角度始终位于[-90,0)之间。
cv2.minarearect,OpenCV,opencv,python,计算机视觉
实际角度是对象旋转的角度,计算出的角度是cv.minAreaRect()返回的角度。

参考目录

https://theailearner.com/tag/cv2-minarearect/文章来源地址https://www.toymoban.com/news/detail-804905.html

到了这里,关于OpenCV的cv2.minAreaRect解析的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 计算点集的最小外接矩形——OpenCV的minAreaRect函数

    输入一系列二维点,返回其最小外接矩形。 根据函数原型,输入的数据可以是 vectorPoint 类型,包含1个以上的点; 返回值是 RotatedRect 类型,该类型的定义如下: 对于用户而言,最重要的是三个属性: center 、 size 、 angle 。其中 size 和 angle 需要着重介绍一下: RotatedRect的si

    2024年04月14日
    浏览(47)
  • 【Python】【OpenCV】关于cv2.findContours()轮廓索引(编号)解析(RETR_TREE)

    在打算自己实现二维码的定位的时候,看到了相关博文的关于cv2.findContours返回的层级信息来定位三个“回”字从而达到定位二维码的目的,但是返回的hierarchy中的层级信息分别对应的是哪个轮廓却困扰了许久,查阅了很多资料最后还是自己手动找出了清晰的规律。 关于hier

    2024年02月04日
    浏览(34)
  • 深入解析OpenCV中的cv2.waitKey()函数

    OpenCV 是一个开源计算机视觉库,广泛用于图像处理和计算机视觉任务。在图像处理中,有时候我们需要在图像显示时等待用户的交互,例如等待用户按下一个键来关闭图像窗口或执行其他操作。这时就可以使用 waitKey() 函数。 waitKey() 函数通常与OpenCV的图像显示功能一起使用

    2024年02月04日
    浏览(47)
  • Python cv2 opencv-python opencv-contrib-python 安装

    老规矩,话不多说,上代码! pip install opencv-python(如果只用主模块,则使用这个命令安装【推荐】) pip install opencv-contrib-python(如果需要用到 contrib 模块,则使用这个命令【本次因自己没有使用 contrib 模块,所以没有尝试】) 首先,讲一下 cv2 这个模块是 opencv 的,所以安

    2024年02月11日
    浏览(47)
  • python使用cv2库、下载opencv库

    cv2库在opencv库内,因此需要下载opencv-python和opencv-contrib-python 1、打开windows命令行: win+R cmd 2、更新pip版本(不一定要): python -m pip install --upgrade pip 3、使用pip下载opencv: 下载opencv库前最好要下载numpy库。 这里使用中科大的镜像源:https://pypi.mirrors.ustc.edu.cn/simple/ pip install

    2024年02月01日
    浏览(41)
  • Python OpenCV 图像缩放:使用 cv2.resize() 方法

    图像缩放是计算机视觉和图像处理中常用的操作之一。OpenCV 是一个强大的计算机视觉库,提供了许多图像处理功能。在 Python 中使用 OpenCV 进行图像缩放非常简单,可以使用 cv2.resize() 方法来实现。 cv2.resize() 方法可以根据指定的尺寸调整图像的大小。它可以缩小图像,也可以

    2024年02月02日
    浏览(58)
  • 【Python】进阶学习:OpenCV--一文详解cv2.namedWindow()

    【Python】进阶学习:OpenCV–一文详解cv2.namedWindow() 🌈 个人主页:高斯小哥 🔥 高质量专栏:Matplotlib之旅:零基础精通数据可视化、Python基础【高质量合集】、PyTorch零基础入门教程👈 希望得到您的订阅和支持~ 💡 创作高质量博文(平均质量分92+),分享更多关于深度学习、

    2024年03月20日
    浏览(108)
  • Python-OpenCv中的cv2.VideoCapture()类

    cv2.VideoCapture()具有两个功能,一是可以完成摄像头的初始化,打开摄像头;二是可以完成视频文件的初始化。 参数说明:         capture :要打开的摄像头         index :摄像头的设备索引,对于笔记本电脑来说,为0时,一般打开的是电脑的内置摄像头,为1时,打开的为外

    2024年01月25日
    浏览(38)
  • opencv-python[cv2]读取中文路径图像

    随着AI人工智能的不断发展,图像处理这门技术也越来越重要,很多学校本科都开启了图像处理这门课程,学习图像处理开发,自然就绕不开opencv-python[ cv2 ]这个由intel主导的开源库。 cv2 是指OpenCV的Python接口库。 OpenCV (Open Source Computer Vision Library)是一个开源的计算机视觉库

    2024年02月06日
    浏览(66)
  • 【Python入门教程】CV2报错:cv2.error: OpenCV(4.7.0) D:\a\opencv-python\opencv-python\opencv\modules\imgproc\s

             OpenCV作为一个强大计算机视觉库被各个领域广泛应用,今天分享下自己编程遇到的报错信息以及解决办法。         这里包含了一个警告和一个报错信息。          警告信息: OpenCV库在处理TIFF图像时遇到的问题有关。从警告信息来看,你的TIFF图像可能使

    2024年02月08日
    浏览(50)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包