视频跳转

#include<opencv2/opencv.hpp>
#include<opencv2/imgproc/imgproc.hpp>
#include<opencv2/highgui/highgui.hpp>
#include<iostream>
#include<fstream>
using namespace std;
int g_slider_position = 0;  //滑动条位置
//g_run为正数时,表示在视频在停止时已经播放了多少照片.g_run为负数时,表示视频连续播放
//g_run=1,视频进入单步模式(播放一帧后视频停止)
//g_run在新跳转后置0
int g_run = 1, g_dontset = 0;   //g_dontset避免在调整滑动条时触发单步模式
cv::VideoCapture g_cap; //读取视频的结构void onTrackbarSlide(int pos, void *)   //pos参数由g_slider_position传递
{g_cap.set(cv::CAP_PROP_POS_FRAMES, pos);   //将滑动条调整至第pos帧if (!g_dontset)g_run = 1;  //进入单步模式g_dontset = 0;
}
int main()
{cv::namedWindow("Example2_4", cv::WINDOW_AUTOSIZE);  //窗口名称,大小g_cap.open("~/Projects/CLionProjects/opencv_2/myvideo.mp4"); //视频所在路径assert(g_cap.isOpened());   //assert宏用来检验值,isOpened如果视频捕捉已被初始化则返回trueint frames = (int)g_cap.get(cv::CAP_PROP_FRAME_COUNT);    //视频中共多少帧int tmpw = (int)g_cap.get(cv::CAP_PROP_FRAME_WIDTH); //帧的宽度int tmph = (int)g_cap.get(cv::CAP_PROP_FRAME_HEIGHT); //帧的高度cout << "Video has " << frames << " frames of dimensions( " << tmpw << "," << tmph << ")." <<  endl;cv::createTrackbar("Position", "Example2_4", &g_slider_position, frames, onTrackbarSlide);   //创建一个名为"Position"的滑动条并连接到指定窗口"Example2_4",onTrackbarSlide中pos参数由g_slider_position传递cv::Mat frame;    //保存视频帧的结构for (;;){if (g_run != 0) {g_cap >> frame;   //读取结构g_cap读取一帧if (frame.empty()) //帧空退出循环break;int current_pos = (int)g_cap.get(cv::CAP_PROP_POS_FRAMES);   //获取当前帧的位置(鼠标点击的某一位置)g_dontset = 1;    //初始值为0,下一步调用回调函数会判断并且将g_run设置为1,就会导致进入单步模式cv::setTrackbarPos("Position", "Example2_4", current_pos); //设置滑动条到鼠标点击位置cv::imshow("Example2_4", frame);   //显示滑动条对应的当前帧g_run -= 1;}char c = (char)cv::waitKey(30);   //等待30ms继续执行程序if (c == 's'){g_run = 1; cout << "Single step,run = " << g_run << endl;}if (c == 'r'){g_run = -1; cout << "Run mode ,run= " << g_run << endl;}if (c == 27)  //ESC的ASCII码break;}return 0;
}

此图为gif图,实际情况为按r视频连续播放,按s进入单步模式

OpenCV:视频跳转相关推荐

  1. opencv视频读写和视频等间隔采样

    今天学习了opencv的HighGUI的内容 总结了两个视频读写demo以备以后进行视频处理和识别用 demo1 视频的读取和写入 按顺序读取视频的每一帧.对于读取的每一帧图像,显示在窗口中,然后转化 ...

  2. opencv视频处理和检测学习总结

    基于opencv的视频处理--基础数据结构 在一个封装的还算比较好的库中,一般都不会直接采用那些基本的数据结构像char, int 之类,一是 不具有可读性,二是不方便修改移植.通常是通过typede ...

  3. OpenCV视频加速Video acceleration的实例(附完整代码)

    OpenCV视频加速Video acceleration的实例 OpenCV视频加速Video acceleration的实例 OpenCV视频加速Video acceleration的实例 #inc ...

  4. OpenCV视频中的人脸标志检测

    OpenCV视频中的人脸标志检测 视频中的人脸标志检测 简介 命令参数说明 源代码 视频中的人脸标志检测 简介 此应用程序使您可以检测视频中检测到的面部的地标.此应用程序首先检测当前视频帧中的面部,然 ...

  5. C++编程FFMpeg实时美颜直播推流实战-基于ffmpeg,qt5,opencv视频课程-夏曹俊-专题视频课程...

    C++编程FFMpeg实时美颜直播推流实战-基于ffmpeg,qt5,opencv视频课程-11788人已学习 课程介绍         C++编程FFMpeg实时美颜直播推流实战视频培训教程,本课程 ...

  6. openCV视频操作(C++版本)

    openCV视频操作(C++版本) VideoCapture类详解 opencv的视频操作主要用到 VideoCapture类,有三个构造函数: VideoCapture::VideoCapture( ...

  7. OpenCV 视频地址和图片地址注意事项

    OpenCV 视频地址和图片地址注意事项 图片地址 视频地址 如何快速打开该目录 地址中的'\'和'/'区别 图片地址 这四行代码都表示5图片52.jpg的路径 Mat srcImage = imre ...

  8. python3 opencv 视频格式转换

    python3 opencv 视频格式转换: import cv2 #获得视频的格式 videoCapture = cv2.VideoCapture('ad3.avi') #获得码率及尺寸 fps = ...

  9. C++ OpenCV视频操作之图像输出文字

    前言 当我们视频分析时可能图像中需要有一个文字说明,OpenCV中本身也有这个API,我们就来看看OpenCV中的图像文字输出. 视频效果 函数API void putText( Mat& i ...

最新文章

  1. 高中计算机个人总结怎么写,毕业生自我总结范文
  2. 筛指定区间的素数[区间偏移二次筛法]
  3. AttributeError: module 'tensorflow' has no attribute 'random_normal'
  4. WCF 第十三章 可编程站点 使用WebGet和WebInvoke
  5. pcb二次钻孔_线路板中的二次孔是什么?线路板钻孔有哪些常见问题?
  6. Android AsyncTask 深度理解、简单封装、任务队列分析、自定义线程池
  7. linux降内核版本_ubuntu16.04降级内核版本至3.13.0-85
  8. DbVisualizer 8 解决中文乱码问题
  9. php基础教程 第十一步 面向对象补充
  10. 华为云文字识别服务产品优势、应用场景、典型案例和未来之路(OCR系列三)
  11. diff命令两个服务器文件,LINUX命令diff-文件管理-比较给定的两个文件的不同
  12. 在Sohu的最后一个作品-2011版大视野
  13. c mysql开发工具_Windows平台下Mysql C程序设计
  14. ABAQUS 转子动力学载荷
  15. 嵌入式系统——ADS和AXD的基本操作
  16. Docker - 常见操作命令篇
  17. 麒麟开源堡垒机银行行业设计方案
  18. SpringSecurity+jwt安全框架
  19. 江苏省发布大数据引领推动融合发展专项行动计划
  20. CMD/DOS学习笔记

热门文章

  1. Linux网卡驱动(3)-网卡驱动深层分析
  2. python在概率论与数理统计中的作用
  3. Python之Django 基本使用
  4. golang flow工作流引擎-自己挖坑自己填
  5. MySQL数据库备份的命令
  6. linux db2删除表字段命令,DB2—alter追加/删除/重置column操作
  7. boss直聘__zp_stoken__逆向分析2021.10版
  8. 计算机上摄氏度的符号怎么输,Word中摄氏度符号℃怎么打
  9. css ---border边框语法
  10. 神(gai)奇(si)的MIUI优化