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文件]的更多相关文章

  1. [学习OpenCV攻略][004][播放AVI视频]

    cvCreateFileCapture(文件路径) 创建一个影音文件录像机,返回值为CvCapture类型,用于读取视频文件 cvQuerFrame(视频) 将下一帧视频文件载入内存,当CvCaptu ...

  2. [学习OpenCV攻略][002][Ubuntu下OpenCV安装]

    配置环境 操作系统 Ubuntu 12.04 OpenCV版本 opencv-1.0.0 学习书籍 <学习OpenCV> Liunx软件安装方法主要有3种: 1.编译安装,也就是通过编译源 ...

  3. [学习OpenCV攻略][016][RedHat下安装OpenCV]

    安装环境 操作系统: Red Hat Enterprise Linux Server 6.3 相关软件: ffmpeg-0.8.15.tar.bz2.cmake-3.5.1.tar.gz.OpenCV ...

  4. [学习OpenCV攻略][011][显示图片]

    学习资料: http://www.opencv.org.cn/opencvdoc/2.3.2/html/doc/tutorials/tutorials.html   包含头文件 core.hpp:包含 ...

  5. [学习OpenCV攻略][017][ARM9下移植OpenCV]

    安装环境 宿主机: Red Hat Enterprise Linux Server 6.3 开发板: mini2440 相关软件: cmake-3.5.1.tar.gz.OpenCV-2.3.1a.t ...

  6. [学习OpenCV攻略][013][Mat - 基本图像容器]

    Mat 是一个类,由两个数据部分组成:矩阵头(包含矩阵尺寸,存储方法,存储地址等信息)和一个指向存储所有像素值的矩阵(根据所选存储方法的不同矩阵可以是不同的维数)的指针. 矩阵属于多个 Mat 对象, ...

  7. [学习OpenCV攻略][005][视频播放控制]

    cvSetCaptureProperty(视频,属性,属性值) 设置视频的属性,属性可以是宏CV_CAP_PROP_POS_FRAMES 视频帧的位置 cvGetCaptureProperty(视频, ...

  8. [学习OpenCV攻略][001][Ubuntu安装及配置]

    root登入配置 1.sudo passwd root 2.su - root 3.vim /etc/lightdm/lightdm.conf [SeatDefaults] user-session= ...

  9. [学习OpenCV攻略][012][读取、修改、保存图像]

    使用 imread 读取图像,图像路径为 imageName ,图像按BGR格式读取. image = imread( imageName, CV_LOAD_IMAGE_COLOR); 将RGB图像转 ...

随机推荐

  1. P神的SDFZ考试题 C题

                                                                      探险[问题描述]          探险家小 T 好高兴! X 国要 ...

  2. openstack ocata版本简化安装

    Network Time Protocol (NTP) Controller Node apt install chrony Edit the /etc/chrony/chrony.conf 添加如下 ...

  3. Python 为何能坐稳 AI 时代头牌语言

    原文链接:https://mp.weixin.qq.com/s?__biz=MzI0ODcxODk5OA==&mid=2247487055&idx=2&sn=ca0fe8740 ...

  4. Git详解之二:Git基础

    Git 基础 读完本章你就能上手使用 Git 了(伯乐在线注:如果你对Git还不了解,建议从本Git系列第一篇文章开始阅读).本章将介绍几个最基本的,也是最常用的 Git 命令,以后绝大多数时间里用到 ...

  5. C语言学生管理系统(原版本)(自编)

    /*系统特色:(大牛勿笑) *颜色提示 *文字提示 *功能 */ #include <stdio.h> #include <stdlib.h> #include <mat ...

  6. 面向对象 初级版 (Preview) 未完

    概述: 面向过程:根据业务逻辑从上到下写垒代码 函数式:将某功能代码封装到函数里,日后使用无需重复编写,直接调用韩顺即可. 面向对象: 对函数进行分类和封装,让开发'更快更强' 面向对象和面向过程的通 ...

  7. QuickStart系列:docker部署之Elasticsearch

    ElasticSearch是一个基于Lucene的搜索服务器.它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口.Elasticsearch是用Java开发的,并作为Apach ...

  8. Python:猜拳游戏

    import random #导入包 play = int(input("请输入(石头0 剪刀1 布2):")) #这里的int必须加上 i = random.randint(0, ...

  9. Linux Select之坑

    最近在写一个demo程序,调用select()来监听socket状态,流程如下: r_set 初始化 timeout 初始化3秒超时 loop{ select(ntfs, &r_set, nu ...

  10. [树莓派(raspberry pi)] 02、PI3安装openCV开发环境做图像识别(详细版)

    前言 上一篇我们讲了在linux环境下给树莓派安装系统及入门各种资料 ,今天我们更进一步,尝试在PI3上安装openCV开发环境. 博主在做的过程中主要参考一个国外小哥的文章(见最后链接1),不过其教 ...