#include <stdlib.h>
#include <iostream>
#include<opencv2/opencv.hpp>
#include <opencv2/highgui/highgui.hpp>
using namespace std;
using namespace cv;
#include<time.h>
int main(int argc, char** argv)
{
// Start default camera
VideoCapture video(1);
//设置读取视频的分辨率
video.set(CV_CAP_PROP_FRAME_WIDTH,1920);
video.set(CV_CAP_PROP_FRAME_HEIGHT,1080);
//设置读取视频的格式
video.set(CV_CAP_PROP_FOURCC,CV_FOURCC('M','J','P','G'));
// With webcam get(CV_CAP_PROP_FPS) does not work.
// Let's see for ourselves.
double fps = video.get(CV_CAP_PROP_FPS);//利用函数得到的视频帧率
// If you do not care about backward compatibility
// You can use the following instead for OpenCV 3
// double fps = video.get(CAP_PROP_FPS);
cout << "Frames per second using video.get(CV_CAP_PROP_FPS) : " << fps << endl;
// Number of frames to capture
int num_frames = 120;
// Start and end times
time_t start, end;
// Variable for storing video frames
Mat frame;
cout << "Capturing " << num_frames << " frames" << endl ;
// Start time
time(&start);
// Grab a few frames
for(int i = 0; i < num_frames; i++)
{
video >> frame;
}
// End Time
time(&end);
// Time elapsed
double seconds = difftime (end, start);//读取120帧数据所需要的时间
cout << "Time taken : " << seconds << " seconds" << endl;
// Calculate frames per second
fps = num_frames / seconds;//进行帧率计算
cout << "Estimated frames per second : " << fps << endl;
// Release video
video.release();
return 0;
}