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程序,它的功能是视频的读取播放、暂停、快放和慢放功能,由于刚学,很多东西都不懂,但仅保证正确性,老鸟勿喷哈~
#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学习笔记(3)——进度条视频播放控制
- opencv 利用trackbar滚动条实现视频的播放和暂停控制
- Opencv实现视频播放与进度控制
- OpenCV学习笔记【3】:视频播放控制
- opencv视频学习第五课(视频播放控制)笔记整理
- opencv学习笔记(三)视频播放控制
- 【OpenCV学习笔记】1.2 播放AVI视频&视频播放控制
- 【opencv学习笔记3】视频播放控制
- OpenCV笔记7:视频播放控制
- opencv学习笔记(四)-视频播放控制
- Android VideoView 自定义播放器 MediaController 实现视频播放控制和横竖屏适配
- android实现控制视频播放次数
- opencv实现视频加载与播放
- opencv +MFC实现视频播放、暂停、视频标注、跟踪
- opencv视频播放控制
- 通过摄像机视频设备或者流媒体服务器SDK获取到数据转换成RTMP流实现网页/手机微信播放
- 基础学习笔记之opencv(6):实现将图片生成视频
- Unity实现RawImage图片显示视频 、灵活配置控制视频播放
- OpenCV(五): Opencv视频播放控制