[学习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图像转 ...
随机推荐
- application19事件 20多少步骤 具体20多少只有微软知道!!!
- SQL语句 我喜欢上海
select * from [user] wherer name like '上海%'
- HTTPS从认识到线上实战全记录
前言 关于HTTPS,基本上你想知道的都在这里了.本文原标题<HTTPS原理与实践>,下图是本文配套PPT的目录截图: [TOC] 原理篇 认识HTTPS 先说一下,本文可能有些地方由于描 ...
- Android 执行 adb shell 命令
Android 执行Adb shell 命令大多需要root权限,Android自带的Runtime. getRuntime().exec()容易出错,在网上找到了一个执行adb shell命令的类 ...
- JQ 为未来元素添加事件处理器—事件委托
随着DOM结构的复杂化和Ajax等动态脚本技术的运用,有了较多的动态添加进来的元素,直接用JQ添加click事件会发现新添加进来的元素并不能直接选取到,在这里就需要用到事件委托方法,JQ为事件委托提供 ...
- 对DataTable(或者DataSet)修改后,提交修改到数据库
http://blog.csdn.net/nidexuanzhe/article/details/8228832 说明:通常我们在做数据库交互时,并不一定要使用特定的SQL语句来更新数据,.NET F ...
- button的padding属性在i8下和chrome下表现不一致
button的padding属性在i8下和chrome下表现不一致 在ie8下会撑破很多像素,撑破布局 padding: 10px 48px; padding: 1px 35px \0; /* pro ...
- GUI—ST_emWin移植
GUI-ST_emWin移植 一.st_emwin移植 1.stemwin源文件下载:ST官网 https://my.st.com/content/my_st_com/en/search.html#q ...
- #多个关联的python程序在linux后台运行
由于在shell脚本中直接使用&符号和python程序有冲突,不能正常的进入后台执行python(多番尝试python xxx.py &,后面的&总是不能正常识别.系统cent ...
- eclipse导入工程时,出现Some projects cannot be imported because they already exist in the workspace
前提条件: 1.将eclipse中现有的工程javatraining删除,如下图所示, 该复选框不要勾选,点击ok steps: 1.本次打开Eclipse想要把已删除的javatraining工程再 ...