设为首页 加入收藏

TOP

使用OpenCV进行视频读写
2014-11-23 17:42:02 】 浏览:241
Tags:使用 OpenCV 进行 视频 读写

OpenCV视频读写的代码,用的是其C++形式的API。输入文件为完全无压缩的avi格式视频文件。


#include
#include
#include


#undef RC_OPENCV_2_1_0


#ifdef _DEBUG
#ifdef RC_OPENCV_2_1_0
#pragma comment( lib, "cxcore210d.lib" )
#pragma comment( lib, "cv210d.lib" )
#pragma comment( lib, "highgui210d.lib" )
#else
#pragma comment( lib, "opencv_core220d.lib" )
#pragma comment( lib, "opencv_highgui220d.lib" )
#pragma comment( lib, "opencv_imgproc220d.lib" )
#endif
#else
#ifdef RC_OPENCV_2_1_0
#pragma comment( lib, "cxcore210.lib" )
#pragma comment( lib, "cv210.lib" )
#pragma comment( lib, "highgui210.lib" )
#else
#pragma comment( lib, "opencv_core220.lib" )
#pragma comment( lib, "opencv_highgui220.lib" )
#pragma comment( lib, "opencv_imgproc220.lib" )
#endif
#endif


void main()
{
/** 打开输入视频文件 */
cv::VideoCapture vc;
vc.open( ".//test.avi" );

if ( vc.isOpened() )
{
/** 打开输出视频文件 */
cv::VideoWriter vw;
vw.open( ".//output.avi", // 输出视频文件名
(int)vc.get( CV_CAP_PROP_FOURCC ), // 也可设为CV_FOURCC_PROMPT,在运行时选取
(double)vc.get( CV_CAP_PROP_FPS ), // 视频帧率
cv::Size( (int)vc.get( CV_CAP_PROP_FRAME_WIDTH ), (int)vc.get( CV_CAP_PROP_FRAME_HEIGHT ) ), // 视频大小
true ); // 是否输出彩色视频


/** 如果成功打开输出视频文件 */
if ( vw.isOpened() )
{
while ( true )
{
/** 读取当前视频帧 */
cv::Mat frame;
vc >> frame;


/** 若视频读取完毕,跳出循环 */
if ( frame.empty() )
{
break;
}


/** 将视频写入文件 */
vw << frame;
}
}
}


/** 手动释放视频捕获资源 */
vc.release();
}


运行结果



--------------------------------------分割线 --------------------------------------


--------------------------------------分割线 --------------------------------------


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇OpenCV 2.2.0 摄像头捕获视频问题.. 下一篇Debug与Release版本程序运行速度..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目