抱歉,我删除了更新,因为原始问题已经解决 非常感谢我只是想了解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); } }
请帮助我,非常感谢。
答案 0 :(得分:1)
如果您需要使用c ++ Mat,则应使用imshow("window", image);
。
在指定的窗口中显示图像。
C ++:void imshow(const string&amp; winname,InputArray mat)
C:void cvShowImage(const char * name,const CvArr * image)
答案 1 :(得分:0)
您正在将旧的,过时的 C api(cvNamedWindow
,cvShowImage
,cvWaitKey
)与新的C ++ API混合使用(Mat
,{{ 1}})。不要那样做。完全放弃C api。名为cvFunctionName的所有内容都已过时。使用使用VideoCapture
作为命名空间的较新的api,因此像cv :: functionName这样的名称就是你应该调用的。
在你的情况下,它是cv::namedWindow
,cv::imshow
和cv::waitKey
:
cv