首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 其他教程 > 其他相关 >

Opencv学习_三 (Opencv读取视频 &视频进度控制 &写视频)

2013-11-02 
Opencv学习_3 (Opencv读取视频 &视频进度控制 &写视频)opencv读取视频:使用opencv读取视频主要用到这几个

Opencv学习_3 (Opencv读取视频 &视频进度控制 &写视频)

opencv读取视频:

  使用opencv读取视频主要用到这几个函数:cvCreateFileCapture  cvQueryFrame (或cvGrabFrame cvRetrieveFrame)  cvReleaseCapture。

1:简单介绍:

CvCapture是一个结构体,用来保存图像捕获所需要的信息,opencv提供了两种方式从外部捕获图像

         一种是从摄像头中,另一种是通过解码视频得到图像

         两种方式都必须从第一帧开始一帧一帧的按顺序获取,因此每获取一帧后都要保存相应的状态和参数。比如从视频文件中获取,需要保存视频文件的文件名,相应的解码器类型,下一次如果要获取将需要解码哪一帧等。这些信息都保存在CvCapture结构体中,每获取一帧后,这些信息都将被更新,获取下一帧需要将新信息传给获取的api接口

读取摄像头
         只需将cvCreateFileCapture改为cvCreateCameraCapture即可。该函数的输入参数是一个ID号,只有存在多个摄像头时才起作用。当ID=-1时,表示随机选择一个。

2 代码:

#include <iostream>#include "cv.h"#include "highgui.h"#include "cxcore.h"#include <sstream>#include <string>using namespace std;double fps = 20;int width = 480;int height = 360;char name[500];int main(){CvVideoWriter *writer = cvCreateVideoWriter("E:\\study_opencv_video\\lesson6_1\\out.avi", CV_FOURCC('I', 'Y', 'U', 'V'), fps, cvSize(width, height), 1);IplImage *image = NULL;int i = 0;cvNamedWindow("show");string str ;stringstream ss;while(1){str = "E:\\study_opencv_video\\lesson6_1\\orig";ss << str;ss << i;ss << ".jpg";ss >> name;image = cvLoadImage(name);if(!image){cout << i <<endl;break;}cvShowImage("show",image);char c = cvWaitKey(33);if(c == 27){break;}cvWriteFrame(writer, image);i++;ss.clear();cvReleaseImage(&image);}cvReleaseVideoWriter(&writer);cvDestroyWindow("show");return 0;}

以上是我的简单学习总结,如有问题可以和我交流哈


作者:小村长  出处:http://blog.csdn.net/lu597203933 欢迎转载或分享,但请务必声明文章出处。 (新浪微博:小村长zack, 欢迎交流!)


热点排行