您的位置:首页 > 运维架构

关于opencv高版本中ImImage转Mat的问题(VS2013+opencv3.1)

2016-08-16 21:50 211 查看
在学习opencv的过程中,有时需要将ImImage转换为Mat类型,在多次失败后,终于找到了方法。

刚开始,我按照网上的第一种方法:

//使用Mat的构造函数:Mat::Mat(const IplImage* img, bool copyData=false);    默认情况下copyData为false
IplImage* srcImg = cvLoadImage("Lena.jpg");
//注意:以下三种效果一致,均为浅拷贝
Mat M(srcImg);
Mat M(srcImg, false);
Mat M = srcImg;

//注意:当将参数copyData设为true后,则为深拷贝(复制整个图像数据)
Mat M(srcImg, true);

运行时,编译器报错。

接着尝试用了另外一种方法,成功解决了问题:

const char* filename = "E:\\face\\Lena.jpg";//图片路径
IplImage* image = cvLoadImage(filename, 1);//读入图片
cv::Mat frame = cv::cvarrToMat( image );//转换为Mat类型

还有可能,有其他方法,希望大家指出。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: