opencv视频学习第六课(opencv写视频文件)笔记整理

来源:互联网 发布:手机开不了淘宝店铺 编辑:程序博客网 时间:2024/05/22 12:13

现在来学习如何将图片集写成视频文件吧。

先将图片集统一命名,然后通过一个变量来控制读取图片。

然后使用cvCreateVideoWriter()函数创建视频写设备,使用cvResize()函数将不同尺寸的图片调整成同一个尺寸,使用cvWriteFrame()函数将图片数据写入到视频写设备中。大概的思想就是这样了,好像也没有什么好说的,单纯的记录一下这个课时,以后也许会有延伸

#include "highgui.h"#include "cxcore.h"#include "cv.h"#include <stdlib.h>#include <stdio.h>int main(int argc, char* argv[]){CvSize size = cvSize(480,360);double fps = 1;//创建视频写设备CvVideoWriter* writer = cvCreateVideoWriter("E:\\3\\liu.avi",CV_FOURCC('X','V','I','D'),fps,size);int image_id=0;//控制图片名称char filename[256];sprintf(filename, "E:\\3\\liu (%d).jpg",image_id);IplImage* src = cvLoadImage(filename);//加载图像if(!src)return 0;IplImage* src_resize = cvCreateImage(size,8,3);//创建一个图像空间cvNamedWindow("avi");while(src){cvShowImage("avi",src_resize);cvWaitKey(10);//由于图片的大小不一定都是size,所以在写入视频前,使用cvResize函数将图片调整成size大小,存放在src_resize中cvResize(src, src_resize);cvWriteFrame(writer,src_resize);//再将src_resize的内容加载到writer视频设备中cvReleaseImage(&src);//释放image_id++;sprintf(filename,"E:\\3\\liu (%d).jpg",image_id);src = cvLoadImage(filename);//将图片加载到src中}cvReleaseVideoWriter(&writer);cvReleaseImage(&src_resize);return 0;}


重点介绍的函数

1、cvCreateVideoWriter(conts char* filename,//新建视频的文件名字
                    int fourcc,//视频压缩的编码格式(由电脑安装的编码器决定的)
                    double fps,//每秒播放的帧数
                    CvSize frame_size,//尺寸
                    int is_color=1//如果非零,编码器将希望得到彩色帧进行编码,否则是灰度帧
                    );//创建视频写设备

2、viod cvResize(const CvArr* src,//源图像
              CvArr* dst,//目标图像 
              int interpolation=CV_INTER_LINEAR//方式
              );//重新调整图像src

3、int cvWriteFrame(CvVideoWriter* writer,//视频写入器结构
                 const IplImage* image//被写入的帧
                 );//把一帧图像写入到视频文件

0 0
原创粉丝点击