有了视频进度条就可以认为是一个简单的视频播放器,关键是读取视频播放到的位置和设置进度滑块的位置。

#include "stdio.h"
#include "highgui.h"
#include "cv.h"
int g_slider_position=0;
CvCapture *g_capture;
//创建滑块响应函数
void onTrackbarSlide(int pos)
{cvSetCaptureProperty(g_capture,CV_CAP_PROP_POS_FRAMES,pos);//设置视频获取属性,但这种方法的定位并不准确,int cvSetCaptureProperty( CvCapture* capture, int property_id, double value )//property_id 属性标识符。可以是下面之一://CV_CAP_PROP_POS_MSEC - 从文件开始的位置,单位为毫秒//CV_CAP_PROP_POS_FRAMES - 单位为帧数的位置(只对视频文件有效)//CV_CAP_PROP_POS_AVI_RATIO - 视频文件的相对位置(0 - 影片的开始,1 - 影片的结尾)//CV_CAP_PROP_FRAME_WIDTH - 视频流的帧宽度(只对摄像头有效)//CV_CAP_PROP_FRAME_HEIGHT - 视频流的帧高度(只对摄像头有效)//CV_CAP_PROP_FPS - 帧率(只对摄像头有效)//CV_CAP_PROP_FOURCC - 表示codec的四个字符(只对摄像头有效)//value是属性的值
};
int main(int argc, char* argv[])
{cvNamedWindow("VedioShow",CV_WINDOW_AUTOSIZE);g_capture=cvCreateFileCapture("1.avi");int frames=(int)cvGetCaptureProperty(g_capture,CV_CAP_PROP_FRAME_COUNT);//获取视频属性 double cvGetCaptureProperty( CvCapture* capture, int property_id )//property_id 属性标识。可以是下面之一://CV_CAP_PROP_POS_MSEC - 影片目前位置,为毫秒数或者视频获取时间戳//CV_CAP_PROP_POS_FRAMES - 将被下一步解压/获取的帧索引,以0为起点//CV_CAP_PROP_POS_AVI_RATIO - 视频文件的相对位置(0 - 影片的开始,1 - 影片的结尾)//CV_CAP_PROP_FRAME_WIDTH - 视频流中的帧宽度//CV_CAP_PROP_FRAME_HEIGHT - 视频流中的帧高度//CV_CAP_PROP_FPS - 帧率//CV_CAP_PROP_FOURCC - 表示codec的四个字符//CV_CAP_PROP_FRAME_COUNT - 视频文件中帧的总数if(frames!=0){cvCreateTrackbar("Position","VedioShow",&g_slider_position,frames,onTrackbarSlide);//int cvCreateTrackbar( const char* trackbar_name, const char* window_name, int* value, int count, CvTrackbarCallback on_change );/*   参数:trackbar_name 被创建的trackbar名字。window_name 窗口名字,这个窗口将为被创建trackbar的父对象。value 整数指针,它的值将反映滑块的位置。这个变量指定创建时的滑块位置。count 滑块位置的最大值。最小值一直是0。on_change 每次滑块位置被改变的时候,被调用函数的指针。这个函数应该被声明为void Foo(int); 如果没有回调函数,这个值可以设为NULL。*/}IplImage *frame;while(1){frame=cvQueryFrame(g_capture);if(!frame){break;}cvShowImage("VedioShow",frame);frames=(int)cvGetCaptureProperty(g_capture,CV_CAP_PROP_POS_FRAMES);//获取当前的帧序列号cvSetTrackbarPos("Position","VedioShow",frames);//    设定滑块位置//cvSetTrackbarPos("进度条名","窗口名",pos)//pos是int型char c=cvWaitKey(33);//ASC||码27是ESC退出if(c==27){break;}}cvReleaseCapture(&g_capture);cvDestroyWindow("VedioShow");return 0;
}

Opencv学习笔记——视频进度条相关推荐

  1. Android学习笔记(24):进度条组件ProgressBar及其子类

    ProgressBar作为进度条组件使用,它还派生了SeekBar(拖动条)和RatingBar(星级评分条). ProgressBar支持的XML属性: Attribute Name Related ...

  2. Android拖动进度条画面随动,Android学习笔记(24):进度条组件ProgressBar及其子类

    ProgressBar作为进度条组件使用,它还派生了SeekBar(拖动条)和RatingBar(星级评分条). ProgressBar支持的XML属性: Attribute Name Related ...

  3. 【opencv学习笔记八】创建TrackBar轨迹条

    createTrackbar这个函数我们以后会经常用到,它创建一个可以调整数值的轨迹条,并将轨迹条附加到指定的窗口上,使用起来很方便.首先大家要记住,它往往会和一个回调函数配合起来使用.先看下他的函数 ...

  4. OpenCV学习笔记(二十一)——绘图函数core OpenCV学习笔记(二十二)——粒子滤波跟踪方法 OpenCV学习笔记(二十三)——OpenCV的GUI之凤凰涅槃Qt OpenCV学习笔记(二十

    OpenCV学习笔记(二十一)--绘图函数core 在图像中,我们经常想要在图像中做一些标识记号,这就需要绘图函数.OpenCV虽然没有太优秀的GUI,但在绘图方面还是做得很完整的.这里就介绍一下相关 ...

  5. OpenCV学习笔记(五十一)——imge stitching图像拼接stitching OpenCV学习笔记(五十二)——号外:OpenCV 2.4.1 又出来了。。。。。 OpenCV学习笔记(五

    OpenCV学习笔记(五十一)--imge stitching图像拼接stitching stitching是OpenCV2.4.0一个新模块,功能是实现图像拼接,所有的相关函数都被封装在Stitch ...

  6. opencv学习笔记01

    原创博文地址:opencv学习笔记01 学习目标 1,opencv能做什么,不能做什么 2,阅读代码,知道某种func后图片怎么样了 3,在图片相关机器学习算法预处理阶段,希望通过对图片的简单处理,达 ...

  7. C++下opencv学习笔记(一)(图像的简单读取丶显示与存储)

    C++下opencv学习笔记(一)(图像的简单读取丶显示与存储) 前言 学习C++ OpenCV,第一需要具备面向对象语言的基础,第二要对图像处理机器学习有基础了解,容易入门.觉得自己基础已经有了可以 ...

  8. 某人写的openCV学习笔记

    原文地址:某人写的openCV学习笔记作者:拔剑 http://blog.csdn.net/thefutureisour 我的OpenCV学习笔记(25):c++版本的高斯混合模型的源代码完全注释 之 ...

  9. 某人写的openCV学习笔记_拔剑-浆糊的传说_新浪博客

    http://blog.csdn.net/thefutureisour 我的OpenCV学习笔记(25):c++版本的高斯混合模型的源代码完全注释 之前看到过C版本的,感觉写的很长,没有仔细看,但是C ...

最新文章

  1. linux 卸载 rtx,Ubuntu20.04系统卸载软件及清理系统垃圾缓存以及新力得
  2. 金蝶清空日志数据库脚本
  3. 单链表C/C++实现(数据结构严蔚敏)
  4. windows下primer3-py安装
  5. Atitit fms Strait (海峡) lst 数据列表目录1. 4大洋 12. 著名的海大约40个,总共约55个海 13. 海区列表 23.1. 、波利尼西亚(Polynesia,
  6. 爬虫python淘宝_python爬虫爬取淘宝失败原因分析
  7. 金融类openapi
  8. 中国手机企业库存高达6000万,市场正常后或大规模降价促销
  9. 为chrome浏览器单独设置代理服务器
  10. 转贴:关于克尔凯郭尔
  11. win10浏览器闪退_win10 edge浏览器闪退打不开的恢复方法
  12. java梅森素数计算程序_梅森素数计算器(prime95)
  13. be seen doing和be seen to do的区别
  14. 微信X5调试,可以在谷歌浏览器调试
  15. aiku基于mini2440下裸机程序开发《概述与SDRAM运行》
  16. 好男人就是好色的男人
  17. 自制WordPress响应式主题-9IPHP 上线了~~
  18. Wallace树乘法器
  19. 餐厅小票打印模板_快麦打印机教程 | 如何用手机控制DP358外卖小票机?
  20. napa与matlab,〖NAPA 北美摄影 - 观点与技巧〗- 不同人种肤色的调整

热门文章

  1. mysql类似于excel的删除重复项_删除重复数据 excel去除重复数据 怎么筛选重复数据 excel重复数据合并...
  2. 读《春秋》有感之十四:吴王寿梦
  3. Mac搜不到wifi
  4. [SDOI2012]拯救小云公主
  5. 【What if 系列】全球雪封
  6. 斩获技术向善奖,云开发上榜 2020 中国技术品牌影响力企业
  7. 我和极客时间合作了一门产品创新课
  8. 2021-06-04 Java对象在Hibernate下的4种状态和Session相关方法以及对象识别
  9. 加速代理游戏,让指定进程走代理网络,驱动级SOCKS5代理使用方法。
  10. Linux如何卸载slurm,在Ubuntu 16.04桌面上安装/模拟SLURM:slurmd无法启动