【OpenCV开发】OpenCV3后IPLimage转换成MAT的问题
来源:互联网 发布:氮氧化物历年排放数据 编辑:程序博客网 时间:2024/06/08 01:48
IplImage* img1 = cvCreateImage(cvGetSize(resizeRes), IPL_DEPTH_8U, 1);//创建目标图像
Mat test = img1; 报错
尝试常用的一些方法更改赋初始值仍报错
(1)将IplImage类型转换到Mat类型
Mat::Mat(const IplImage* img, bool copyData=false);
默认情况下,新的Mat类型与原来的IplImage类型共享图像数据,转换只是创建一个Mat矩阵头。当将参数copyData设为true后,就会复制整个图像数据。
例:
IplImage*iplImg = cvLoadImage("greatwave.jpg", 1);
Matmtx(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的转换类似,不复制数据,只创建矩阵头。
以上基本转换方法均尝试过后都不成功,经过一番搜索终于找到大神如下解答:
For the records: taking a look at core/src/matrix.cpp it seems that, indeed, the constructor cv::Mat(IplImage*)
has disappeared.
But I found this alternative:
IplImage * ipl = ...; cv::Mat m = cv::cvarrToMat(ipl); // default additional arguments: don't copy data.
具体原因并不是很清楚,在取消了以前的一些方法后应该是将IPLimage创建出来的统一看做矩阵来处理,简化了部分程序处理。
阅读全文
0 0
- 【OpenCV开发】OpenCV3后IPLimage转换成MAT的问题
- Opencv:IplImage*转Mat后的内存泄露问题
- opencv (opencv3.X) IplImage相互转换mat
- OpenCV学习笔记(08):OpenCV3.2版本下的Mat和IplImage相互转换
- IplImage*转换为MAT OPENCV3
- OpenCV | Mat - IplImage 转换
- Opencv Mat与Iplimage的相互转换
- openCV中的Mat、IplImage数据的转换
- OpenCV - cv::Mat 和 IplImage 的转换
- opencv中Mat到 IplImage*的转换
- 【OpenCV】IplImage与Mat的相互转换
- OpenCV - cv::Mat 和 IplImage 的转换
- Opencv Mat与Iplimage的相互转换
- Opencv Mat与Iplimage的相互转换
- Opencv Mat与Iplimage的相互转换
- Opencv Mat与Iplimage的相互转换
- OpenCV Mat和IplImage的转换
- Opencv Mat与Iplimage的相互转换
- Tanks!Tutorial初学者可能会出现的问题
- shell 脚本中的命令带换
- JQuery实现内容的显示与隐藏动作循环出现
- u-boot第一阶段分析(三)
- Net Use 命令用法
- 【OpenCV开发】OpenCV3后IPLimage转换成MAT的问题
- Java集合简单介绍
- java大文件读写操作,java nio 之MappedByteBuffer,高效文件/内存映射
- [bigdata-107] node.js的安装并实现一个运营商报告的提交功能
- 全球MCU市场和技术发展趋势
- 基于JAVA代码 获取手机基本信息(本机号码,SDK版本,系统版本,手机型号)
- EventBus 3.0源码学习(二)
- Wireshark抓包iOS入门教程
- 如何加快Gradle的构建速度