1

如何将 OpenCVMat对象转换为cvMat对象?

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

:错误:<预期';' 在'deprecatedImg'之前>,

如何解决这个问题?

4

1 回答 1

6

在 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.* 及以下版本中,存在Mat转换CvMat运算符(2),您可以简单地将 a 分配MatCvMat,如下所示。请注意,OpenCV 3 及更高版本中不再存在此转换运算符。

Mat img = ...;
CvMat cvMatImg = img;
于 2015-03-25T05:39:10.717 回答