Opencv(C++)笔记--视频读取、视频属性查看、视频循环播放
目录
1--视频读取代码
2--视频属性查看
3--视频循环播放代码
1--视频读取代码
# include<opencv2/opencv.hpp>
# include<cstdio>
using namespace cv;
using namespace std;int main(int argc, char *argv[]){VideoCapture video;video.open("test.avi"); // 打开视频if (!video.isOpened()){ // 打开失败cout << "open video failed !" << endl;return -1;}cout << "open video success !" << endl;namedWindow("video");Mat frame;for (;;){// 单步处理/*if (!video.read(frame)){break;}*/// if (frame.empty()) break;// 分步// 读帧,解码if (!video.grab()){break;}//转换颜色格式if (!video.retrieve(frame)){break;}imshow("video", frame);waitKey(5); }getchar();return 0;
}
2--视频属性查看
①帧率fps:每秒播放的帧数
②视频总帧数
③视频时长:视频总帧数 / 帧率
# include<opencv2/opencv.hpp>
# include<cstdio>
using namespace cv;
using namespace std;int main(int argc, char *argv[]){VideoCapture video;video.open("test.avi");if (!video.isOpened()){cout << "open video failed !" << endl;return -1;}cout << "open video success !" << endl;namedWindow("video");Mat frame;int fps = video.get(CAP_PROP_FPS);int fcount = video.get(CAP_PROP_FRAME_COUNT);int s = 30;if (fps != 0){s = 1000 / fps;}// s = s / 2; // 2倍速cout << "fps is " << fps << endl; // fpscout << "total frame is " << fcount << endl; // frame_countcout << "total time is " << float(fcount) / float(fps) << " s" << endl; // time for (;;){if (!video.read(frame)){break;}imshow("video", frame);waitKey(s); }getchar();return 0;
}
3--视频循环播放代码
通过改变当前帧索引的数值,来达到视频循环播放的功能;
# include<opencv2/opencv.hpp>
# include<cstdio>
using namespace cv;
using namespace std;int main(int argc, char *argv[]){VideoCapture video;video.open("test.avi");if (!video.isOpened()){cout << "open video failed !" << endl;return -1;}cout << "open video success !" << endl;namedWindow("video");Mat frame;for (;;){if (!video.read(frame)){break;}int cur = video.get(CAP_PROP_POS_FRAMES); // 当前帧// 当前帧索引大于50后,重新播放if (cur > 50){ video.set(CAP_PROP_POS_FRAMES, 0); // 设置当前帧为0, 循环播放continue;} imshow("video", frame);waitKey(5); }getchar();return 0;
}
Opencv(C++)笔记--视频读取、视频属性查看、视频循环播放相关推荐
- 好用的视频消重 如何查看视频md5
好用的视频消重 如何查看视频md5 即使两年时间过去,内容层面持续打造毛毛姐.李佳琦这样的爆款网红,在社交维度上新多闪,电商层面努力孵化网红带货,抖音仍向多方出手. ...
- opencv 入门笔记十 图片序列保存为视频
1.代码: 其中:视频格式设置请看这篇:opencv 入门笔记三(采集视频,保存视频)_Newjet666的博客-CSDN博客 其中:读取图片并画框请看这篇: opencv 入门笔记八 文件夹读取图片 ...
- opencv学习笔记4:获取图像属性
获取形状属性 使用shape ,返回图像的 行数,列数,通道数的元祖 灰度图:返回 行数 ,列数 彩色图:返回 行数,列数,通道数 算例 灰度图 import cv2 i=cv2.imread('le ...
- Java学习笔记——JDBC读取properties属性文件
Java 中的 properties 文件是一种配置文件,主要用于表达配置信息,文件类型为*.properties,格式为文本文件. 文件的内容是格式是"键=值"(key-valu ...
- mplayer 视频播放器_如何全屏播放视频并使它与MPlayer循环播放?
mplayer 视频播放器 I would like to play a video file in full screen and automatically make it keep playin ...
- opencv基本操作二(读取视频流与保存视频、读取摄像头并保存视频)
opencv基本操作二 要点 代码 例程一 例程二 要点 opencv常用读视频函数 cv2.VideoCapture .cv2.VideoCapture.get 等,可以参考这里 opencv常用写 ...
- Opencv(C++)笔记--打开摄像头、保存摄像头视频
1--打开摄像头 关键代码语句: ① VideoCapture cam(0); ② cam.read(img); ③ imshow("cam", img); # include&l ...
- opencv 解析yuv_通过OpenCV读取并显示YUV视频文件
前言 Opencv中通常是读取 avi 格式的视频文件,下面程序是直接读取 YUV格式的视频文件并显示出来. 这里需要将YUV读取出来,使用Mat格式保存再使用 cv::cvtColor() 将每帧的 ...
- OpenCV学习笔记(二十六)——小试SVM算法ml OpenCV学习笔记(二十七)——基于级联分类器的目标检测objdect OpenCV学习笔记(二十八)——光流法对运动目标跟踪Video Ope
OpenCV学习笔记(二十六)--小试SVM算法ml 总感觉自己停留在码农的初级阶段,要想更上一层,就得静下心来,好好研究一下算法的东西.OpenCV作为一个计算机视觉的开源库,肯定不会只停留在数字图 ...
- centos连接xrdp桌面黑屏_小鹅通|视频直播桌面共享模式|视频直播OBS使用教程
点击蓝字关注我们 视频直播-OBS使用教程 应用场景 OBS直播主要用于与学员共享桌面的教学直播场景 配合网页工具完成完整课堂直播(网页端用于评论互动,OBS用于视频推流) 一.网页端使用教程 网页端 ...
最新文章
- 使用MASM03 - Win32汇编语言011
- nginx解析php
- xssfsheet removerow 剩下空白行怎么处理_你看不上的农业会计!我却凭借其账务处理,过上你求之不得的生活...
- 太阳的光和灯光有什么区别_墙体彩绘机UV(油性)和水性墨水怎么选择?有什么区别?...
- 一个Json在线格式化的网站
- 05 MapReduce应用案例03
- OO模式-Composite
- 在Silverlight 和WPF中使用预编译指令 if..else..endif (译)
- linux内核模块签名,linux内核模块签名
- 打造个人品牌的重要性被高估了
- 从Source Insight到Vim
- 卷积神经网络如何进行图像识别的
- 由中国银联主导和推行的“盒子支付模式”正式推出多平台应用
- gcj编译java_GCJ:The GNU Compiler for the Java(让你的java程序脱离JRE),GCJ环境的配置
- 最强大脑《智行营救》
- hdu 3689 Infinite monkey theorem
- Kubernetes Secrets
- Scala关键字lazy的理解和使用
- 收敛交叉映射(convergent cross mapping,CCM)滥觞、2012年Science论文方法部分:Detecting Causality in Complex Ecosystems
- MapReduce之InputFormat、OutputFormat(三)
热门文章
- HihoCode 1531 : 德国心脏病
- 210814算法日记:归并逆序对板子快排第k个数板子第k个数的stl
- 笔记本html连接电视机,笔记本怎么连接电视
- 计算机窗口移动不了怎么办,电脑鼠标拖不动文件怎么办 电脑鼠标拖动不灵敏如何解决...
- 2022-2028年中国水声通信行业市场发展潜力及投资前景分析报告
- Java Swing 简单的登录注册窗口
- TerminateThread
- POJ2262 java
- python编写赛车_「世界模型」实现,一步步让机器掌握赛车和躲避火球的技能
- 端口开放,ubuntu开放指定端口 包括TCP UDP