获取视频、相机属性
- CAP_PROP_FPS 帧率:一秒钟有多少福图像
- CAP_PROP_FRAME_COUNT: 总帧数,视屏时常:总帧数/帧率
- CAP_PROP_POS_FRAMES: 播放帧的位置
- CAP_PROP_FRAME_WIDTH HEIGHT 帧的宽度和高度
#include<iostream>
#include<stdio.h>
#include <opencv2/core.hpp>
#include <opencv2/imgcodecs.hpp>
#include <opencv2/highgui.hpp>
#include <opencv2/imgproc.hpp>
#include <opencv2/videoio.hpp>
using namespace cv;
using namespace std;
int main(int argc, char *argv)
{
VideoCapture video;
video.open("2.mp4");
if (!video.isOpened())
{
cout << "open video failed!" << endl;
getchar();
return -1;
}
cout << "open video success!" << endl;
namedWindow("video");
Mat frame;
int fps = video.get(CAP_PROP_FPS);
int s = 30;
if (fps!=0)
s = 1000 / fps;
cout << "Fps is " << fps << endl;
int fcount = video.get(CAP_PROP_FRAME_COUNT);
cout << "The number of total frame is " << fcount << endl;
cout << "total sec is " << fcount / fps << endl;
s = s / 2;
for (;;)
{
video.read(frame);
if (frame.empty()) break;
imshow("video", frame);
waitKey(s);
}
getchar();
return 0;
}
#include<iostream>
#include<stdio.h>
#include <opencv2/core.hpp>
#include <opencv2/imgcodecs.hpp>
#include <opencv2/highgui.hpp>
#include <opencv2/imgproc.hpp>
#include <opencv2/videoio.hpp>
using namespace cv;
using namespace std;
int main(int argc, char *argv)
{
VideoCapture video;
video.open("2.mp4");
if (!video.isOpened())
{
cout << "open video failed!" << endl;
getchar();
return -1;
}
cout << "open video success!" << endl;
namedWindow("video");
Mat frame;
for (;;)
{
video.read(frame);
if (frame.empty()) break;
int cur = video.get(CAP_PROP_POS_FRAMES);
if (cur > 90)
{
video.set(CAP_PROP_POS_FRAMES, 0);
continue;
}
imshow("video", frame);
waitKey(30);
}
getchar();
return 0;
}