[学习OpenCV攻略][010][写入AVI文件]
cvSize(文件宽度,文件高度)
通过图片或视频文件的宽高得到尺寸信息,返回值是CvSize
cvCreateVideoWriter(输出文件名,编码格式,帧率,图像大小)
通过设置输出视频的格式信息得到输出的视频,返回值是CvVideoWriter
CV_FOURCC(编码格式)
设置编码格式,('D','X','5','0') mpeg4格式,('M','J','P','G') mjpeg
cvWriteToAVI(输出视频流,输入视频流)
将输出视频流(IplImage类型)写成AVI格式到输出视频流(CvVideoWriter类型)中
cvReleaseVideoWriter(视频写入器)
释放视频写入器
#include <stdio.h>
#include "cv.h"
#include "highgui.h" int main(int argc, char **argv){
cvNamedWindow("hello", CV_WINDOW_AUTOSIZE);
cvNamedWindow("log_polar", CV_WINDOW_AUTOSIZE); CvCapture *capture = cvCreateFileCapture(argv[1]);
if(!capture){
return -1;
} double fps = cvGetCaptureProperty(capture, CV_CAP_PROP_FPS);
printf("fps = %d\n", (int)fps); CvSize size = cvSize(
(int)cvGetCaptureProperty(capture, CV_CAP_PROP_FRAME_WIDTH),
(int)cvGetCaptureProperty(capture, CV_CAP_PROP_FRAME_HEIGHT)
);
printf("frame (w,h) = (%d,%d)\n", size.width, size.height); CvVideoWriter *write = cvCreateVideoWriter(argv[2], CV_FOURCC('M','J','P','G'), fps, size); //CV_FOURCC('D','X','5','0') mpeg格式 CV_FOURCC('M','J','P','G') mjpeg格式 IplImage *logpolar_frame = cvCreateImage(size, IPL_DEPTH_8U, 3);
IplImage *gray_frame = cvCreateImage(size, IPL_DEPTH_8U, 1); IplImage *bgr_frame;
while(1){
bgr_frame = cvQueryFrame(capture);
if(!bgr_frame){
break;
} cvShowImage("hell0", bgr_frame); cvConvertImage(bgr_frame, gray_frame, CV_RGB2GRAY); cvLogPolar(
bgr_frame,
logpolar_frame,
cvPoint2D32f(bgr_frame->width/2,bgr_frame->height/2),
40,
CV_INTER_LINEAR+CV_WARP_FILL_OUTLIERS
);
cvShowImage("log_polar", logpolar_frame); cvWriteToAVI(write, logpolar_frame); //输出的文件名为.avi格式 char c = cvWaitKey(10);
if(c == 27){
break;
}
} cvReleaseVideoWriter(&write);
cvReleaseImage(&gray_frame);
cvReleaseImage(&logpolar_frame);
cvReleaseCapture(&capture);
cvDestroyWindow("hello");
cvDestroyWindow("log_polar"); return 0;
}
[学习OpenCV攻略][010][写入AVI文件]的更多相关文章
- [学习OpenCV攻略][004][播放AVI视频]
		cvCreateFileCapture(文件路径) 创建一个影音文件录像机,返回值为CvCapture类型,用于读取视频文件 cvQuerFrame(视频) 将下一帧视频文件载入内存,当CvCaptu ... 
- [学习OpenCV攻略][002][Ubuntu下OpenCV安装]
		配置环境 操作系统 Ubuntu 12.04 OpenCV版本 opencv-1.0.0 学习书籍 <学习OpenCV> Liunx软件安装方法主要有3种: 1.编译安装,也就是通过编译源 ... 
- [学习OpenCV攻略][016][RedHat下安装OpenCV]
		安装环境 操作系统: Red Hat Enterprise Linux Server 6.3 相关软件: ffmpeg-0.8.15.tar.bz2.cmake-3.5.1.tar.gz.OpenCV ... 
- [学习OpenCV攻略][011][显示图片]
		学习资料: http://www.opencv.org.cn/opencvdoc/2.3.2/html/doc/tutorials/tutorials.html 包含头文件 core.hpp:包含 ... 
- [学习OpenCV攻略][017][ARM9下移植OpenCV]
		安装环境 宿主机: Red Hat Enterprise Linux Server 6.3 开发板: mini2440 相关软件: cmake-3.5.1.tar.gz.OpenCV-2.3.1a.t ... 
- [学习OpenCV攻略][013][Mat - 基本图像容器]
		Mat 是一个类,由两个数据部分组成:矩阵头(包含矩阵尺寸,存储方法,存储地址等信息)和一个指向存储所有像素值的矩阵(根据所选存储方法的不同矩阵可以是不同的维数)的指针. 矩阵属于多个 Mat 对象, ... 
- [学习OpenCV攻略][005][视频播放控制]
		cvSetCaptureProperty(视频,属性,属性值) 设置视频的属性,属性可以是宏CV_CAP_PROP_POS_FRAMES 视频帧的位置 cvGetCaptureProperty(视频, ... 
- [学习OpenCV攻略][001][Ubuntu安装及配置]
		root登入配置 1.sudo passwd root 2.su - root 3.vim /etc/lightdm/lightdm.conf [SeatDefaults] user-session= ... 
- [学习OpenCV攻略][012][读取、修改、保存图像]
		使用 imread 读取图像,图像路径为 imageName ,图像按BGR格式读取. image = imread( imageName, CV_LOAD_IMAGE_COLOR); 将RGB图像转 ... 
随机推荐
- window下mysql数据备份
			今天我有个朋友让我帮他在windowServer服务器上备份一下mysql的数据库,于是花了一天的时间完成了一个每天定时备份数据库的功能,小编在这里为大家记录一下: 首先对于mysql命令行的导入导出 ... 
- <!--[if lte IE 8][endif] ]-->IE下判断IE版本的语句
			<!--[if lte IE 6]> <![endif]--> IE6及其以下版本可见 <!--[if lte IE 7]> <![endif]--> ... 
- php示例的错误记录
			最近几天在测试php的mvc,从网上找到几个示例. 先学习这一篇,http://www.cnblogs.com/q1ng/p/4529496.html 标题是 PHP的MVC框架 深入解析,其实是最 ... 
- CKEditor 集成CKFinder集成
			lCKEditor原名FckEditor,著名的HTML编辑器,可以在线编辑HTML内容,演示一下.打开.自己人用CKEditor,网友用UBBEditor. l配置参考文档,主要将ckeditor中 ... 
- 随便说说 post-processing
			九月份一篇博都没更新,这段时间一直在unity的坑里爬不起来,感觉真的很绝望啊,仿佛对生活都失去了信心. 渲染问题并没有解决,目前方案只是减轻视觉冲突,降低违和感.项目AR产品也做的越来越艰难,开始经 ... 
- 完美解决浮动IE6 7中的兼容性BUG问题
			想要创建出漂亮的网页设计,除了要认真学习每一个html和CSS代码之外,不可能不去了解一下臭名昭著的IE6和更早的那些IE浏览器的坏脾气,因为你本来写出的规规矩矩的代码,漂亮的设计就此就要完成了,却发 ... 
- SQL基础学习_02_查询
			SELECT语句 1. SELECT语句查询列(字段): SELECT <列名> FROM <表名>; 该语句使用了两个SQL子句,SELECT子句列举了 ... 
- Integer和int
			例1: public static void main(String[] args){ Integer a = 128,b = 128; Integer c = 127,d = 127; System ... 
- Fiddler中设置断点修改返回结果Response
			测试有时会遇到需要测试返回不同的数据前端展示出来会如何?如果去数据库中的数据会比较麻烦.这样我们可以通过fiddler设置断点来修改返回的数据实现测试不同的数据展示. 1.设置断点 (1)点击菜单栏按 ... 
- JS中typeof和instanceof用法区别
			typeof和instanceof都可以用来判断变量 1.typeof用以获取一个变量或者表达式的类型,typeof一般只能返回如下几个结果: number,boolean,string,functi ... 
