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; }