您的位置:首页 > 运维架构

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

2014-03-24 12:52 357 查看
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 视频 图像处理 c