从转换IplImage的*到CV :: MAT(Conversion from IplImage*

2019-08-21 06:41发布

我搜索到的IplImage *转换为垫,但所有的答案都对转换CvMat中。

我该怎么做? 而这也正是垫CvMat中和之间的区别?

提前致谢

Answer 1:

这里是一个很好的解决方案

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


Answer 2:

对于记录:考虑看看核心/ src目录/ matrix.cpp看来,事实上,构造cv::Mat(IplImage*)已经消失。

但我发现这个替代方案:

IplImage * ipl = ...;
cv::Mat m = cv::cvarrToMat(ipl);  // default additional arguments: don't copy data.


Answer 3:

推荐的方法是cv::cvarrToMat功能

cv::Mat -为OpenCV的2.x的基本数据结构

CvMat -是旧的C模拟cv::Mat



Answer 4:

退房垫文档 。

// converts old-style IplImage to the new matrix; the data is not copied by default
Mat(const IplImage* img, bool copyData=false);


Answer 5:

  • CV ::垫子或垫子,都是一样的。

  • 垫子的CvMat中操作()这么简单的分配工作

转换垫与CvMat

Mat mat = ---------;
CvMat cvmat = mat;

转换到与CvMat太

Mat dst = Mat(cvmat, true);  

转换垫的IplImage *

>单通道

IplImage* image = cvCloneImage(&(IplImage)mat); 

>对于三通道

IplImage* image = cvCreateImage(cvSize(mat.cols, mat.rows), 8, 3);
IplImage ipltemp = mat;
cvCopy(&ipltemp, image);

希望这可以帮助你。 干杯:)



文章来源: Conversion from IplImage* to cv::MAT