opencv实现视频播放(带滚动条)

#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;
}

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值