OpenCV播放视频 加随视频播放自动滚动的滚动条
2012-06-05 10:05
281 查看
现在工程环境下配置好参数,再如下面代码
#include "stdafx.h"
// CV模块中包含了图像处理、图像结构分析,运动描述和跟踪,模式识别和摄像机标定
#include"cv.h"
//包含了图像和视频的输入/ 输出
#include "highgui.h"
// 用来标定滚动条当前的位置
int g_Pos = 0;
// 将打开的视频文件作为一个全局变量使用
CvCapture* g_Capture = NULL;
// 当拖动滚动条后,会回调这个函数
// 同时会将当前滚动条的位置以32位形式传递过来
void CallBackTrackBarSlide(int pos)
{
// 这里便是重新设定视频文件当前播放的帧
cvSetCaptureProperty(g_Capture,CV_CAP_PROP_POS_FRAMES,pos);
g_Pos = pos;
}
int main(int argc, char** argv)
{
// 建立一个名字加vedio的窗体
cvNamedWindow("vedio",CV_WINDOW_AUTOSIZE);
// 根据参数打开指定的视频文件
g_Capture = cvCreateFileCapture("vedio.avi");
// 获得总的帧数
int totalFrames =
(int)cvGetCaptureProperty(g_Capture,CV_CAP_PROP_FRAME_COUNT);
if(totalFrames != 0)
{
//创建滚动条,在这里指定了滚动条拖动后的回调函数
cvCreateTrackbar("TrackBar","vedio",
&g_Pos,totalFrames,CallBackTrackBarSlide);
}
IplImage* frame;
// 循环地顺序遍历所有的帧
while(1)
{
// 获取当前帧的下一个帧,并将其加载到内存中
frame = cvQueryFrame(g_Capture);
if(!frame)
{
break;
}
cvShowImage("vedio",frame);
char chKeyCode = cvWaitKey(30);
if(chKeyCode == 27)
{
break;
}
g_Pos++;
// 当播放完200个帧的时候才触发滚动条滚动
/*if(g_Pos%200 == 0)
{
cvSetTrackbarPos("TrackBar","vedio",g_Pos);
}
*/
// 每播放一个帧便触发滚动条滚动
cvSetTrackbarPos("TrackBar","vedio",g_Pos);
}
cvReleaseCapture(&g_Capture);
cvDestroyWindow("vedio");
return 0;
}
#include "stdafx.h"
// CV模块中包含了图像处理、图像结构分析,运动描述和跟踪,模式识别和摄像机标定
#include"cv.h"
//包含了图像和视频的输入/ 输出
#include "highgui.h"
// 用来标定滚动条当前的位置
int g_Pos = 0;
// 将打开的视频文件作为一个全局变量使用
CvCapture* g_Capture = NULL;
// 当拖动滚动条后,会回调这个函数
// 同时会将当前滚动条的位置以32位形式传递过来
void CallBackTrackBarSlide(int pos)
{
// 这里便是重新设定视频文件当前播放的帧
cvSetCaptureProperty(g_Capture,CV_CAP_PROP_POS_FRAMES,pos);
g_Pos = pos;
}
int main(int argc, char** argv)
{
// 建立一个名字加vedio的窗体
cvNamedWindow("vedio",CV_WINDOW_AUTOSIZE);
// 根据参数打开指定的视频文件
g_Capture = cvCreateFileCapture("vedio.avi");
// 获得总的帧数
int totalFrames =
(int)cvGetCaptureProperty(g_Capture,CV_CAP_PROP_FRAME_COUNT);
if(totalFrames != 0)
{
//创建滚动条,在这里指定了滚动条拖动后的回调函数
cvCreateTrackbar("TrackBar","vedio",
&g_Pos,totalFrames,CallBackTrackBarSlide);
}
IplImage* frame;
// 循环地顺序遍历所有的帧
while(1)
{
// 获取当前帧的下一个帧,并将其加载到内存中
frame = cvQueryFrame(g_Capture);
if(!frame)
{
break;
}
cvShowImage("vedio",frame);
char chKeyCode = cvWaitKey(30);
if(chKeyCode == 27)
{
break;
}
g_Pos++;
// 当播放完200个帧的时候才触发滚动条滚动
/*if(g_Pos%200 == 0)
{
cvSetTrackbarPos("TrackBar","vedio",g_Pos);
}
*/
// 每播放一个帧便触发滚动条滚动
cvSetTrackbarPos("TrackBar","vedio",g_Pos);
}
cvReleaseCapture(&g_Capture);
cvDestroyWindow("vedio");
return 0;
}
相关文章推荐
- OpenCV播放视频 1加上滚动条 2加随视频播放自动滚动的滚动条
- OpenCV播放视频 加随视频播放自动滚动的滚动条
- 学习opencv之添加滚动条到视频中,并实现滚动条随着视频播放自动移动
- OpenCV学习-第二章-视频播放控制-支持滚动条随着视频播放自动移动
- OpenCv播放视频并滚动条滚动
- OpenCV学习之滚动条播放视频
- OpenCV播放视频 加上滚动条
- OpenCV 播放视频时如何使滚动条跟着视频流移动
- opencv中实现滚动条随着视频播放移动(回调函数)
- opencv+QT 视频播放+滚动条
- opencv 学习第一天 学习opencv(中文版)中思考题 解决滚动条随视频播放而动
- Opencv中播放视频时加上滚动条
- opencv实现视频播放(带滚动条)
- Opencv第二个程序之-------带滚动条AVI视频播放
- opencv中实现滚动条随着视频播放移动
- OpenCV:初试牛刀-带滚动条的视频播放-2
- OpenCV播放视频 加上滚动条
- Opencv——播放视频(带滚动条)
- OpenCV:初试牛刀-带滚动条的视频播放-2