我试图使用opencv
播放视频(视频是存储在磁盘上的avi文件)。然而,程序停止以下行执行的cap_ffmppeg.cpp
:如何使用opencv播放视频?
if(!ffmpegCapture ||
!icvRetrieveFrame_FFMPEG_p(ffmpegCapture,&data,&step,&width,&height,&cn))
return 0;
的错误是:Access violation reading location
...所以赛格故障发生第一次capture >> frame
运行。
下面是程序:
#include<iostream>
#include<fstream>
#include<cv.h>
#include<highgui.h>
#include<opencv2/nonfree/features2d.hpp>
using namespace std;
using namespace cv;
int main(int argc, char *argv[])
{
if (argc <= 1)
{
printf("Usage: %s video\n", argv[0]);
return -1;
}
VideoCapture capture(argv[1]);
if(!capture.isOpened())
{
printf("Failed to open the video\n");
return -1;
}
for(;;)
{
Mat frame;
capture >> frame; // get a new frame from camera
}
return 0;
}
任何想法,我做错了吗?
'cv :: VideoCapture'需要构造器中的字符串,但是您使用的是字符数组。我不确定这是否有效。 你还试过一个绝对路径到你的文件? –
将其更改为'VideoCapture capture(“C:\\ video.avi”);'但问题仍然存在......' – zoran119
好吧,如果'isOpened'检查通过,则访问文件不应该是问题。你有没有尝试过不同的文件? –