目录

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++)笔记--视频读取、视频属性查看、视频循环播放相关推荐

  1. 好用的视频消重 如何查看视频md5

             好用的视频消重 如何查看视频md5          即使两年时间过去,内容层面持续打造毛毛姐.李佳琦这样的爆款网红,在社交维度上新多闪,电商层面努力孵化网红带货,抖音仍向多方出手. ...

  2. opencv 入门笔记十 图片序列保存为视频

    1.代码: 其中:视频格式设置请看这篇:opencv 入门笔记三(采集视频,保存视频)_Newjet666的博客-CSDN博客 其中:读取图片并画框请看这篇: opencv 入门笔记八 文件夹读取图片 ...

  3. opencv学习笔记4:获取图像属性

    获取形状属性 使用shape ,返回图像的 行数,列数,通道数的元祖 灰度图:返回 行数 ,列数 彩色图:返回 行数,列数,通道数 算例 灰度图 import cv2 i=cv2.imread('le ...

  4. Java学习笔记——JDBC读取properties属性文件

    Java 中的 properties 文件是一种配置文件,主要用于表达配置信息,文件类型为*.properties,格式为文本文件. 文件的内容是格式是"键=值"(key-valu ...

  5. mplayer 视频播放器_如何全屏播放视频并使它与MPlayer循环播放?

    mplayer 视频播放器 I would like to play a video file in full screen and automatically make it keep playin ...

  6. opencv基本操作二(读取视频流与保存视频、读取摄像头并保存视频)

    opencv基本操作二 要点 代码 例程一 例程二 要点 opencv常用读视频函数 cv2.VideoCapture .cv2.VideoCapture.get 等,可以参考这里 opencv常用写 ...

  7. Opencv(C++)笔记--打开摄像头、保存摄像头视频

    1--打开摄像头 关键代码语句: ① VideoCapture cam(0); ② cam.read(img); ③ imshow("cam", img); # include&l ...

  8. opencv 解析yuv_通过OpenCV读取并显示YUV视频文件

    前言 Opencv中通常是读取 avi 格式的视频文件,下面程序是直接读取 YUV格式的视频文件并显示出来. 这里需要将YUV读取出来,使用Mat格式保存再使用 cv::cvtColor() 将每帧的 ...

  9. OpenCV学习笔记(二十六)——小试SVM算法ml OpenCV学习笔记(二十七)——基于级联分类器的目标检测objdect OpenCV学习笔记(二十八)——光流法对运动目标跟踪Video Ope

    OpenCV学习笔记(二十六)--小试SVM算法ml 总感觉自己停留在码农的初级阶段,要想更上一层,就得静下心来,好好研究一下算法的东西.OpenCV作为一个计算机视觉的开源库,肯定不会只停留在数字图 ...

  10. centos连接xrdp桌面黑屏_小鹅通|视频直播桌面共享模式|视频直播OBS使用教程

    点击蓝字关注我们 视频直播-OBS使用教程 应用场景 OBS直播主要用于与学员共享桌面的教学直播场景 配合网页工具完成完整课堂直播(网页端用于评论互动,OBS用于视频推流) 一.网页端使用教程 网页端 ...

最新文章

  1. 使用MASM03 - Win32汇编语言011
  2. nginx解析php
  3. xssfsheet removerow 剩下空白行怎么处理_你看不上的农业会计!我却凭借其账务处理,过上你求之不得的生活...
  4. 太阳的光和灯光有什么区别_墙体彩绘机UV(油性)和水性墨水怎么选择?有什么区别?...
  5. 一个Json在线格式化的网站
  6. 05 MapReduce应用案例03
  7. OO模式-Composite
  8. 在Silverlight 和WPF中使用预编译指令 if..else..endif (译)
  9. linux内核模块签名,linux内核模块签名
  10. 打造个人品牌的重要性被高估了
  11. 从Source Insight到Vim
  12. 卷积神经网络如何进行图像识别的
  13. 由中国银联主导和推行的“盒子支付模式”正式推出多平台应用
  14. gcj编译java_GCJ:The GNU Compiler for the Java(让你的java程序脱离JRE),GCJ环境的配置
  15. 最强大脑《智行营救》
  16. hdu 3689 Infinite monkey theorem
  17. Kubernetes Secrets
  18. Scala关键字lazy的理解和使用
  19. 收敛交叉映射(convergent cross mapping,CCM)滥觞、2012年Science论文方法部分:Detecting Causality in Complex Ecosystems
  20. MapReduce之InputFormat、OutputFormat(三)

热门文章

  1. HihoCode 1531 : 德国心脏病
  2. 210814算法日记:归并逆序对板子快排第k个数板子第k个数的stl
  3. 笔记本html连接电视机,笔记本怎么连接电视
  4. 计算机窗口移动不了怎么办,电脑鼠标拖不动文件怎么办 电脑鼠标拖动不灵敏如何解决...
  5. 2022-2028年中国水声通信行业市场发展潜力及投资前景分析报告
  6. Java Swing 简单的登录注册窗口
  7. TerminateThread
  8. POJ2262 java
  9. python编写赛车_「世界模型」实现,一步步让机器掌握赛车和躲避火球的技能
  10. 端口开放,ubuntu开放指定端口 包括TCP UDP