OpenCv 第一步 - 不存在合适的构造函数来将“IplImage *”转换为“cv::_InputArray”

Posted

技术标签:

【中文标题】OpenCv 第一步 - 不存在合适的构造函数来将“IplImage *”转换为“cv::_InputArray”【英文标题】:OpenCv first steps - no suitable constructor exists to convert from "IplImage *" to "cv::_InputArray" 【发布时间】:2016-04-04 21:02:07 【问题描述】:

我使用的是 2.4.1 版本的 OpenCv。当我尝试做这样的事情时:

Mat graySmallOutputImage = cvarrToMat(smallImageGray);
cvMoveWindow("face", 0, 0);
imshow("face", graySmallOutputImage);
namedWindow("result", CV_WINDOW_NORMAL);
cvMoveWindow("result", 500, 500);
Mat image = cvarrToMat(image);
imshow("result", image);

我收到一个错误:

严重性代码描述项目文件行 错误(活动)不存在合适的构造函数来将“IplImage *”转换为“cv::_InputArray

很遗憾,我找不到解决此问题的方法。有什么建议吗?

【问题讨论】:

不要使用过时的 C api! 你指的是哪个函数? 所有使用IplImage的东西,基本上所有以cv开头的函数 @Miki OpenCv 函数已弃用?什么? 不推荐使用过时的 C api。你应该使用 OpenCV C++ api 【参考方案1】:

看看here:

您看到C 版本的方法cvMoveWindow 是如何变暗的吗?这是因为 C API 已被弃用。它不应该用于编写新代码。应该使用等效的 C++ 方法moveWindow。通常,C 函数看起来像cvFunctionName。如果您在开头看到 cv,请仔细检查文档。

【讨论】:

但是我在函数 imshow 中也遇到了错误。 那是因为 C API 创建了 IplImage 而不是 C++ Mat,并且不再有采用 IplImageMat 构造函数。

以上是关于OpenCv 第一步 - 不存在合适的构造函数来将“IplImage *”转换为“cv::_InputArray”的主要内容,如果未能解决你的问题,请参考以下文章

没有合适的构造函数存在 - 矢量图

类不存在默认构造函数

c ++设置空指针?

错误 C2512:没有合适的默认构造函数可用(不是类)

MySql.EntityFramework 找不到合适的构造函数

编译器错误:没有合适的默认构造函数可用