首页 opencv编程简介笔记3三、OpenCV的基本数据结构

opencv编程简介笔记3三、OpenCV的基本数据结构

举报
开通vip

opencv编程简介笔记3三、OpenCV的基本数据结构opencv编程简介笔记3三、OpenCV的基本数据结构 三、OpenCV的基本数据结构 (译注:OpenCV 1.1、1.2或2.0版本中各数据结构的结构体元素有所调整,以下仅作参考) 1、图像数据结构 (1) IPL 图像: IplImage |-- int nChannels; // 颜色通道数目 (1,2,3,4) |-- int depth; // 像素的位深: | // IPL_DEPTH_8U, IPL_DEPTH_8S, | // IPL_DEPTH_16U,IPL_DEPTH_16...

opencv编程简介笔记3三、OpenCV的基本数据结构
opencv编程简介笔记3三、OpenCV的基本数据结构 三、OpenCV的基本数据结构 (译注:OpenCV 1.1、1.2或2.0版本中各数据结构的结构体元素有所调整,以下仅作参考) 1、图像数据结构 (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 - 将像素点不同通道的值交错排在一起,形成单一像素平面 | // 1 - 把所有像素同通道值排在一起,形成若干个通道平面,再把平面排列起来 | // cvCreateImage 只能创建像素交错排列式的图像 |-- int origin; // 0 – 像素原点为左上角, | // 1 – 像素原点为左下角 (Windows bitmaps style) |-- int widthStep; // 相邻行的同列点之间的字节数 |-- int imageSize; // 图像的大小(字节为单位) = height*widthStep |-- struct _IplROI *roi;// 图像的感兴趣区域(ROI). ROI非空时对图像的 | // 处理仅限于ROI区域. |-- char *imageDataOrigin; // 图像数据未对齐时的数据原点指针 | // (需要正确地重新分配图像内存 ) | // (needed for correct image deallocation) |-- int align; // 图像数据的行对齐: 4 or 8 byte alignment | // OpenCV 中无此项,采用widthStep代替 |-- char colorModel[4]; // 颜色模型 – OpenCV中忽略此项 2、矩阵与向量 (1) 矩阵: CvMat // 2D 矩阵 |-- int type; // 元素类型 (uchar,short,int,float,double) 与标志 |-- int step; // 整行长度字节数 |-- int rows, cols; // 行、列数 |-- int height, width; // 矩阵高度、宽度,与rows、cols对应 |-- union data; |-- uchar* ptr; // data pointer for an unsigned char matrix |-- short* s; // data pointer for a short matrix |-- int* i; // data pointer for an integer matrix |-- float* fl; // data pointer for a float matrix |-- double* db; // data pointer for a double matrix CvMatND // N-维矩阵 |-- int type; // 元素类型 (uchar,short,int,float,double) 与标志 |-- int dims; // 矩阵维数 |-- union data; | |-- uchar* ptr; // data pointer for an unsigned char matrix | |-- short* s; // data pointer for a short matrix | |-- int* i; // data pointer for an integer matrix | |-- float* fl; // data pointer for a float matrix | |-- double* db; // data pointer for a double matrix | |-- struct dim[]; // 各维信息 |-- size; // 元素数目 |-- step; // 元素间距(字节为单位) CvSparseMat // N-维稀疏矩阵 (2) 一般矩阵: CvArr* // 仅作为函数定义的参数使用, // 表明函数可以接受不同类型的矩阵作为参数, // 例如:IplImage*, CvMat* 甚至是 CvSeq*. // 矩阵的类型通过矩阵头的前4个字节信息来确定 (3) 标量: CvScalar |-- double val[4]; //4D 向量 初始化函数: CvScalar s = cvScalar(double val0, double val1=0, double val2=0, double val3=0); // Example: CvScalar s = cvScalar(20.0); s.val[0]=20.0; 注意该初始化函数的函数名与对应的结构体名称几乎同名,差别仅在于函数名第一个字母是 小写的,而结构体名第一个字母是大写的。它并不是一个 C++ 构造函数。(译注:类似的还 有 cvMat 与 CvMat、cvPoint 与 CvPoint 等等) [编辑] 3、其它结构类型 (1) 点: CvPoint p = cvPoint(int x, int y); CvPoint2D32f p = cvPoint2D32f(float x, float y); CvPoint3D32f p = cvPoint3D32f(float x, float y, float z); //E.g.: p.x=5.0; p.y=5.0; (2) 矩形框大小(以像素为精度): CvSize r = cvSize(int width, int height); CvSize2D32f r = cvSize2D32f(float width, float height); (3) 矩形框的偏置和大小: CvRect r = cvRect(int x, int y, int width, int height);
本文档为【opencv编程简介笔记3三、OpenCV的基本数据结构】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_003124
暂无简介~
格式:doc
大小:18KB
软件:Word
页数:0
分类:互联网
上传时间:2017-10-10
浏览量:21