Opencv写入视频帧的代码
代码如下:
// fifth.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include "cv.h"
#include "highgui.h"
#include <stdlib.h>
#include <stdio.h>
#pragma comment(lib,"highgui.lib")
#pragma comment(lib,"cv.lib")
#pragma comment(lib,"cxcore.lib")
int main(int argc, char* argv[])
{
CvSize size = cvSize(480,360);
double fps = 1;
//创建一个写视频 设备writer,视频大小为: 480*360
CvVideoWriter* writer = cvCreateVideoWriter("D:\\Project\\test_image\\image_result\\out.avi",-1,fps,size);
/*读入一个文件夹下的所以图片*/
int image_id = 0;
char filename[256];
sprintf(filename , "D:\\Project\\test_image\\image_src\\%d.jpg" , image_id );
//加载图像
IplImage* src = cvLoadImage(filename);
if(!src)
{
return 0;
}
//为resize后的图像分配空间(图像大小:480*360)
IplImage* src_resize = cvCreateImage(size,8,3);
cvNamedWindow("avi");
while(src)
{
/*显示图像 本步骤不是必须的*/
cvShowImage("avi",src_resize);
cvWaitKey(1);
/*resize图像 使得写入视频文件的图像src_resize 与 视频文件的宽 高 是一样的 视频文件的宽 高是CvSize size = cvSize(480,360);*/
cvResize(src , src_resize); //src和src_resize的大小一致
/*将图像src_resize 写入到视频设备writer*/
cvWriteFrame(writer , src_resize);
/*释放内存空间*/
cvReleaseImage(&src);
//加载文件夹中的下一幅图像
image_id++;
sprintf(filename , "D:\\Project\\test_image\\image_src\\%d.jpg", image_id );
src = cvLoadImage(filename);
}
/*释放写设备*/
cvReleaseVideoWriter(&writer);
/*释放图像空间*/
cvReleaseImage(&src_resize);
return 0;
}
本文提供了一段使用OpenCV将图片序列写入视频的代码示例,详细解释了如何创建视频写设备、读取图像、调整图像大小以匹配视频分辨率,并将图像写入视频文件。

3657

被折叠的 条评论
为什么被折叠?



