openCV学习笔记(一)------进度条视频播放控制
来源:互联网 发布:微商做图软件有哪些 编辑:程序博客网 时间:2024/05/23 13:17
利用openCV的函数实现进度条以帧为单位来控制视频播放,进度条的滑块可随视频播放而自动滑动。代码参考自《openCV学习》
#include <opencv2\highgui.hpp>using namespace cv;int g_slider_position = 0;CvCapture* g_capture = NULL;//回调函数,实现窗口滚动条void onTrackbarSlide(int pos){ cvSetCaptureProperty( //设置视频获取属性 g_capture, //视频获取结构 CV_CAP_PROP_POS_FRAMES, //单位为帧数的位置(只对视频文件有效) pos // );}void video_test01(){ cvNamedWindow("video_test01", CV_WINDOW_AUTOSIZE); //创建窗口,窗口大小随着视频画面大小而变化 g_capture = cvCreateFileCapture("D:\\picture\\airplane.flv"); //获得视频结构体 int frames = cvGetCaptureProperty(g_capture, CV_CAP_PROP_FRAME_COUNT); //获取视频流的各种属性,CV_CAP_PROP_FRAME_COUNT获取视频文件中总的帧数 if (frames != 0) { cvCreateTrackbar( "Position", //创建滚动条的名字 "video_test01", //窗口名字,滚动条所在窗口的名字 &g_slider_position, //g_slider_position其值反应了滑块的位置,此时是滚动条创建时滑块的位置 frames, //滑块位置的最大值,最小值为0,可以理解为视频的总的帧数 onTrackbarSlide //每次滑块位置发生变化时,就会调用回调函数 ); } IplImage* frame; //图像结构体 //while loop capture & show video while (1) { frame = cvQueryFrame(g_capture); //从视频文件中抓取一帧,并返回一帧 if (!frame) break; //如果视频文件抓取结束,跳出循环 cvShowImage("video_test01", frame); cvSetTrackbarPos("Position", "video_test01", g_slider_position); //设置trackbar显示的位置 onTrackbarSlide(g_slider_position++); //可以实现滑块随着视频的播放而滚动 char c = cvWaitKey(33); if (c == 27) break; } //Release memory and destory window cvReleaseCapture(&g_capture); cvDestroyWindow("video_test01");}int main(int argc, char** argv){ video_test01(); return 0;}
效果图
注
虽然实现了进度条滑块随着视频的播放而移动,但是视频播放并不流畅,有待解决!
阅读全文
0 0
- openCV学习笔记(一)------进度条视频播放控制
- OpenCV学习笔记(3)——进度条视频播放控制
- OpenCV学习笔记(3)——进度条视频播放控制
- OpenCV学习笔记(三) 视频播放控制
- OpenCV学习笔记【3】:视频播放控制
- 【opencv学习笔记3】视频播放控制
- 【OpenCV学习笔记】1.2 播放AVI视频&视频播放控制
- opencv学习笔记(四)-视频播放控制
- opencv学习笔记(三)视频播放控制
- opencv视频学习第五课(视频播放控制)笔记整理
- opencv学习笔记(二)播放视频
- Opencv学习之--进度条控制视频
- 使用Opencv添加一个进度条来控制视频播放
- OpenCV笔记7:视频播放控制
- OpenCV(五): Opencv视频播放控制
- 学习Opencv之视频播放控制
- 【opencv的学习】播放avi视频和视频播放控制
- Opencv学习笔记——视频进度条
- 【shell】head/tail及常见用法
- 《零基础入门学习Python》学习过程笔记【017函数】
- 利用Angular2的Observables实现交互控制
- 移动端一像素边框
- Angular4示例--数据显示
- openCV学习笔记(一)------进度条视频播放控制
- bzoj P4034 [HAOI2015]树上操作
- WPF实现拖拽功能
- 第1章 初识C语言
- 【HDU 1258】Sum It Up(DFS,去重技巧)
- DNS全解析
- Redis集群搭建与简单使用
- python入门
- Codeforces Round #426 (Div. 2) A. The Useless Toy