


全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
一、Mat 类型:矩阵类型,Matrix。 在 openCV 中,Mat 是一个多维的密集数据数组。可以用来处理向量和矩阵、图像、直 方图等等常见的多维数据。 Mat 有 3 个重要的方法: 1、Mat mat = imread(const String* filename); 读取图像 2、imshow(const string frameName, InputArray mat); 显示图像 3、imwrite (const string 储存图像 Mat 类型较 CvMat 与 IplImage 类型来说,有更强的矩阵运算能力,支持常见的矩阵运 算。在计算密集型的应用当中,将 CvMat 与 IplImage 类型转化为 Mat 类型将大大减少计 算时间花费。 A.Mat - IplImage 同样只是创建图像头,而没有复制数据。 例: / 假设 Mat 类型的 imgMat 图像数据存在 IplImage pImg= IplImage(imgMat); B.Mat - CvMat 与 IplImage 的转换类似,不复制数据,只创建矩阵头。 例: / 假设 Mat 类型的 imgMat 图像数据存在 CvMat cvMat = imgMat; 二、CvMat 类型与 IplImage 类型:“图像”类型 在 openCV 中,Mat 类型与 CvMat 和 IplImage 类型都可以代表和显示图像,但是, Mat 类型侧重于计算,数学性较高,openCV 对 Mat 类型的计算也进行了优化。而 CvMat 和 IplImage 类型更侧重于“ 图像” ,openCV 对其中的图像操作(缩放、单通道提取、图像 阈值操作等)进行了优化。 补充: IplImage 由 CvMat 派生,而 CvMat 由 CvArr 派生即 CvArr - CvMat - IplImage CvArr 用作函数的参数,无论传入的是 CvMat 或 IplImage,内部都是按 CvMat 处 理。 1.CvMat A.CvMat- IplImage IplImage* img = cvCreateImage(cvGetSize(mat),8,1); cvGetImage(matI,img); cvSaveImage(“rice1.bmp“,img); B.CvMat-Mat 与 IplImage 的转换类似,可以选择是否复制数据。 Mat:Mat(const CvMat* m, bool copyData=false); 在 openCV 中,没有向量(vector)的数据结构。任何时候,但我们要表示向量时,用矩 阵数据表示即可。 但是,CvMat 类型与我们在线性代数课程上学的向量概念相比,更抽象,比如 CvMat 的元 素数据类型并不仅限于基础数据类型,比如,下面创建一个二维数据矩阵: CvMat* cvCreatMat(int rows ,int cols , int type); 这里的 type 可以是任意的预定义数据类型,比如 RGB 或者别的多通道数据。这样我们便 可以在一个 CvMat 矩阵上表示丰富多彩的图像了。 2.IplImage 在类型关系上,我们可以说 IplImage 类型继承自 CvMat 类型,当然还包括其他的变量将 之解析成图像数据。 IplImage 类型较之 CvMat 多了很多参数,比如 depth 和 nChannels。在普通的矩阵类型当 中,通常深度和通道数被同时表示,如用 32 位表示 RGB+Alpha.但是,在图像处理中,我 们往往将深度与通道数分开处理,这样做是 OpenCV 对图像表示的一种优化方案。 IplImage 的对图像的另一种优化是变量 origin-原点。在计算机视觉处理上,一个重要的 不便是对原点的定义不清楚,图像来源,编码格式,甚至操作系统都会对原地的选取产生 影响。为了弥补这一点,openCV 允许用户定义自己的原点设置。取值 0 表示原点位于图 片左上角,1 表示左下角。 dataOrder 参数定义数据的格式。有 IPL_DATA_ORDER_PIXEL 和 IPL_DATA_ORDER_PLANE 两种取值,前者便是对于像素,不同的通道的数据交叉排列, 后者表示所有通道按顺序平行排列。 IplImage 类型的所有额外变量都是对“图像” 的表示与计算能力的优化。 A.IplImage - Mat IplImage* pImg = cvLoadImage(“lena.jpg“); Mat img(pImg,0); / 0 是不複製影像,也就是 pImg 與 img 的 data 共用同個記憶體位置, header 各自有 B.IplImage - CvMat 法 1:CvMat mathdr, *mat = cvGetMat( img, 法 2:CvMat *mat = cvCreateMat( img-height, img-width, CV_64FC3 ); cvConvert( img, mat ); C.IplImage*- BYTE* BYTE* data= img-imageData; CvMat 和 IplImage 创建时的一个小区别: 1、建立矩阵时,第一个参数为行数,第二个参数为列数。 CvMat* cvCreateMat( int rows, int cols, int type ); 2、建立图像时,CvSize 第一个参数为宽度,即列数;第二个参数为高度,即行数。这 个 和 CvMat 矩阵正好相反。 IplImage* cvCreateImage(CvSize size, int depth, int channels ); CvSize cvSize( int width, int height ); IplImage 内部 buffer 每行是按 4 字节对齐的,CvMat 没有这个限制 补充: A.BYTE*- IplImage* img= cvCreateImageHeader(cvSize(width,height),depth,channels); cvSetData(img,data,step); /首先由 cvCreateImageHeader()创建 IplImage 图像头,制定图
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 考点解析-人教版八年级上册物理声现象《声音的特性声的利用》综合练习练习题(含答案解析)
- 2025历年招警考试真题及答案
- 难点解析苏科版八年级物理下册《物质的物理属性》同步训练练习题(含答案详解)
- 2025九江老师考试真题及答案
- 达标测试人教版八年级上册物理《声现象》章节测试试卷(含答案详解)
- 2025教师招聘成语考试真题及答案
- 后厨员工考试题及答案
- 难点解析-人教版八年级上册物理物态变化《汽化和液化》章节测评试卷(含答案详解)
- 2025护士技能考试真题及答案
- 自动控制原理期中考试及答案
- 保险基础知识培训
- 口腔药品急救知识培训课件
- 2025年教育系统学校中层后备干部选拔考试题(含答案)
- 养老院安全培训考试题及答案解析
- DB32-T 5192-2025 工业园区碳排放核算指南
- 湖南省九校联盟2026届高三上学期9月第一次联考日语试题(含答案)
- 时事政治讲座课件
- 四次侵华战争课件
- 2025年成人高考试题及答案
- 2025年上海市公安辅警、法检系统辅助文员招聘考试(职业能力倾向测验)历年参考题库含答案详解
- 2025年上海市大数据中心工作人员公开招聘考试参考题库及答案解析
评论
0/150
提交评论