IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> Openc的基础数据类型(学习第二天) -> 正文阅读

[人工智能]Openc的基础数据类型(学习第二天)

OpenCV中的基础数据类型中有三大类别

  1. 第一大类别是从C++中继承而来的基础数据类型(如int float等)包括数组,矩阵,可以来表示基础的几何概念如点,大小,矩形
  2. 第二大类别是辅助对象,这类对象代表更抽象的概念,比如垃圾收集指针类,,数据切片的对象
  3. 第三大类别是大型的数组类型,这类原本是涵盖数组或者一些原语、程序集或者更常见的数据类型,比如存储图片的cv::Mat
  4. opencv 还会非常经常的使用stl的内容
简单介绍
  • cv::Vec<> 类,代表固定向量 cv::Matx<>固定矩阵类 ,这两个是维度要已知与上面相似的是cv::Point 类 这个不是固定向量类继承下来的,是由自己的模板派生的,他们的成员是通过名称变量转换得到
    Point类可以通过别名来使用正确的末班 如 cv::Point2i cv::Point2f 等等,
  • cv::Scalar类本质上是个四维Point类,与Point类相似,但实际上与一个可以产生任意四元素向量的模板有关,
    一般是双精度四元素向量的别名,cv::Scalar 是通过整数下标来访问的。这跟cv::Vec<>相同
    这是因为cv::Scalar 直接继承的cv::Vec<>的实例
  • cv::Rect和cv::Size 和Point类相似,继承自己的模板, Rect包含了Size里面的Height和width
    其中两个整数类型就是自己的名称,浮点数是 Size2f, Rect 有个类是RotateRect 包含了一个cv::Point2f 的中心点,一个Size2f 的size 和一个额外的浮点类型的角度
cv::Point 类
  • 最简单的类型,可以成为任何类型的点,如整形和浮点型等
  • 大多数的程序中 Point类 通过类似cv::Point2i cv::Point3f 等实例化的,数字代表维度,后面的字母代表构造此实例的原语
  • 这里有几个重要的受支持的操作,但是他们是通过隐式转换到固定向量类而受支持
  • 包含所有向量和标量,封装了线性代数的操作符
操作实例
默认构造函数cv::Piont2i p; cv::point3i p;
拷贝函数cv::Point3f p2(p1);
构造函数cv::Piont2i p(x,y); cv::point3i p(x,y,z);
构造成固定向量类(cv::Vec3f) p;
成员访问p.x; p.y
点乘float x = p1.dot(p2); double x = p1.dot(p2)
叉乘p2 = cross(p2)
判断点是否在行r内p.inside?
cv::Scalar 类
  • 四维点类
  • 有一些与四元向量类相关的特殊成员函数
操作实例
默认构造函数cv::Scalar s;
拷贝函数cv::Scalar s2(s1);
构造函数cv::Scalar s(x1); cv::Scalar s(x1,x2,x3,x4);
元素相乘s1.mul(s2)
(四元数) 共轭s.conj();
(四元数)真值测试s.isReal();

该类继承自想两类他继承了所有的向量操作

Size 类

Size 可以和Piont类互换

操作实例
默认构造函数cv::Size sz; cv::Size2i sz; cv::Size sz;
拷贝函数cv::Size s2(s1);
构造函数cv::Size sz(w,h)
成员访问sz,.width;sz.height;
计算面积sz.area;
Rect 类
操作实例
默认构造函数cv::Rect r;
拷贝函数cv::Rect r2(r1)
构造函数cv::Rect r(x,y,w,h) cv::Rect(p, sz); cv:: Rect(p1,p2);
成员访问r.x r.y r.width r.height
计算面积r.area;
提取左上角r.tl();
右下角r.br();
p在矩形内c.contains§;
  • 运算符重载
操作实例
交集cv::Rect r3 = r1&r2; r2 &= r1;
同时包含r1,r2的矩形cv::Rect r3 = r1
平移矩形rx个数量cv::Rect rx = r+x ; r += rx;(Point)
扩大矩形rs大小cv::Rect rx = r+s; r+=s(size)
判断相等不相等== !=

Matx 固定矩阵

为了编译已知维度的矩阵打造的,都是在堆栈上分配内存,分配和清除飞快,在小型的矩阵上面做过特别的优化,运行很快
固定向量类继承自固定矩阵,其他类继承自固定向量,可见此类的重要性
通常有别名格式 Matxx{1,2…6}{f,d} 1-6 的任何数
通常是早就已经知道矩阵大小用这个类
所以大型的图像矩阵或者其他灵活大小点阵,需要更大的类,那么就得使用cv::Mat

操作很多可以参考opencv官方文档,这里不列举了(累了)

固定向量类

也不介绍了,看文档吧

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2021-09-04 17:31:26  更:2021-09-04 17:31:28 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/27 16:52:14-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码