首页 > 其他分享 >cv::Rect类的构造

cv::Rect类的构造

时间:2024-06-09 23:11:44浏览次数:10  
标签:构造 paint Scalar Rect box1 cv rectangle box2

在算交并比的时候涉及到cv::Rect2f的初始化, 比较常用的由下面几种

    Rect_(_Tp _x, _Tp _y, _Tp _width, _Tp _height);	// 左上点xy,宽度,长度
    Rect_(const Point_<_Tp>& org, const Size_<_Tp>& sz); // 左上点point, size类(宽度, 长度)
    Rect_(const Point_<_Tp>& pt1, const Point_<_Tp>& pt2); // 左上点point, 右下点point

当然也可以先创建一个空Rect然后对其的一些参数进行赋值

Rect.x		//左上点x
Rect.y		//左上点y
Rect.height	//长度
Rect.width	// 宽度

还有比较坑的是 Rect1 & Rect2确实是取出两个矩形的交集,但是Rect1 | Rect2并非传统意义上的并集,而是能够包裹两个矩形的最小外接矩形。
可以从下面直观看出

对应代码如下

int main()
{
    Mat paint(Size(640, 640), CV_8UC3, Scalar(255, 255, 255));
    Rect2i box1(Point2i(200, 200), Point2i(400, 400));
    Rect2i box2(Point2i(300, 300), Point(500, 500));
    auto Intersection = box1 & box2;
    auto Union = box1 | box2;
    rectangle(paint, box1, Scalar(0, 0, 0), 6);
    rectangle(paint, box2, Scalar(0, 0, 0), 6);
    rectangle(paint, Intersection, Scalar(255, 0, 0), -1); // Blue
    rectangle(paint, Union, Scalar(0, 0, 255), 2);         // Red
    imshow("show", paint);
    waitKey(0);
    return 0;
}

这里有个小技巧,将rectangle 的thickness参数设为-1即可进行填充矩形的操作

因此算并集的时候还是这样算吧

 float Union = box1.area() + box2.area() - Intersection;

标签:构造,paint,Scalar,Rect,box1,cv,rectangle,box2
From: https://www.cnblogs.com/CrescentWind/p/18240178

相关文章

  • 1.安装opencv-python失败的解决办法 2.pip 安装失败 3.WARNING:Ignoring invalid distr
    问题:安装opencv-python失败:用:pipinstall-ihttps://pypi.tuna.tsinghua.edu.cn/simpleopencv-python安装会被卡在Buildingwheelforopencv-python(pyproject.toml)...之后便安装失败。使用顺序:先使用方法二,再使用方法一(有可能不会解决问题),用方法三查看问题出......
  • OpenCV与AI深度学习 | 实战 | OpenCV实现扫描文本矫正应用与实现详解(附源码)
    本文来源公众号“OpenCV与AI深度学习”,仅用于学术分享,侵权删,干货满满。原文链接:实战|OpenCV实现扫描文本矫正应用与实现详解(附源码)1导 读    本文主要介绍使用OpenCV对扫描文本矫正的应用实例及详细实现步骤。    2背景介绍  在使用打印机或扫描仪......
  • 基于OpenCV的SIFT算法实现图像拼接(全景图像)
    一、SIFT算法尺度不变特征转换(Scale-invariantfeaturetransform或SIFT)是一种机器视觉的算法用来侦测与描述影像中的局部性特征,它在空间尺度中寻找极值点,并提取出其位置、尺度、旋转不变数,此算法由DavidLowe在1999年所发表,2004年完善总结。SIFT算法的实质是在不同的尺度......
  • PHP-CGI Windows平台远程代码执行漏洞复现(CVE-2024-4577)
    0x01产品简介PHP-CGI 是一种用于在 Web 服务器上运行 PHP 脚本的接口,通过 CGI(公共网关接口)将 PHP 解释器与 Web 服务器连接。0x02漏洞概述2024年6月,PHP官方发布新版本,修复了 PHP-CGI 中一个远程代码执行漏洞。鉴于该漏洞无前置条件,易于利用,且默认情况下可获取......
  • C++入门7 类|构造函数|析构函数
    一,类型设计和实例化对象封装是面向对象程序设计最基本的特性, 把数据 (属性) 和函数 (操作) 合成一个整体,这在计算机世界中是用类与对象实现的。C++中类的设计1 class 类型名称2 {3 public:4 成员列表1;5 protected:6 成员列表2;7 private:8 成员列表3;......
  • 深入解析C++中自动生成默认构造函数的五种情况
    自动生成默认构造函数的情况以及相关解释在C++中,当一个类没有任何用户定义的构造函数时,编译器会自动为这个类生成一个默认构造函数。以下是具体情况的解释以及示例:1.带有默认构造函数的类成员对象如果一个类没有任何构造函数,但它含有一个成员对象,而该成员对象有默认构造......
  • C++ OpenCV 图像分类魔法:探索神奇的模型与代码
    ⭐️我叫忆_恒心,一名喜欢书写博客的研究生......
  • 【python】OpenCV—Blob Detection(11)
    学习来自OpenCV基础(10)使用OpenCV进行Blob检测文章目录1、cv2.SimpleBlobDetector_create中文文档2、默认parameters3、配置parameters附录——cv2.drawKeypoints1、cv2.SimpleBlobDetector_create中文文档cv2.SimpleBlobDetector_create是OpenCV库中用于创......
  • 树莓派 linux安装PyBlueZ报错:fatal error: bluetooth/bluetooth.h: No such file or d
    IwanttobuildacfilebasedonBlueZbutseemsnobluetooth.hfileinmysystem.fatalerror:bluetooth/bluetooth.h:NosuchfileordirectoryIamsurethebluetoothdongleisrunningcorrectlyandIhavebuiltBluezsuccessfully.UpdateFormyca......
  • Python【cv2:读取图片时报错】
    写在前面:opencv库安装在终端用pipinstall安装opencv-python库建议使用国内清华源的镜像去安装,加参数-ihttps://pypi.tuna.tsinghua.edu.cn/simple代码如下:pipinstall-ihttps://pypi.tuna.tsinghua.edu.cn/simpleopencv-python报错一我一开始直接用cv2.imread(p......