#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc/imgproc.hpp>
#include <iostream>
using namespace std;
using namespace cv;
int main()
{
// 定义相关VideoCapture对象
VideoCapture capture;
// 读取视频文件
capture.open("..\\images\\car.avi");
// 判断视频流读取是否正确
if(!capture.isOpened())
{
std::cout << "fail to open video!" << std::endl;
return -1;
}
// 获取视频相关信息-帧数
long nTotalFrame = capture.get(CV_CAP_PROP_FRAME_COUNT);
std:: cout << "nTotalFrame = " << nTotalFrame << std::endl;
// 获取视频相关信息-帧像素宽高
int frameHeight= capture.get(CV_CAP_PROP_FRAME_HEIGHT);
int frameWidth = capture.get(CV_CAP_PROP_FRAME_WIDTH);
std::cout << "frameHeight = " << frameHeight << std::endl;
std::cout << "frameWidth = " << frameWidth << std::endl;
// 获取视频相关信息-帧率
double FrameRate = capture.get(CV_CAP_PROP_FPS);
std::cout<< "FrameRate = " << FrameRate << std::endl;
cv::Mat frameImg;
// read方法获取显示帧
long nCount = 1;
while (true)
{
std::cout << " Current frame: " << nCount << std::endl;
capture >> frameImg;
// 判断当前读取文件
if (!frameImg.empty())
{
imshow("frameImg", frameImg);
}else
{
break;
}
// 按下键盘上q键退出
if (char(waitKey(1)) == 'q')
{
break;
}
nCount++;
}
// 视频释放
capture.release();
return 0;}
--------------------- 本文来自 龚慧林 的优快云 博客 ,全文地址请点击:https://blog.youkuaiyun.com/gone_huilin/article/details/53222288?utm_source=copy
本文介绍如何使用OpenCV库在C++中读取并播放视频文件。通过定义VideoCapture对象,打开指定路径的视频文件,检查视频流是否正确读取。获取视频的总帧数、帧尺寸及帧率等信息,并使用循环读取每一帧进行显示,直至用户按下'q'键退出。
3614

被折叠的 条评论
为什么被折叠?



