OpenCV播放视频,滑动条随帧数动态变化

#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);
	g_slider_position = pos;
}

int main()
{
	
	/*加载图像
	IplImage * img = cvLoadImage("C:\\1.jpg");
	cvNamedWindow("Test", CV_WINDOW_NORMAL);
	cvShowImage("Test", img);
	cvWaitKey(0);
	cvReleaseImage(&img);
	cvDestroyWindow("Test");
	*/

	/*加载视频*/
	cvNamedWindow("Vedio");
	g_capture = cvCreateFileCapture("C:\\1.mp4");
	int frames = (int)cvGetCaptureProperty(g_capture, CV_CAP_PROP_FRAME_COUNT);
	if (frames!=0)
	{
		cvCreateTrackbar("Position", "Vedio", &g_slider_position, frames, OnTrackbarSlide);
	}
	IplImage *frame;
	while (true)
	{
		frame = cvQueryFrame(g_capture);

		if (!frame)
		{
			break;
		}
		g_slider_position = (int)cvGetCaptureProperty(g_capture, CV_CAP_PROP_POS_FRAMES);
		cvSetTrackbarPos("Position", "Vedio", g_slider_position);
		printf("%d",g_slider_position);
		cvShowImage("Vedio", frame);
		char c = cvWaitKey(33);
		if (c == 27)break;
	}
	cvReleaseCapture(&g_capture);
	cvDestroyWindow("Vedio");
	return(0);
}

你可能感兴趣的:(opencv)