问题遇到的现象和发生背景
c++版的opencv在调用摄像头时,在capture >> frame;处报异常,不过读取视频时,没问题
问题相关代码,请勿粘贴截图
#include <opencv2/opencv.hpp>
#include <iostream>
using namespace cv;
using namespace std;
int main()
{
//"E:/openCV/AlearnOpenCV4-master/data/box.mp4"
VideoCapture capture(0);
if (!capture.isOpened())
{
cout << "no data" << endl;
return -1;
}
else
{
cout << "have data" << endl;
}
while (true)
{
Mat frame;
capture >> frame; //出现异常,读取时发生访问冲突
if (frame.empty())
{
cout << "No data." << endl;
return false;
}
imshow("读取视频", frame);
waitKey(50); //延时30
}
return 0;
}
运行结果及报错内容
0x000007FEBBB0E665 (opencv_world440d.dll)处(位于 opencv4_test.exe 中)引发的异常: 0xC0000005: 读取位置 0x00000000023C4000 时发生访问冲突。
我的解答思路和尝试过的方法
我想要达到的结果
成功调用