1、第一種方法
#include "opencv2/opencv.hpp"
using namespace cv;
int main(int, char**)
{
VideoCapture cap("E:\\圖片\\視頻材料\\AVSEQ01.avi");// open the default camera
if(!cap.isOpened()) // check if we succeeded
return -1;
namedWindow("src");
for( ; ; )
{
Mat frame;
cap >> frame; // get a new frame from camera
imshow("src", frame);
if(waitKey(30) >= 0)
break;
}
return 0;
}
2、第二種方法
#include <iostream>
#include<opencv2/opencv.hpp>
using namespace std;
using namespace cv;
Mat frame; //視頻幀
int main()
{
char FilePathName[200]="E:\\圖片\\視頻材料\\AVSEQ01.avi";//視頻路徑
VideoCapture capture(FilePathName);//讀取本地視頻
if(!capture.isOpened())
{
cout<<"加載視頻失敗,請檢查文件路徑設置!"<<endl;
return -1;
}
namedWindow("原視頻");
bool stop(false);
while(!stop)
{
if (!capture.read(frame))//讀取視頻的一幀
break;
imshow("原視頻",frame);
if (waitKey(10)>=0)
stop= true;
}
waitKey();
return 0;
}
3、第三種方法
#include "opencv2/opencv.hpp"
using namespace cv;
int main(int, char**)
{
VideoCapture cap("E:\\圖片\\視頻材料\\AVSEQ01.avi");
if(!cap.isOpened()) // check if we succeeded
return -1;
namedWindow("src");
for(;;)
{
Mat frame;
cap.grab(); //從視頻文件或捕獲設備獲取下一幀
cap.retrieve(frame);//解碼並返回抓取了的視頻幀
imshow("src", frame);
if(waitKey(30) >= 0)
break;
}
return 0;
}