opencv3.0.0 如何将 CvMat ,IplImage* 转换为Mat格式

安装了OpenCV3.0.0之后,发现无法用网上盛传的方法的方法来将 IplImage* 转换为Mat格式了

而且编译的时候提示没有对应的函数.

然后查了一下源文件mat.h,果然已经没有了

Mat::Mat(const IplImage* img, bool copyData=false);
原来是官方在3.0.0版本去掉了这个函数.

百度一圈也没有解决办法(唉,尝鲜是要付出代价的啊)

不过好在在OpenCV官方论坛发现了大神的解决办法,贴出来,让大家少走弯路

 IplImage * ipl = ...;
 cv::Mat m = cv::cvarrToMat(ipl);  // default additional arguments: don't copy data.
同样,依旧只拷贝信息头,用的同一个数据块

查了一下源代码头文件,是酱紫滴

//! converts array (CvMat or IplImage) to cv::Mat
CV_EXPORTS Mat cvarrToMat(const CvArr* arr, bool copyData=false,
                          bool allowND=true, int coiMode=0,
                          AutoBuffer<double>* buf=0);

原来新版本的这个函数同样还支持CvMat到Mat的转换,真是太方便了!

  • 5
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值