【拜小白opencv】18-使用VideoCapture类读取播放视频操作--多信息版
来源:互联网 发布:专业淘宝食品图片拍摄 编辑:程序博客网 时间:2024/05/16 01:58
常言道“温故而知新”,写此文章就是对自己目前学习内容的小小的总结与记录。
本文力求用最简洁的语言,详细的代码将此部分内容讲解清楚,但由于博主同样是刚刚接触OpenCV,或许表达上有些瑕疵,还望读者能够指教探讨,大家共同进步。
博主机器配置为:VS2013+opencv2.4.13+Win-64bit。
若本文能给读者带来一点点启示与帮助,我就很开心了。
===========================分割线========================
上一节仅仅是个简洁版的读取视频文件程序,本节将会显示出视频帧的尺寸,帧数、帧率等方法。
======================分割线==================
演示代码
/*使用VideoCapture类读取播放视频操作--多信息版*/#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(){//-------------【1】读取视频文件-------------VideoCapture capture;capture.open("D:\\OutPutResult\\ImageTest\\tt.mp4");//方式二:VideoCapture capture("D:\\OutPutResult\\ImageTest\\tt.mp4");//-------------【2】判断视频读取是否正确-------------if (!capture.isOpened()){cout << "打开视频文件失败,请重新输入正确路径!" << endl;system("pause");return -1;}//-------------【3】获取视频相关信息-------------//获取视频相关信息——帧数long nTotalFrame = capture.get(CV_CAP_PROP_FRAME_COUNT);cout << "帧数 = " << nTotalFrame << endl;//获取视频相关信息——帧像素宽/高int frameHeight = capture.get(CV_CAP_PROP_FRAME_HEIGHT);int frameWidth = capture.get(CV_CAP_PROP_FRAME_WIDTH);cout << "帧像素高 = " << frameHeight << endl;cout << "帧像素宽 = " << frameWidth << endl;//获取视频相关信息——帧率double FrameRate = capture.get(CV_CAP_PROP_FPS);cout << "帧率 = " << FrameRate << endl;//--------------【4】循环显示每一帧---------------long nCount = 1;//计数,当前帧号while (true){//输出当前帧号cout << "当前帧号: " << nCount << endl;Mat frameImg;//定义一个Mat变量,用于存储每一帧的图像capture >> frameImg;//判断当前读取文件if (frameImg.empty()){break;}imshow("读取视频", frameImg);//显示当前帧//按下键盘上Q或q键退出if (char(waitKey(40)) == 'q' || char(waitKey(40)) == 'Q') //每帧画面存在40ms,即1秒25帧{break;}nCount++;}//视频释放capture.release();return 0;}
===========================分割线=======================
显示结果
==============================分割线====================
程序说明
本节在上一节的基础上,增加了获取视频相关信息的部分。可以得到帧数、帧像素高/宽、帧率。
同时可以实时显示当前帧号,还增加了随时可以退出视频的按键“Q”。
======================END========================
阅读全文
0 0
- 【拜小白opencv】18-使用VideoCapture类读取播放视频操作--多信息版
- 【拜小白opencv】17-使用VideoCapture类读取播放视频操作--简洁版
- OpenCV:使用VideoCapture类进行读取视频
- OpenCV:使用VideoCapture类进行视频读取和显示
- OpenCV:使用VideoCapture类进行视频读取和显示
- OpenCV:使用VideoCapture类进行视频读取和显示-Mat
- OpenCV:使用VideoCapture类进行视频读取和显示
- opencv视频操作基础---VideoCapture类
- opencv videocapture无法读取视频
- 【OpenCV开发】OpenCV:使用VideoCapture类进行视频读取和显示
- OpenCv学习笔记(五):使用VideoCapture类函数实现视频的播放
- Python Opencv videoCapture 视频读取失败解决办法
- opencv 2.4.13 videoCapture无法读取视频
- OpenCV VideoCapture类使用
- 利用OpenCV的VideoCapture类实现视频/摄像头读操作
- opencv使用VideoCapture无法打开视频
- VideoCapture 读取视频文件,显示视频(帧)信息
- OpenCV关于视频处理的学习(VideoCapture类)-在检测中一些必要的图像操作
- JQuery Ajax
- javaAPI使用kafka0.11,生产者与消费者
- “筋斗云”小案例
- python--string模块
- 连续子数组的最大值C++
- 【拜小白opencv】18-使用VideoCapture类读取播放视频操作--多信息版
- 深入理解linux内核-ch02
- java实现二叉树及(层序,先序,中序,后序,节点查找)
- java Collection 集合
- iOS的SVN问题
- ES6中新增数组方法与ES5之间的区别
- uva 679 小球下落
- 递归实现二叉树
- python scrapy爬虫爬取图片简易方法,使用Images模块