使用OpenCV读取视频出现错误,怎么办?

0x0000000066E5377F (opencv_ffmpeg2410_64.dll) (ConsoleApplication3.exe 中)处有未经处理的异常: 0xC0000005: 读取位置 0x0000000000000000 时发生访问冲突。
#include "highgui.h"

int main(int argc, char** argv)
{
cvNamedWindow("Example2", CV_WINDOW_AUTOSIZE);
CvCapture* capture = cvCreateFileCapture(argv[1]);
IplImage* frame;
while (1)
{
frame = cvQueryFrame(capture);
if (!frame) break;
cvShowImage("Example2", frame);
char c = cvWaitKey(33);
if (c == 27) break;
}
cvReleaseCapture(&capture);
cvDestroyWindow("Example2");
}

www说
浏览 1590回答 1
1回答

莫回无

CvCapture* capture = cvCreateFileCapture(argv[1]);表示从命令行执行函数并要输入一个参数来指定视频所在的位置及名称。出现这种错误应该是没在命令行下执行函数,导致capture 为一个空指针,后面才出现了访问NULL指针的错误。一般情况下要做出错处理检查capture是否为一个有效指针。if(!capture ){printf("loading video failed!\n");return -1;}
打开App,查看更多内容
随时随地看视频慕课网APP