【发布时间】:2017-07-23 06:34:35
【问题描述】:
我只是想了解 OpenCV,我在 x64 机器上运行。
我之前使用的是 OpenCV 3.2.0 和 VS2015,我尝试执行以下步骤 youtube 上 Kyle Hounslow 的分步教程,但出现错误。
然后我使用 VS2013 重新安装,但仍然出现如下错误:
Error 1 error C2664: 'void cvShowImage(const char *,const CvArr *)' : cannot convert argument 2 from 'cv::Mat' to 'const CvArr *' Error 2 IntelliSense: no suitable conversion function from "cv::Mat" to "const CvArr *" exists我已经在下面的链接中看到了,但仍然不适合我
我也检查了下面的链接,但我很困惑
我的代码如下:
#include<iostream> #include<opencv\cv.h> #include<opencv2\highgui\highgui.hpp> #include<opencv2\videoio.hpp> #include<opencv2\core.hpp> #include<opencv2\imgproc\imgproc.hpp> using namespace cv; int main() { Mat image; VideoCapture cap; cap.open(0); cvNamedWindow("window", 1); while (true) { cap >> image; cvShowImage("window", image); cvWaitKey(33); } }请帮助我,非常感谢。
对不起,我删除了更新,因为原来的问题已经解决了
非常感谢
【问题讨论】:
-
CvMat在构造函数中接受Mat作为arg 所以:CVMat imageMat(image);然后将这个地址传递给cvShowImage:cvShowImage("window", &imageMat);,实际上你还需要传递尺寸和 dtype 所以CvMat imageMat(height, width, dtype, image); -
不要使用过时的 C api! 您可以参考documentation 的示例,了解如何正确执行此操作
-
如果原来的问题解决了,还有其他问题,请开新问题
-
当然,对不起
-
@RizkySatya 并将解决您问题的答案标记为答案
标签: c++ opencv visual-c++