【OpenCV學習】二、視頻播放控制

類似一個簡易播放器,播放一個視頻,加個進度條,可以拖動,並且隨視頻播放而移動。(《學習OpenCV》P23-26)

正常播放一個視頻。

cvCreateTrackbar創建一個滾動條,當滾動的時候觸發回調函數onTrackBarSlide。

cvGetCaptureProperty和cvSetCaptureProperty,標準的get和set函數,一個獲取視頻屬性,一個設置視頻屬性。這裏獲取和設置的是視頻的幀的位置,所以用CV_CAP_PROP_POS_FRAMES來表示。

#include"cv.h"
#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);
}

int main(){
	cvNamedWindow("視頻播放控制", CV_WINDOW_AUTOSIZE);
	g_capture = cvCreateFileCapture("D:\\OPENCV實驗\\video1.avi");
	int frames = (int)cvGetCaptureProperty(g_capture, CV_CAP_PROP_FRAME_COUNT);
	if(frames != 0){
		cvCreateTrackbar("滾動條", "視頻播放控制", &g_slider_position, frames, onTrackBarSlide);
	}
	IplImage* frame;
	int pos2;
	while (1){
		frame = cvQueryFrame(g_capture);
		if (!frame){
			break;
		}
		cvShowImage("視頻播放控制", frame);
		pos2 = (int)cvGetCaptureProperty(g_capture, CV_CAP_PROP_POS_FRAMES);
		cvSetTrackbarPos("滾動條", "視頻播放控制", pos2);
		cvWaitKey(33);
	}
	cvReleaseImage(&frame);
	cvDestroyWindow("視頻播放控制");
	return(0);
}

結果:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章