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开头的函数看看here:
您看到C
版本的方法cvMoveWindow
是如何变暗的吗?这是因为 C API 已被弃用。它不应该用于编写新代码。应该使用等效的 C++ 方法moveWindow
。通常,C 函数看起来像cvFunctionName
。如果您在开头看到 cv
,请仔细检查文档。
【讨论】:
但是我在函数 imshow 中也遇到了错误。 那是因为 C API 创建了IplImage
而不是 C++ Mat
,并且不再有采用 IplImage
的 Mat
构造函数。以上是关于OpenCv 第一步 - 不存在合适的构造函数来将“IplImage *”转换为“cv::_InputArray”的主要内容,如果未能解决你的问题,请参考以下文章