OpenCV笔记(二)实现获取视频并控制视频的播放速度

OpenCV(Open Source Computer Vision Library)是一个基于开源发行的跨平台就算计视觉库,它轻量级而且高效,主要由C函数和少量C++类构成,并且实现了许多算法。由于最近做项目要用到图像处理方面的知识,所以本人开始学习OpenCV,用的是OpenCV1.0,希望可以帮助到那些正在学或将来要学的人~

第二节先贴出自己的第一个OpenCV程序,它的功能是视频的读取播放、暂停、快放和慢放功能,由于刚学,很多东西都不懂,但仅保证正确性,老鸟勿喷哈~

#include "stdafx.h"


#include "cv.h"
#include "cxcore.h"
#include "highgui.h"


int main(int argc, char* argv[])
{
	int flag = 1, speed = 33;
	cvNamedWindow("avi", 0);	//创建窗体,名字为avi。
	CvCapture *capture = cvCreateFileCapture("D:\\vedio.avi");	//创建读取视频结构体,并将文件路径传入函数中。
	IplImage *frame;	//声明图像指针。
	while(flag)
	{
		frame = cvQueryFrame(capture);		//从视频结构体中读取图像,即视频的每一帧。
		if(!frame) break;					//如果读取失败,则退出。
		cvShowImage("avi", frame);			//显示图像帧。
		char c = cvWaitKey(speed);			//显示图像的时间,speed的单位为ms;若speed=0,则为暂停。
		if(c == 27) break;					//若c=[Esc],则退出。
		else if(c == ' ')					//若c=' ',则暂停。
		{
			while(1)
			{
				c = cvWaitKey(0);
				if(c == ' ') break;
				if(c == 27) { flag = 0; break; }
			}
		}
		else if(c == 'j') { speed += 3; c = cvWaitKey(speed); }		//此处调整speed的值,若按下'j',则时间增加3ms,即视频放慢。
		else if(c == 'l') { speed -= 3; c = cvWaitKey(speed); }		//此处调整speed的值,若按下'l',则时间减少3ms,即视频变快。
	}
	cvReleaseCapture(&capture);										//释放视频结构体。
	cvDestroyWindow("avi");											//销毁窗体。
	return 0;
}


你可能感兴趣的:(狂奔のOpenCV,opencv,视频,图像处理,c)