常用的两种读取视频帧的方法:
//方法一(首选):
Mat frame;
CvCapture *capture = 0;
capture = cvCaptureFromAVI("6.avi");
if (!capture)
{
std::cerr << "Cannot initialize video!" << std::endl;
return -1;
}
while (1)
{
/****读取一帧图像****/
frame = cvQueryFrame(capture);
if (frame.empty())
{
return -1;
}
.....
}
//使用文件的形式读取视频(很常用)
char *FileName = "video.avi";
capture = cvCaptureFromAVI(FileName);
//方法二:
Mat frame;
VideoCapture capture("6.avi");
while (1)
{
capture >> frame;
if (frame.empty())
{
capture.set(CV_CAP_PROP_POS_FRAMES, 0);
return -1;
}
}
string film="video.avi";
VideoCapture capture(film);
//读取视频和摄像头的两种方式
CvCapture* capture=0;
capture = cvCaptureFromAVI("vid.wmv");
capture = cvCaptureFromCAM(0);
VideoCapture capture("6.avi");
capture >> frame;
VideoCapture capture(0);
capture>> Image;
下面附一个实例:点击打开链接