我正在尝试对openCV程序进行编码,该程序会打开一个新的窗口,显示来自网络摄像头(笔记本电脑)的视频,并收到错误Unhandled exception at 0x7530C41F in cv.exe: Microsoft C++ exception: cv::Exception at memory location 0x001FF5D0.
我已经仔细检查了所有包含的dll以及系统路径,没有任何正面结果。
这是我的代码:
#include <opencv\cv.h>
#include <opencv\highgui.h>
using namespace cv;
int main()
{
Mat image;
VideoCapture cap;
cap.open(0);
namedWindow("window", CV_WINDOW_AUTOSIZE);
while (1)
{
cap >> image;
imshow("window", image);
waitKey(33);
}
return 0;
}
答案 0 :(得分:2)
我发现我的代码存在问题,我不得不使用waitKey(1000)
暂停执行程序,否则程序会导致内存泄漏。必须这样做,因为在执行代码之前,我的笔记本电脑上的网络摄像头连接尚未完全建立。等待代码执行可以防止崩溃,现在一切都正常运行。
#include <opencv\cv.h>
#include <opencv\highgui.h>
using namespace cv;
int main()
{
Mat image;
VideoCapture cap;
cap.open(0);
namedWindow("window", CV_WINDOW_AUTOSIZE);
waitKey(1000);
while (1)
{
cap >> image;
imshow("window", image);
waitKey(33);
}
return 0;
}
答案 1 :(得分:0)
也许使用VideoCapture::isOpened()会告诉您使用VideoCapture实例是否安全?