`
Riddick
  • 浏览: 632753 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

OpenCV基础数据结构

阅读更多

图像数据结构:

1) IPL 图像:
IplImage
  |-- int  nChannels;     // 色彩通道数(1,2,3,4)
  |-- int  depth;         // 象素色深:
  |                       //   IPL_DEPTH_8U, IPL_DEPTH_8S,
  |                       //   IPL_DEPTH_16U,IPL_DEPTH_16S,
  |                       //   IPL_DEPTH_32S,IPL_DEPTH_32F,
  |                       //   IPL_DEPTH_64F
  |-- int  width;         // 图像宽度(象素点数)
  |-- int  height;        // 图像高度(象素点数)

  |-- char* imageData;    // 指针指向成一列排列的图像数据
  |                       // 注意色彩顺序为BGR
  |-- int  dataOrder;     // 0 - 彩色通道交叉存取 BGRBGRBGR,
  |                       // 1 - 彩色通道分隔存取 BBBGGGRRR
  |                       // 函数cvCreateImage只能创建交叉存取的图像
  |-- int  origin;        // 0 - 起点为左上角,
  |                       // 1 - 起点为右下角(Windows位图bitmap格式)
  |-- int  widthStep;     // 每行图像数据所占字节大小
  |-- int  imageSize;     // 图像数据所占字节大小 = 高度*每行图像数据字节大小
  |-- struct _IplROI *roi;// 图像ROI. 若不为NULL则表示需要处理的图像
  |                       // 区域.
  |-- char *imageDataOrigin; // 指针指向图像数据原点
  |                          // (用来校准图像存储单元的重新分配)
  |
  |-- int  align;         // 图像行校准: 4或8字节校准
  |                       // OpenCV不采用它而使用widthStep
  |-- char colorModel[4]; // 图像色彩模型 - 被OpenCV忽略

 

2) 矩阵与向量

矩阵:
CvMat                      // 2维数组
  |-- int   type;          // 元素类型(uchar,short,int,float,double)
  |-- int   step;          // 一行所占字节长度
  |-- int   rows, cols;    // 尺寸大小
  |-- int   height, width; // 备用尺寸参照
  |-- union data;
     |-- uchar*  ptr;     // 针对unsigned char矩阵的数据指针
      |-- short*  s;       // 针对short矩阵的数据指针
      |-- int*    i;       // 针对integer矩阵的数据指针
      |-- float*  fl;      // 针对float矩阵的数据指针
      |-- double* db;      // 针对double矩阵的数据指针


CvMatND                    // N-维数组
  |-- int   type;          // 元素类型(uchar,short,int,float,double)
  |-- int   dims;          // 数组维数
  |-- union data;
  |   |-- uchar*  ptr;     // 针对unsigned char矩阵的数据指针
  |   |-- short*  s;       // 针对short矩阵的数据指针
  |   |-- int*    i;       // 针对integer矩阵的数据指针
  |   |-- float*  fl;      // 针对float矩阵的数据指针
  |   |-- double* db;      // 针对double矩阵的数据指针
  |
  |-- struct dim[];        // 每个维的信息
      |-- size;            // 该维内元素个数
      |-- step;            // 该维内元素之间偏移量


CvSparseMat // 稀疏N维数组

 

通用数组:
CvArr*     // 仅作为函数参数,说明函数接受多种类型的数组,例如:
           //    IplImage*, CvMat* 或者 CvSeq*.
           // 只需通过分析数组头部的前4字节便可确定数组类型

 

标量:
CvScalar
  |-- double val[4]; //4D向量

 

初始化函数:

CvScalar s = cvScalar(double val0, double val1=0, double val2=0, double val3=0);

 

举例:

CvScalar s = cvScalar(20.0);
s.val[0]=10.0;

 

注意:初始化函数与数据结构同名,只是首字母小写. 它不是C++的构造函数.

 

3) 其他数据结构

点:
CvPoint      p = cvPoint(int x, int y);
CvPoint2D32f p = cvPoint2D32f(float x, float y);
CvPoint3D32f p = cvPoint3D32f(float x, float y, float z);
例如:
p.x=5.0;
p.y=5.0;

 

长方形尺寸:
CvSize       r = cvSize(int width, int height);
CvSize2D32f  r = cvSize2D32f(float width, float height);

 

带偏移量的长方形尺寸:
CvRect       r = cvRect(int x, int y, int width, int height);

 

分享到:
评论

相关推荐

    opencv 编程入门

    • OpenCV 基础数据结构 • 图像数据结构 • 矩阵与向量 • 其他数据结构 • 图像处理 • 创建与释放图像结构空间 • 读入与存储图像 • 读取图像元素 • 图像转换 • 绘图命令 • 矩阵操作 • 创建与释放...

    OpenCV计算机视觉基础教程(Python版)(慕课版)-(1).pptx

    1.1.1 OpenCV主要功能及模块介绍 1、内置数据结构和输入/输出 OpenCV内置了丰富的与图像处理有关的数据结构,如Image、Point、Rectangle等。 core模块实现了各种基本的数据结构。 imgcodecs模块提供了图像文件的...

    OpenCV教程基础篇

    第一章 概述 第二章 OpenCV入门 第三章 OpenCV基础 第四章 数据结构与数据操作 第五章 模式识别与图像处理 第六章 运动物体跟踪

    学习OPENCV(中文版)

    IplImage数据结构 矩阵和图像操作 绘图 数据存储 集成性能基元 小结 练习 第4章 细说HighGUI 一个可移植的图形工具包 创建窗口 载入图像 显示图像 视频的处理 ConvertImage函数 练习 第5章 图像处理 综述 平滑处理 ...

    OpenCV入门教程(基础原理讲解C++版)

    OpenCV 只是一个算法库, 能为我们搭建计算机视觉应用提供“砖头”。我们并不需要完全精通了算法原理之后才去使用 OpenCV,只要... 本小册子希望为初学者提供引导,使初学者快速了解 OpenCV 的基本数据结构以及用法。

    学习opencv中文版

    显示图像 第二个程序—— 播放AVI视频 视频播放控制 一个简单的变换 一个复杂一点的变换 从摄像机读入数据 写入AVI视频文件 小结 练习 第3章 初探OpenCV OpenCV的基本数据类型 CvMat矩阵结构 IplImage数据结构 ...

    OpenCV示例源码.rar_opencv好处_opencv的好处_scratch_scratch源码

    关于OpenCV的好处之一就是它提供了许多内置的用于图像...OpenCV提供了这些开箱即用的基础数据结构,它们都包含在core模块中。另外一个好处是,这些数据结构都已经针对速度和内存做了优化,因此,你不用担心实现细节。

    Opencv教程基础篇实例源代码

    opencv教程基础篇共分6章,第一章概述了opencv及其实现的功能,第二章是opencv入门,第三章是opencv基础,第四章是数据结构与数据操作,第五章是模式识别与图像处理,第六章是运动物体跟踪。实例代码很丰富,易于...

    008 Mat(基础图像容器)用法与基础数据结构.doc

    up主学习毛星云的opencv3编程入门一书,对于Mat类以及基础数据结构的总结,希望对刚刚学习opencv的朋友有帮助。

    OpenCV教程基础篇PDF书籍与书中源码

    一共430页左右 第一章概述 第二章OpenCV入门 第三章OpenCV基础 第四章数据结构及数据操作 第五章模式识别与图像处理 第六章运动物体跟踪

    C++学生管理系统, 数据结构, 基于Opencv的车牌识别系统源码+详细文档(课程设计).zip

    C++学生管理系统, 数据结构, 基于Opencv的车牌识别系统源码+详细文档(课程设计).zipC++学生管理系统, 数据结构, 基于Opencv的车牌识别系统源码+详细文档(课程设计).zip 【备注】 1、该项目是个人高分课程设计...

    OPENCV函数手册PDF版.zip

    OPENCV函数手册,OPENCV常用函数速查,详细使用例子OpenCV概述 FAQ中文 CxCore中文参考手册 基础结构 数组操作 动态结构 绘图函数 数据保存和运行时类型信息 其它混合函数 错误处理和系统函数 机器学习中文参考手册

    opencv 中文参考手册

    基础结构  2. 数组操作  3. 动态结构  4. 绘图函数  5. 数据保存和运行时类型信息  6. 其它混合函数  7. 错误处理和系统函数  机器学习中文参考手册  CvAux中文参考手册  CvvImage类参考手册  ...

    opencv教程,计算机视觉,快速入门

    Opencv入门,下载,安装 opencv基础,图像视频 数据结构与数据操作 图像处理与模式识别 运动物体跟踪 详细讲解与实例

    OpenCV中文手册

    基础结构 数组操作 动态结构 绘图函数 数据保存和运行时类型信息 其它混合函数 错误处理和系统函数 机器学习中文参考手册 CvAux中文参考手册 CvvImage类参考手册 CvImage类参考手册 CvImage中的陷阱和BUG...

    基于opencv3.1库的JAVA源码

    第3章 OpenCV基础数学计算 60 范例3-1-1 矩阵的线性代数计算1 60 范例3-1-2 矩阵的矩阵线性代数计算2-加减乘除处理 62 范例3-1-3 矩阵的矩阵线性代数计算3 65 范例3-2-1 矩阵的统计方面计算1 68 范例3-2-2矩阵的统计...

    OpenCV_编程简介(入门必读)

    3 三、OpenCV的基本数据结构 3.1 1、图像数据结构 3.1.1 (1) IPL 图像: 3.2 2、矩阵与向量 3.2.1 (1) 矩阵: 3.2.2 (2) 一般矩阵: 3.2.3 (3) 标量: 3.3 3、其它结构类型 3.3.1 (1) 点: 3.3.2 (2...

    基于opencv tenserflow2.0实战CNN人脸识别锁定与解锁win10屏幕.zip

    Core:包含基本的数据结构(如cv::Mat用于图像存储和操作)、基本的图像和矩阵操作、数学函数、文件I/O等底层功能。 ImgProc:提供图像预处理、滤波、几何变换、形态学操作、直方图计算、轮廓发现与分析等图像...

    基于OpenCV图像识别的2D斯诺克桌球辅助瞄准器.zip

    Core:包含基本的数据结构(如cv::Mat用于图像存储和操作)、基本的图像和矩阵操作、数学函数、文件I/O等底层功能。 ImgProc:提供图像预处理、滤波、几何变换、形态学操作、直方图计算、轮廓发现与分析等图像...

Global site tag (gtag.js) - Google Analytics