opencv简单视频播放控制
参考:学习Opencv中文版
#include "cv.h"
#include "highgui.h"
int g_slider_position = 0;
CvCapture* g_capture = NULL;
//回调函数
void onTrackbarSlide(int pos) {
cvSetCaptureProperty(
g_capture,
CV_CAP_PROP_POS_FRAMES,
pos
);
}
int main(int argc,char *argv[])
{
//容错
if(argc != 2)
{
printf("请输入想要播放的视频\n");
printf("格式:app 视频文件名\n");
return -1;
}
//初始化
//创建窗口
cvNamedWindow("play_video",CV_WINDOW_AUTOSIZE);
//打开视频文件
g_capture = cvCreateFileCapture(argv[1]);
int frames = (int) cvGetCaptureProperty(
g_capture,
CV_CAP_PROP_FRAME_COUNT
);
if(frames != 0)
{
cvCreateTrackbar(
"Position",
"play_video",
&g_slider_position,
frames,
onTrackbarSlide
);
}
IplImage* frame;
//播放视频
while(1)
{
frame = cvQueryFrame(g_capture);
if(!frame) break;
cvShowImage("play_video",frame);
char c = cvWaitKey(33);
if(c == 27)break;
}
//释放资源
cvReleaseCapture(&g_capture);
cvDestroyWindow("play_video");
return 0;
}