OpenCV数据结构

1.分类

  基本数据结构(basic data types)

  辅助数据结构(Helper object)

  大型数据结构(Large array object):mat

  STL数据结构:vector,pair

2.基础数据结构:Point、Scalar、Size、cv::Rect、RotatedRect、Matx

3.点Point

  3.1Point构造

    cv::Point2i p;  //定义点p为2位的整形,例如(x,y) x和y取整形数据

    cv::Point3f p;  //定义点p为3位的浮点型,例如(a,b,c),abc取float数据

    cv::Point3f p2(p1);  //拷贝构造,将p1拷贝给p2

    cv::Point2i p(x0,x1);   //赋值构造,x0和x1直接取int型数据

    cv::Point3d p(x0,x1,x2);  //赋值构造,x0,x1,x2直接取double类型数据

  3.2Point取值

    int i=p.x;  //取Point2i的x坐标

    float f=p.y;  //Point2f的y坐标

  3.3Point函数

     p.inside(r);  //判断p是否在r中

    cv::Point2i p=Point2i(10,10);

    cv::Point2i p1=Point2i(200,200);

    cv::Recti2i r=Rect2i(0,0,100,100);

    bool b=p.inside(r);

    bool b1=p1.inside(r);

4.  4位double类型Scalar:n.数量,标量

    cv::Scalar是四位双浮点数的点集合  4位double

    Scalar(255)表示全白,Scalar(g,b,r)表示一个GBR色彩只是它功能的一种

    4.1Scalar构造

      cv::Scalar s;  //空构造

      cv::Scalar s2(s1);  //拷贝构造 将s1赋值给s2

      cv::Scalar s(x0);  //赋值构造

      cv::Scalar s(x0,x1,x2,x3);  //赋值构造

    4.2Scalar函数

      s1.mul(s2);  //乘法 每一位分别相乘

      Scalar s(255,255,255);

      Scalar s2(10,100,255);

      Scalar ss=s.mul(s2);

5.尺寸Size

  5.1Size构造

    cv::Size sz;  //空构造

    cv::Size2i sz;  //2位int型

    cv::Size2f sz;  //2位float型

    cv::Size sz2(sz1);  //将sz1拷贝给sz2

    cv::Size2f sz(w,h);  //赋值构造,w和h分别对应属性width和height

  5.2取值

    sz.width;  //取宽度  

    sz.height;  //取高度

  size不能够和老的数据结构相互转换。

  

    

原文地址:https://www.cnblogs.com/yangmengke2018/p/10987922.html

时间: 2024-12-24 05:08:17

OpenCV数据结构的相关文章

OpenCV学习笔记(四十)——再谈OpenCV数据结构Mat详解

原文:http://blog.csdn.net/yang_xian521/article/details/7107786 我记得开始接触OpenCV就是因为一个算法里面需要2维动态数组,那时候看core这部分也算是走马观花吧,随着使用的增多,对Mat这个结构越来越喜爱,也觉得有必要温故而知新,于是这次再看看Mat. Mat最大的优势跟STL很相似,都是对内存进行动态的管理,不需要之前用户手动的管理内存,对于一些大型的开发,有时候投入的lpImage内存管理的时间甚至比关注算法实现的时间还要多,这

opencv数据结构-MAT结构详解

1.定义 OpenCV中的C结构体有 CvMat 和 CvMatND,但后续的应用中指出 CvMat 和 CvMatND 弃用了,在C++封装中用 Mat 代替,另外旧版还有一个 IplImage,同样用 Mat 代替(可以参考博文 OpenCV中的结构体.类与Emgu.CV的对应表).矩阵 (M) 中数据元素的地址计算公式:addr(Mi0,i1,-im-1) = M.data + M.step[0] * i0 + M.step[1] * i1 + - + M.step[m-1] * im-1

OpenCV数据结构:CvMat,IplImage,CvArr的应用

最近看HS算法时,发现在新的OpenCV3.0已经移除了该算法,于是不得不看老版的.这其中涉及到了CvMat,CvArr,IplImage的使用.关于这三个结构与Mat的转换关系,总结如下: (1)派生关系:CvArr->CvMat->IplImage 传参问题:CvArr作为函数参数,可传入CvMat或IplImage,但内部都按CvMat处理. (2)Mat转IplImage和CvMat IplImage img=IplImage(mat) CvMat cvmat=mat (3)CvMat

OPENCV(3) —— 对XML和YAML文件实现I/O 操作

XML\YAML文件在OpenCV中的数据结构为FileStorage string filename = "I.xml"; FileStorage fs(filename, FileStorage::WRITE); \\... fs.open(filename, FileStorage::READ); fs.release();   写入文件使用  <<  运算符 ,读取文件,使用 >> 运算符 fs << "iterationNr&qu

OpenCV参考手册之Mat类详解

目标 我们有多种方法可以获得从现实世界的数字图像:数码相机.扫描仪.计算机体层摄影或磁共振成像就是其中的几种.在每种情况下我们(人类)看到了什么是图像.但是,转换图像到我们的数字设备时我们的记录是图像的每个点的数值. 例如在上图中你可以看到车的镜子只是一个包含所有强度值的像素点矩阵.现在,我们如何获取和存储像素值可能根据最适合我们的需要而变化,最终可能减少计算机世界内的所有图像数值矩阵和一些其他的信息的描述基质本身.OpenCV 是一个计算机视觉库,其主要的工作是处理和操作,进一步了解这些信息.

团队小学期9

我们团队的最重要的一部分是人脸的识别,通过摄像头检测人的各项信息.我们采用的技术是OpenCV.它轻量级而且高效——由一系列 C 函数和少量 C++ 类构成,同时提供了Python.Ruby.MATLAB等语言的接口,实现了图像处理和计算机视觉方面的很多通用算法. Mat 是OpenCV中最主要的一个类,由两个数据部分组成:矩阵头(包含矩阵尺寸,存储方法,存储地址等信息)和一个指向存储所有像素值的矩阵(根据所选存储方法的不同矩阵可以是不同的维数)的指针.通过Mat的构造函数可以创建一个Mat对象

对XML和YAML文件实现I/O操作

1.文件的打开关闭 XML\YAML文件在OpenCV中的数据结构为FileStorage,打开操作例如: string filename = "I.xml"; FileStorage fs(filename, FileStorage::WRITE); \\... fs.open(filename, FileStorage::READ); 文件关闭操作会在FileStorage结构销毁时自动进行,但也可调用如下函数实现 fs.release(); 2.文本和数字的输入和输出 写入文件使

OpenCV3编程入门--读书笔记

一.OpenCV概述 1.OpenCV全程Open Source Computer Vision Library,即开源计算机视觉库.它是一个跨平台的开源计算机视觉库,可以运行在windows.linux.Mac OS.Android.iOS等操作系统上.OpenCV用C/C++编写,轻量且高效,还支持使用C#.Ch.Ruby等编程语言,同时提供对Python.Ruby.MATLAB等语言的接口. OpenCV官方主页:http://opencv.org OpenCV Github主页:http

OpenCV_Tutorials——CORE MODULE.THE CORE FUNCTIONALITY—— File Input and Output using XML and YAML files

2.9XML和YAML格式作为文件输入输出 目标 你会从文中找到下面问题的答案: 1.如何从OpenCV使用的YAML或者XML文件中读取和打印文字条目.? 2.对于OpenCV数据结构如何做到相同的事情? 3.对你的数据结构如何做到? 4.OpenCV的数据结构,例如FileStorage,FileNode或者FileNodeIterator的使用方法. 源代码 你可以从这里下载代码或者从OpenCV的源代码库的samples/cpp/tutorial_code/core/file_input