Opencv3.0中Mat与IplImage的转换

原创 2015年11月20日 09:36:15

最近做图像,使用了Opencv3.0。因为涉及了蛋疼的混合编程,所以Mat 和 IplImage的转换是必不可少的。

让人无语的是从网上查的IplImage转Mat的方法根本不能用。于是我不得不扒了一下Opencv3.0的原文档,上面这么说:

Partial yet very common cases of this user-allocated data case are conversions from CvMat and IplImage to Mat. For this purpose, there is functioncv::cvarrToMat taking pointers to CvMat or IplImage and the optional flag indicating whether to copy the data or not.

 Ptr<IplImage> iplimg(cvLoadImage(imagename)); // Ptr<T> is safe ref-counting pointer class
    if(!iplimg)
    {
        fprintf(stderr, "Can not load image %s\n", imagename);
        return -1;
    }
    Mat img = cv::cvarrToMat(iplimg); // cv::Mat replaces the CvMat and IplImage, but it's easy to convert
    // between the old and the new data structures (by default, only the header
    // is converted, while the data is shared)

以上是IplImage转换为Mat的过程,而IplImage转换Mat是有一个现成的构造函数:

IplImage(Mat& m);

所以,答案如下:

(1) IplImage 转 Mat:

IplImage* image = cvLoadImage( "lena.jpg");  
Mat mat=cvarrToMat(image);

(2)Mat转IplImage:

IplImage img = IplImage(mat);


相关文章推荐

OpenCV - cv::Mat 和 IplImage 的转换

OpenCV - cv::Mat 和 IplImage 的转换 本文地址: http://blog.csdn.net/caroline_wendy IplImage是OpenCV中C语言的图像...

【OpenCV】IplImage与Mat的相互转换

1、IplImage --> Mat 转换函数: //! converts old-style IplImage to the new matrix; the data is not copied b...

Opencv Mat与Iplimage的相互转换

1、将Mat转换为IplImage //! converts header to IplImage; no data is copied     operator IplImage() const; ...
  • gxiaob
  • gxiaob
  • 2013年08月02日 15:56
  • 47080

OpenCV学习笔记(08):OpenCV3.2版本下的Mat和IplImage相互转换

1 前言IplImage是计算机视觉处理数字图像的一种重要的抽象数据类型,最初来源于Intel公司的IPL(Image Processing Library)库。OpenCV1.0在实现该数据类型时使...

Mat和IplImage相互转换

Mat 是OpenCV和C++的接口矩阵类,ImlImage是OpenCV和C语言的接口的结构体,但是C++程序有时候时候还是要用到ImlImage,例如在MFC中的Picture Control...

OpenCV Mat转IplImage的陷阱

自OpenCV2.0.0以后,引进了Mat类型。Mat使用更为方便,且和Android的Bitmap转换也方便。(此处指的是Android在java层转int[]后再传给jni里,在jni里将int[...

IplImage和Mat间的相互转换

转自:http://www.opencv.org.cn/forum/viewtopic.php?f=1&t=8279   5楼回复 ———————————————— opencv2.0中的数据...
  • fm0517
  • fm0517
  • 2012年04月19日 21:24
  • 60299

第一篇:在opencv3.0中,Mat与iplimage转换

初学opencv3.0版本,在学习的过程中遇到了需要将Mat与Iplimage之间混合使用,所以需要对其进行转换 Mat image; Iplimage  a; a=image; 使用的时候image...

CvMat、Mat、IplImage之间的转换详解及实例

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

OpenCv Mat, IplImage 相互转换

还记得用opencv1.0时候总是内存泄漏么,看哪个没有release。。。2.0之后这个Mat真是太棒了,官方文档说 不必再手动地为其开辟空间。在不需要时不用立即将空间释放。  下面捞干的: ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Opencv3.0中Mat与IplImage的转换
举报原因:
原因补充:

(最多只允许输入30个字)