如何在OpenCV 3.0中将Mat转换为cvMat

How to convert Mat to cvMat in OpenCV 3.0

本文关键字:Mat 转换 cvMat 中将 OpenCV      更新时间:2023-10-16

如何将OpenCV Mat对象转换为cvMat对象?

根据OpenCV互操作性文档(1),这种转换应该是可能的。但在声明cvMat时,编译器在cvMat deprecatedImg 行给出以下错误消息

:错误:<应为";"在'折旧dIMg'>之前,

如何解决此问题?

在OpenCV 3及更高版本中,您必须使用兼容标头(types_c.h)来使用不推荐使用的C对象(如cvMat)。在OpenCV 3.0中,CvMat有一个接受Mat(1)的构造函数。代码如下。

#include "opencv2/core/types_c.h"
cv::Mat img = ... ;
CvMat deprecatedImg(img);

在OpenCV 2.4.*及以下版本中,存在MatCvMat的转换运算符(2),您可以简单地将Mat分配给CvMat,如下所示。请注意,OpenCV 3及以上版本中已不存在此转换运算符。

Mat img = ...;
CvMat cvMatImg = img;