我搜索到的IplImage *转换为垫,但所有的答案都对转换CvMat中。
我该怎么做? 而这也正是垫CvMat中和之间的区别?
提前致谢
我搜索到的IplImage *转换为垫,但所有的答案都对转换CvMat中。
我该怎么做? 而这也正是垫CvMat中和之间的区别?
提前致谢
这里是一个很好的解决方案
Mat(const IplImage* img, bool copyData=false);
对于记录:考虑看看核心/ src目录/ matrix.cpp看来,事实上,构造cv::Mat(IplImage*)
已经消失。
但我发现这个替代方案:
IplImage * ipl = ...;
cv::Mat m = cv::cvarrToMat(ipl); // default additional arguments: don't copy data.
推荐的方法是cv::cvarrToMat
功能
cv::Mat
-为OpenCV的2.x的基本数据结构
CvMat
-是旧的C模拟cv::Mat
退房垫文档 。
// converts old-style IplImage to the new matrix; the data is not copied by default
Mat(const IplImage* img, bool copyData=false);
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);
希望这可以帮助你。 干杯:)