#include "highgui.h"
#include "cv.h"
CvCapture * g_capture = NULL;
int g_slider_pos = 0;
int frame_count = 0; //视频播放帧数控制
void onTrackbarSlider(int pos)
{
cvSetCaptureProperty(
g_capture,
CV_CAP_PROP_POS_FRAMES,
pos
);
frame_count = pos;
}
int main (int argc ,char ** argv)
{
cvNamedWindow("Slider AVI",1);
g_capture = cvCreateFileCapture("F:\\LearnbyMyself\\opencv\\视频\\Wildlife.avi");
int frames = (int)cvGetCaptureProperty(
g_capture,
CV_CAP_PROP_FRAME_COUNT //得到总帧数
);
if (frames > 0)
{
cvCreateTrackbar( //创建滚动条
"Position", //滚动条名字
"Slider AVI", //窗口名字
&g_slider_pos, //当前滚动条位置
frames, //总帧数
onTrackbarSlider //回调函数
);
}
IplImage *frame;
while (1)
{
frame = cvQueryFrame(g_capture);
if (!frame)
break;
cvShowImage("Slider AVI",frame);
char c = cvWaitKey(33);
if (27 == c)
break;
cvSetTrackbarPos(
"Position",
"Slider AVI",
frame_count
);
frame_count++;
}
cvReleaseCapture(&g_capture);
cvDestroyWindow("Slider AVI");
return 0;
}
opencv实现视频播放(带滚动条)
最新推荐文章于 2021-01-28 09:59:19 发布