1 Mat转为lplImageCvMat格式

1.1 Mat转为IplImage结构

Mat img(Size(400,400),CV_8UC3);

lplImage iplimg=img;//转为IplImage结构

1.2 Mat转为CvMat类型

CvMat cvimg=img;//转为CvMat结构

类型转换后,IplImage和CvMat与Mat共用同一矩阵数据,IplImage和CvMat没有引用技术功能,如果img中的数据被释放,那么iplimg和cvimg也同时失去数据。

2 IplImage和CvMat格式转为Mat

Mat类有两个构造函数,可以实现IplImage和CvMat到Mat的转换。这两个函数都有一个参数copyData,如果copyData的值为false,那么Mat将于IplImage或CvMat共用同一矩阵数据,如果值是True,Mat会申请新的内存,然后将IplImage或CvMat的数据复制到Mat的数据区。如果共用数据,Mat不会使用计数器来管理内存,需要自己来管理。建议将参数设置为True.

构造函数如下:

Mat::Mat(const CvMat *m,bool copyData=false)

Mat::Mat(const IplImage * Img,bool copyData=false)

例子:

IplImage *iplimg=cvLoadImage("LOL.jpg");

Mat im(iplimg,true);

CvMat类似上例。

如果您觉得对您有帮助,可以请站长喝一杯咖啡哦!

支付宝或者微信扫描二维码

对站长进行赞助

支付宝扫一扫

微信扫一扫

金额随意,礼清义重

当前分类随机文章推荐

全站随机文章推荐

关于本站站长 StubbornHuang
OpenCV – Mat与lplImage和CvMat的相互转换-StubbornHuang Blog纵使晴明无雨色,入云深处亦沾衣。