最近看HS算法时,发现在新的OpenCV3.0已经移除了该算法,于是不得不看老版的。这其中涉及到了CvMat,CvArr,IplImage的使用。关于这三个结构与Mat的转换关系,总结如下:

(1)派生关系:CvArr->CvMat->IplImage

传参问题:CvArr作为函数参数,可传入CvMat或IplImage,但内部都按CvMat处理。

(2)Mat转IplImage和CvMat

IplImage img=IplImage(mat)

CvMat cvmat=mat

(3)CvMat转IplImage和Mat

IplImage img=cvCreateImage(cvGetSize(cvmat),8,1);cvGetImage(cvmat,img);

Mat::Mat(cvmat,copyData=false);

(4)IplImage转CvMat, Mat

CvMat *cvmat=cvCreateMat(img->height,img->width,CV_64FC3);cvConvert(img,cvmat);

或CvMat cvmatt, *cvmat=cvGetMat(img,&cvmatt);

Mat::Mat(img,copyData=false);

OpenCV数据结构:CvMat,IplImage,CvArr的应用的更多相关文章

  1. opencv 数据类型转换:CvArr, Mat, CvMat, IplImage, BYTE 转

    留着以后查询: http://blog.csdn.net/augusdi/article/details/8863820 一.Mat类型:矩阵类型,Matrix. 在openCV中,Mat是一个多维的 ...

  2. opencv基础知识------IplImage, CvMat, Mat 的关系和相互转换

    Mat,cvMat和IplImage这三种类型都可以代表和显示图像,但是,Mat类型侧重于计算,数学性较高,openCV对Mat类型的计算也进行了优化.而CvMat和IplImage类型更侧重于“图像 ...

  3. OpenCV(三) 之 基本数据结构 CvMat和 IplImage

    OpenCV(三) 之 基本数据结构 CvMat和 IplImage CvMat IplImage OpenCv中基本的数据类型 类型 参数 表示 CvPoint int x,y 像素点 CvPoin ...

  4. OpenCV之CvMat、Mat、IplImage之间相互转换实例(转)

    OpenCV学习之CvMat的用法详解及实例 CvMat是OpenCV比较基础的函数.初学者应该掌握并熟练应用.但是我认为计算机专业学习的方法是,不断的总结并且提炼,同时还要做大量的实践,如编码,才能 ...

  5. Opencv中将CvMat转为IplImage

    Opencv中将CvMat转为IplImage,并在内存获得起头指针,而不用cvSaveImage(),贴上代码 IplImage * imgg = NULL; imgg = cvCreateImag ...

  6. opencv数据结构总结

    OpenCV里面用到了很多图像相关的数据结构,熟练掌握它们是学习图像的基础. 1.IplImage IplImage IplImage IPL 图像头 typedef struct _IplImage ...

  7. opencv学习_5 (IplImage的结构)

    IplImage结构体为: typedef struct _IplImage { int nSize; /* IplImage大小 */ int ID; /* 版本 (=0)*/ int nChann ...

  8. opencv数据结构-MAT结构详解

    1.定义 OpenCV中的C结构体有 CvMat 和 CvMatND,但后续的应用中指出 CvMat 和 CvMatND 弃用了,在C++封装中用 Mat 代替,另外旧版还有一个 IplImage,同 ...

  9. opencv数据结构与基本绘图

    #include <opencv2\core\core.hpp>//核心组件 #include <opencv2\opencv.hpp>//GUI,包含媒体输入输出,视频捕捉. ...

随机推荐

  1. CentOS 6使用mutt+msmtp发送邮件

    转:http://www.tuicool.com/articles/YRnQVfq CentOS系统下如果希望向外域发送邮件,需要配置sendmail+dovecot等一系列工具.其实不用这么麻烦,只 ...

  2. 计时器Chronometer和时钟(AnalogClock和DigitalClock)

    计时器Chronometer和时钟(AnalogClock和DigitalClock) (1)Android提供了两个时钟组件:AnalogClock和DigitalClock,DigitalCloc ...

  3. javascript中单体模式的实现

    单体模式作为一种软件开发模式在众多面向对象语言中得到了广泛的使用,在javascript中,单体模式也是使用非常广泛的,但是由于javascript语言拥有其独特的面向对象方式,导致其和一些传统面向对 ...

  4. android虚拟机(ROOT)权限

    自己找的一个比较好用的pc端安卓模拟器,蓝手指总所周知吧,这个是较高版本但不是最新的一个版本,关键是自带root功能,对于破解安卓存档类游戏还是有用的.安卓版本4.4.2 BlueStacks 0.9 ...

  5. SQLSERVER 复制表--和复制有关的系统表

    主数据库中的复制表 表名 说明 MSreplication_options 表存储供复制在内部使用的元数据. 此表存储在 master 数据库中. msdb 数据库中的复制表 表名 说明 MSagen ...

  6. [Hibernate] - Load and Get

    Hibernate中使用session的load(...)和get(...)区别: 1.load()方法是在返回的类被后期调用时,才会去提交SQL查询数据库. 2.get()方法是在调用get()时就 ...

  7. 【python】unittest中常用的assert语句

    下面是unittest模块的常用方法: assertEqual(a, b)     a == b assertNotEqual(a, b)     a != b assertTrue(x)     b ...

  8. Java 提示 JRE unbound 或者 Tomcat unbound 解决方法

    解决步骤 1.右键你的项目>>build path>>config build path 2. 选中显示 unbound的 Libraries >>Edit 如下图 ...

  9. zend studio一些常用配置

    zend studio 常用 配置 1.zend中添加注释是ctrl+slash,这个slash在哪里?如何来取消注释 slash是斜杠'/'那个键,就是在,.之后的那个. 进行注释是 ctrl+'/ ...

  10. php提高效率

    1. foreach效率更高,尽量用foreach代替while和for循环. 2. 循环内部不要声明变量,尤其是对象这样的变量. 3. 在多重嵌套循环中,如有可能,应当将最长的循环放在内层,最短循环 ...