视频播放控制

 HighGUI工具包不仅提供我们一个刚刚使用的一些简单函数,还包括一些图像与视频控制的算法,其中一个就是使用滚动条,滚动条可以使我们可以方便的控制视=视频从一帧跳转到另外一帧中去,我们可以使用cCreateTrackbar()来创建一个滚动条,并通过设置参数确定滚动条所属的窗口

#include<opencv2\opencv.hpp>
#include<highgui.h>
#include <string.h>
#include <iostream>
#include  "cv.h"
using namespace cv;
using namespace std;
int g_slider_position = 0; //huatiao werizhi 
CvCapture*g_capture = NULL;
//sider function
void onTrackbarslider(int pos)
{

	cvSetCaptureProperty(
		g_capture,
		CV_CAP_PROP_POS_FRAMES,
		pos
	);
}
int main(int argc, char** argv)
{
	cvNamedWindow("example", CV_WINDOW_AUTOSIZE);
	g_capture = cvCreateFileCapture("car.avi");
	//定义祯数
	int frames = (int)cvGetCaptureProperty(g_capture, CV_CAP_PROP_FRAME_COUNT);
	if (frames != 0)
	{
		cvCreateTrackbar("position", "example", &g_slider_position, frames, onTrackbarslider);
	}
	//显示视频
	IplImage *frame;
	while (1)
	{
		frame = cvQueryFrame(g_capture);
		if (!frame) break;
		cvShowImage("example", frame);
		char c = cvWaitKey(33);
		if (c == 27)  break;
	}
	//释放内存
	cvReleaseCapture(&g_capture);
	cvDestroyWindow("example");
	return 0;


	
}

猜你喜欢

转载自blog.csdn.net/weixin_42145502/article/details/90107853