[学习OpenCV攻略][010][写入AVI文件]
cvSize(文件宽度,文件高度)
通过图片或视频文件的宽高得到尺寸信息,返回值是CvSize
cvCreateVideoWriter(输出文件名,编码格式,帧率,图像大小)
通过设置输出视频的格式信息得到输出的视频,返回值是CvVideoWriter
CV_FOURCC(编码格式)
设置编码格式,('D','X','5','0') mpeg4格式,('M','J','P','G') mjpeg
cvWriteToAVI(输出视频流,输入视频流)
将输出视频流(IplImage类型)写成AVI格式到输出视频流(CvVideoWriter类型)中
cvReleaseVideoWriter(视频写入器)
释放视频写入器
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 | #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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术