OpenCV学习笔记(3)——进度条视频播放控制
2016-06-30 14:34
579 查看
这里用一个进度条控制视频的播放快慢,以帧为单位控制进度条。
代码如下:
视频控制结果如图所示:
代码如下:
#include "opencv/cv.h" #include "opencv/highgui.h" int g_slider_position = 0;//滚动条的位置变量 CvCapture* g_capture = NULL;//视频文件结构体 void onTrackbarSlider(int pos)//回调函数 { cvSetCaptureProperty(//cvGetCaptureProperty设置CvCapture对象的各种属性。 g_capture, CV_CAP_PROP_POS_FRAMES,//以帧数设置读入的位置,将FRAMES替换为AVIRATIO则可以通过视频长度设置读入的位置 pos ); } int main( int argc, char** argv ) { cvNamedWindow( "Pirate", 0);//创建窗口 g_capture = cvCreateFileCapture( argv[1] );//获取视频结构体 int frames = (int) cvGetCaptureProperty( //获取视频文件的总帧数 g_capture, CV_CAP_PROP_FRAME_COUNT ); if( frames!= 0 ) { cvCreateTrackbar( "Position", //滚动条的名字 "Pirate", //滚动条所属的窗口的名字 &g_slider_position, //绑定滚动条的位置变量 frames, //总帧数 onTrackbarSlider //回调函数 ); } IplImage* frame;//图像结构体 // While loop (as in Example 2) capture & show video while(1){ frame = cvQueryFrame(g_capture); if(!frame)break; cvShowImage("Pirate",frame); cvSetTrackbarPos( "Position", "Pirate", g_slider_position++);//设置进度条的位置 char c = cvWaitKey(5); if(c == 27)break; } // Release memory and destroy window cvReleaseCapture(&g_capture); cvDestroyWindow("Pirate"); return(0); }
视频控制结果如图所示:
相关文章推荐
- Hadoop集群搭建之SSH无密码登录配置
- 用户空间的驱动程序
- 查看Linux系统状态的常用命令
- linux系统生产者-消费者,读者-写者,哲学家就餐 C语言实现
- Linux Vsftpd 连接超时解决方法
- nginx root alias 区别
- Resolving “nf_conntrack: table full, dropping packet.” flood message in dmesg Linux kernel log
- Linux 文件内容查看命令
- Ubuntu下LAMP环境配置教程(linux)
- PhotoShop
- Linux命令积累_find
- PHP识别电脑还是手机访问网站
- 系统 day67 Linux入门
- ubuntu线程的属性PTHREAD_CREATE_JOINABL和PTHREAD_CREATE_DETACHED
- PowerShell 将powershell脚本转换成exe
- openssl的证书链验证
- nginx内置变量详解
- kill cmd and linux
- Ecshop 学习之路一 2016年6月30日
- petalinux+usb wifi+驱动安装+工具使用(一/二)