OpenCV學習筆記【3】:視頻播放控制

這個程序主要實現的功能是對視頻播放窗口加入一個滾動條的功能,並沒有實現滾動條隨着視頻播放移動的功能。

主要程序如下:

// example_p23.cpp : 定義控制檯應用程序的入口點。
//

#include "stdafx.h"
#include "cv.h"
#include "highgui.h"

int g_slider_position = 0;
CvCapture* g_capture = NULL;//<span style="color: rgb(51, 51, 51); font-family: arial; font-size: 14px; line-height: 26.421875px;">獲取視頻的抽象接口結構</span>

void onTrackbarSlide(int pos)
{
	cvSetCaptureProperty(
		g_capture,
		CV_CAP_PROP_POS_FRAMES,
		pos
		);
}

int _tmain(int argc, _TCHAR* argv[])
{
	g_capture = cvCreateFileCapture( "1.AVI" );  
	cvNamedWindow( "Example3", CV_WINDOW_AUTOSIZE);  
	int frames = (int) cvGetCaptureProperty(
		g_capture,
		CV_CAP_PROP_FRAME_COUNT
		); 
	if( frames!=0 )
	{
		cvCreateTrackbar(
			"Position",//Trackbar name
			"Example3",
			&g_slider_position,
			frames,
			onTrackbarSlide
			);
	}
	IplImage* frame;  
	while(1)  
		{  
			frame = cvQueryFrame( g_capture );  
			if(!frame)  
				break;  
			cvShowImage("Example3", frame );  
			char c = cvWaitKey(33);  
			if( c == 27 )//ESC的ASCII碼是27  
				break;  
		}  
	cvReleaseCapture( &g_capture );  
	cvDestroyWindow( "Example3" );
	return 0;
}

注意:由於開始時變量CV_CAP_PROP_FRAME_COUNT寫錯,致使cvGetCaptureProperty一直爲0,當cvGetCaptureProperty爲0的時候,滾動條是不會被創建的。


效果圖如下:


發佈了10 篇原創文章 · 獲贊 5 · 訪問量 6萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章