【opencv学习笔记3】视频播放控制
来源:互联网 发布:微信魔音软件下载 编辑:程序博客网 时间:2024/05/11 17:39
完成视频播放功能,需要加入一个滚动条实现。
通过调用cvCreateTrackbar()来创建一个滚动条,获得所需的功能只需要提供一个回调函数。
#include <opencv2\opencv.hpp> #include <iostream> #include <string> #include<highgui.h>#include <cv.h>using namespace cv; using namespace std; //定义全局变量int g_slider_position=0;//定义滚动条位置CvCapture *g_capture=NULL;//定义avi视频的文件途径void onTrackbarSlide(int pos){cvSetCaptureProperty(//这是设置滚动条的基本参数g_capture,//视频参数CV_CAP_PROP_POS_FRAMES,//以帧数读取文件pos//这是指针位置);}int main(int argc,char **argv){cvNamedWindow("video1",CV_WINDOW_AUTOSIZE);//创建窗口g_capture=cvCreateFileCapture("bike.avi");//读取avi视频文件int frames=(int) cvGetCaptureProperty(g_capture, //capture文件名CV_CAP_PROP_FRAME_COUNT //视频帧总数);if(frames!=0){cvCreateTrackbar("position","video1",&g_slider_position,frames,onTrackbarSlide);}IplImage *frame ;while(1){frame=cvQueryFrame(g_capture);if(!frame)break;onTrackbarSlide(g_slider_position);g_slider_position++;cvShowImage("video1",frame);char c=cvWaitKey(33);if(c==27)break;}cvReleaseCapture(&g_capture);cvDestroyWindow("video1");}
若如果需要实现滚动条随着视频播放移动功能包含进来,一个最简单的方法就是把cvCreateTrackbar的代码插入到帧循环里面。可看下面的例子。
#include <opencv2\opencv.hpp> #include <iostream> #include <string> #include<highgui.h>#include <cv.h>using namespace cv; using namespace std; //定义全局变量int g_slider_position=0;//定义滚动条位置CvCapture *g_capture=NULL;//定义avi视频的文件途径void onTrackbarSlide(int pos){cvSetCaptureProperty(//这是设置滚动条的基本参数g_capture,//视频参数CV_CAP_PROP_POS_FRAMES,//以帧数读取文件pos//这是指针位置);}int main(int argc,char **argv){cvNamedWindow("video1",CV_WINDOW_AUTOSIZE);//创建窗口g_capture=cvCreateFileCapture("bike.avi");//读取avi视频文件int frames=(int) cvGetCaptureProperty(g_capture, //capture文件名CV_CAP_PROP_FRAME_COUNT //视频帧总数);if(frames!=0){cvCreateTrackbar(//创建滑动条"position","video1",&g_slider_position,//初始滑动位置frames,onTrackbarSlide);}IplImage *frame ;while(1){frame=cvQueryFrame(g_capture);if(!frame)break;onTrackbarSlide(g_slider_position);g_slider_position++;cvCreateTrackbar("position","video1",&g_slider_position,frames,onTrackbarSlide);cvShowImage("video1",frame);char c=cvWaitKey(33);if(c==27)break;}cvReleaseCapture(&g_capture);cvDestroyWindow("video1");}
0 0
- OpenCV学习笔记【3】:视频播放控制
- 【opencv学习笔记3】视频播放控制
- OpenCV学习笔记(三) 视频播放控制
- 【OpenCV学习笔记】1.2 播放AVI视频&视频播放控制
- OpenCV学习笔记(3)——进度条视频播放控制
- OpenCV学习笔记(3)——进度条视频播放控制
- opencv学习笔记(四)-视频播放控制
- opencv学习笔记(三)视频播放控制
- openCV学习笔记(一)------进度条视频播放控制
- OpenCV(3)-视频播放控制
- OpenCV笔记7:视频播放控制
- 学习Opencv之视频播放控制
- 【opencv的学习】播放avi视频和视频播放控制
- opencv 视频播放控制
- OpenCV视频播放控制
- OpenCV视频播放控制
- 【opencv】播放视频控制
- opencv:视频播放控制
- javaee学习之路(二十二)JavaMail
- Mark一下
- 细腻古典氛围 功能性经典家居设计
- JQuery 获取屏幕高度、宽度
- php 大文件下载
- 【opencv学习笔记3】视频播放控制
- WHERE语法-Medoo使用指南
- cocos 3.2 mac下环境变量配置极其小米手机连接mac
- pydev 下Django 1.7 undefined variables from import问题的解决
- java异常处理
- Windows cmd带颜色输出
- Httpclient远程调用WebService示例(Eclipse+httpclient)
- Android 自定义控件 轻松实现360软件详情页
- 输入一个链表的头结点,从尾到头反过来输出每个结点的值