转换从IplImage*到cv::MAT
Conversion from IplImage* to cv::MAT
我搜索将IplImage*转换为Mat,但所有答案都是关于转换为cvMat。
我该怎么做呢?Mat和cvMat有什么区别?
Thanks in advance
对于记录:看看core/src/matrix.cpp,似乎确实,构造函数cv::Mat(IplImage*)
已经消失了。
但是我发现了另一个选择:
IplImage * ipl = ...;
cv::Mat m = cv::cvarrToMat(ipl); // default additional arguments: don't copy data.
这是一个很好的解决方案
Mat(const IplImage* img, bool copyData=false);
推荐使用cv::cvarrToMat
函数
cv::Mat
-是OpenCV 2.x的基础数据结构
CvMat
-是cv::Mat
的旧C模拟物
查看Mat文档
// converts old-style IplImage to the new matrix; the data is not copied by default
Mat(const IplImage* img, bool copyData=false);
-
cv::Mat或Mat,两者相同。
-
Mat有一个操作符CvMat(),所以简单的赋值工作
将Mat转换为CvMat
Mat mat = ---------;
CvMat cvmat = mat;
将CVMat转换为Mat
Mat dst = Mat(cvmat, true);
将Mat转换为IplImage*
> For Single Channel
IplImage* image = cvCloneImage(&(IplImage)mat);
>
IplImage* image = cvCreateImage(cvSize(mat.cols, mat.rows), 8, 3);
IplImage ipltemp = mat;
cvCopy(&ipltemp, image);
希望这对你有帮助。干杯
相关文章:
- 将CHW格式的浮点向量转换为cv::Mat
- C++:从GPU内存(cudaMemcpy2D)获取BGR图像(cv::Mat)
- 选择基于另一个垫子的非零像素的cv::Mat的一部分?
- 将 cv::mat 转换为 QImage
- 将 cv::Mat 转换为 std::vector 的通用函数
- 在 QML VideoOutput 中将 cv::mat 显示为 QVideoFrame
- 如何将 cv::Mat 转换为 vtkImageData?
- 如何将 vtkImageData 转换为 cv::Mat?
- 如何总结所有cv::Mat元素
- Qt-工作线程崩溃时将cv::Mat转换为QImage
- 在 cv::Mat 中生成 2D 坐标网格
- 将 cv::Mat 转换为无符号的 int 像素
- OpenCV 分段错误(核心转储)在使用 cv::Mat::at 时
- 如何将多个 cv::Mat 从 c++ dll 传递到 opencvsharp Mat c#?
- 如何在不复制数据的情况下将 cv::Mat 转换为 2d 标准::矢量
- 如何使用 (*mpORBextractorLeft)(im,cv::Mat(),mvKeys,mDescriptors)
- 从数组创建 Mat 时,'cv::Mat' 和 'int' 类型不兼容
- 如何将 cv::mat 对象从 python 模块传递到 c++ 函数并返回返回的 cv::mat 类型为对象?
- 移动语义和 cv::Mat
- OpenCV 错误:断言在 cv::Mat 行 522 中失败