OpenCV: IplImage和Mat,用哪个?
OpenCV: IplImage和Mat,用哪个?小菜鸟一枚,刚刚接触opencv。我有一本叫《学习OpenCV》的书,作者是Bradski和Kaehler。我的问题是,如果我想以2.0+的方式做任何事情,什么时候应该使用呢Mat,什么时候应该使用IplImage?求大神告知
IplImage:
在OpenCV中IplImage是表示一个图像的结构体,也是从OpenCV1.0到目前最为重要的一个结构;
在之前的图像表示用IplImage,而且之前的OpenCV是用C语言编写的,提供的接口也是C语言接口;
Mat:
Mat是后来OpenCV封装的一个C++类,用来表示一个图像,和IplImage表示基本一致,但是Mat还添加了一些图像函数;
在OpenCV中, IplImage 与 Mat是可以相互转换的;
IplImage转Mat:
// externIplImage * plpliamge; //假设 IplImage 已经创建;
cv::Mat * pmatImage = new cv:Mat( IplImage, 0): //第二个参数表示不进行像素数据copy;
Mat 转 IplImage:
//extern cv:MatmatImage; //假设已经创建cv:Mat;
IplImage limage = IplImage ( matImage );//不进行数据copy;
通常情况对于图像的读取,IplImage 通过 cvLoadImage, cv:Mat通过 cv::imread; opencv2.0,3.0 推荐使用Mat,C++类
页:
[1]