图像数据结构:
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 基础数据结构 • 图像数据结构 • 矩阵与向量 • 其他数据结构 • 图像处理 • 创建与释放图像结构空间 • 读入与存储图像 • 读取图像元素 • 图像转换 • 绘图命令 • 矩阵操作 • 创建与释放...
1.1.1 OpenCV主要功能及模块介绍 1、内置数据结构和输入/输出 OpenCV内置了丰富的与图像处理有关的数据结构,如Image、Point、Rectangle等。 core模块实现了各种基本的数据结构。 imgcodecs模块提供了图像文件的...
第一章 概述 第二章 OpenCV入门 第三章 OpenCV基础 第四章 数据结构与数据操作 第五章 模式识别与图像处理 第六章 运动物体跟踪
IplImage数据结构 矩阵和图像操作 绘图 数据存储 集成性能基元 小结 练习 第4章 细说HighGUI 一个可移植的图形工具包 创建窗口 载入图像 显示图像 视频的处理 ConvertImage函数 练习 第5章 图像处理 综述 平滑处理 ...
OpenCV 只是一个算法库, 能为我们搭建计算机视觉应用提供“砖头”。我们并不需要完全精通了算法原理之后才去使用 OpenCV,只要... 本小册子希望为初学者提供引导,使初学者快速了解 OpenCV 的基本数据结构以及用法。
显示图像 第二个程序—— 播放AVI视频 视频播放控制 一个简单的变换 一个复杂一点的变换 从摄像机读入数据 写入AVI视频文件 小结 练习 第3章 初探OpenCV OpenCV的基本数据类型 CvMat矩阵结构 IplImage数据结构 ...
关于OpenCV的好处之一就是它提供了许多内置的用于图像...OpenCV提供了这些开箱即用的基础数据结构,它们都包含在core模块中。另外一个好处是,这些数据结构都已经针对速度和内存做了优化,因此,你不用担心实现细节。
opencv教程基础篇共分6章,第一章概述了opencv及其实现的功能,第二章是opencv入门,第三章是opencv基础,第四章是数据结构与数据操作,第五章是模式识别与图像处理,第六章是运动物体跟踪。实例代码很丰富,易于...
up主学习毛星云的opencv3编程入门一书,对于Mat类以及基础数据结构的总结,希望对刚刚学习opencv的朋友有帮助。
一共430页左右 第一章概述 第二章OpenCV入门 第三章OpenCV基础 第四章数据结构及数据操作 第五章模式识别与图像处理 第六章运动物体跟踪
C++学生管理系统, 数据结构, 基于Opencv的车牌识别系统源码+详细文档(课程设计).zipC++学生管理系统, 数据结构, 基于Opencv的车牌识别系统源码+详细文档(课程设计).zip 【备注】 1、该项目是个人高分课程设计...
OPENCV函数手册,OPENCV常用函数速查,详细使用例子OpenCV概述 FAQ中文 CxCore中文参考手册 基础结构 数组操作 动态结构 绘图函数 数据保存和运行时类型信息 其它混合函数 错误处理和系统函数 机器学习中文参考手册
基础结构 2. 数组操作 3. 动态结构 4. 绘图函数 5. 数据保存和运行时类型信息 6. 其它混合函数 7. 错误处理和系统函数 机器学习中文参考手册 CvAux中文参考手册 CvvImage类参考手册 ...
Opencv入门,下载,安装 opencv基础,图像视频 数据结构与数据操作 图像处理与模式识别 运动物体跟踪 详细讲解与实例
基础结构 数组操作 动态结构 绘图函数 数据保存和运行时类型信息 其它混合函数 错误处理和系统函数 机器学习中文参考手册 CvAux中文参考手册 CvvImage类参考手册 CvImage类参考手册 CvImage中的陷阱和BUG...
第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矩阵的统计...
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...
Core:包含基本的数据结构(如cv::Mat用于图像存储和操作)、基本的图像和矩阵操作、数学函数、文件I/O等底层功能。 ImgProc:提供图像预处理、滤波、几何变换、形态学操作、直方图计算、轮廓发现与分析等图像...
Core:包含基本的数据结构(如cv::Mat用于图像存储和操作)、基本的图像和矩阵操作、数学函数、文件I/O等底层功能。 ImgProc:提供图像预处理、滤波、几何变换、形态学操作、直方图计算、轮廓发现与分析等图像...