OpenCV数据结构

Posted yangmengke2018

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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不能够和老的数据结构相互转换。

  

    

 

以上是关于OpenCV数据结构的主要内容,如果未能解决你的问题,请参考以下文章

Opencv结构与内容

《学习opencv》笔记——基本数据结构,CvMat,矩阵訪问

OpenCv结构和内容

请问opencv的GPU模块里,与GpuMat挂钩的PtrStep 和 PtrStepSz两个数据结构有啥区别?

Python-OpenCV学习:OpenCV结构

在数据结构中存储不同大小的图像,OpenCV