打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
OpenCV中Mat与IplImage和CvMat类型之间的相互转换

OpenCV中Mat与IplImage和CvMat类型之间的相互转换

Mat类型较CvMat和IplImage有更强的矩阵运算能力,支持常见的矩阵运算(参照Matlab中的各种矩阵运算),所以将IplImage类型和CvMat类型转换为Mat类型更易于数据处理。

Mat类型可用于直接存储图像信息,通过函数imread、imwrite、imshow等实现(与Matlab中的函数相似),似乎在某种程度上可以取代IplImage类型。

(1)将IplImage类型转换到Mat类型

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

默认情况下,新的Mat类型与原来的IplImage类型共享图像数据,转换只是创建一个Mat矩阵头。当将参数copyData设为true后,就会复制整个图像数据。

例:

IplImage* iplImg = cvLoadImage("greatwave.jpg", 1);

Mat mtx(iplImg);// IplImage* ->Mat 共享数据

// or : Mat mtx = iplImg;

(2)将Mat类型转换到IplImage类型

同样只是创建图像头,而没有复制数据。

例:

IplImage ipl_img = img;// Mat -> IplImage

(3)将CvMat类型转换为Mat类型

与IplImage的转换类似,可以选择是否复制数据。

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

(4)将Mat类型转换为CvMat类型

与IplImage的转换类似,不复制数据,只创建矩阵头。

例:

// 假设Mat类型的imgMat图像数据存在

CvMat cvMat = imgMat;// Mat -> CvMat

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
CvArr、Mat、CvMat、IplImage、BYTE转换(总结而来)
(转载)OpenCV中矩阵的定义
OpenCV中:CvArr、CvMat、IplImage、cv::Mat和cv::InputArray的相关总结
cv::Mat与iplimage类型如何进行互相转换
OpenCV
opencv中mat,cvmat,Iplimage构造体定义以及格式互相转换
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服