Chinaunix首页 | 论坛 | 博客
  • 博客访问: 3534459
  • 博文数量: 864
  • 博客积分: 14125
  • 博客等级: 上将
  • 技术积分: 10634
  • 用 户 组: 普通用户
  • 注册时间: 2007-07-27 16:53
个人简介

https://github.com/zytc2009/BigTeam_learning

文章分类

全部博文(864)

文章存档

2023年(1)

2021年(1)

2019年(3)

2018年(1)

2017年(10)

2015年(3)

2014年(8)

2013年(3)

2012年(69)

2011年(103)

2010年(357)

2009年(283)

2008年(22)

分类: C/C++

2011-04-27 11:41:50

对视频进行读写,可使用OpenCV提供的CvCapture和CvVideoWriter。
在Windows平台下,OpenCV以前提供的读写功能采用VFW,效率低下且有些格式支持不好。而 OpenCV 2.0 内置了videoInput Library,可以自动在VFW和DirectShow间切换。videoInput是老外写的功能强大的开源视频处理库。
0. Windows SDK 
    微软每推出一个重要的windows版本,一般都会同时推出一个SDK(Software Development Kit)。SDK包含了开发该windows版本所需的windows函数和常数定义、API函数说明文档、相关工具和示例。
    安装Windows 7 SDK,下载地址:
         
1. 新建项目
    启动Code::Blocks,选择File->New->Project, 项目类型选择:Console Application,项目名为:MyRecorder,其他按默认选择。
2. 代码
    打开main.cpp文件,输入以下代码:
#include
#include
#include
using namespace std;
int main(int argc, char** argv)
{
    int width = 640;
    int height = 400;
    char* name = "test.avi";
    name = argc == 2 ? argv[1] : name;
    if(argc == 3)
    {
        width = atoi(argv[1]);
        height = atoi(argv[1]);
    }
    else if(argc == 4)
    {
        name = argv[1];
        width = atoi(argv[2]);
        height = atoi(argv[3]);
    }
    IplImage* pImg = cvCreateImage(cvSize(width, height), IPL_DEPTH_8U, 3);
    videoInput video;
    video.setupDevice(0, width, height);
    video.showSettingsWindow(0);
    CvVideoWriter* writer = 0;
    writer = cvCreateAVIWriter(name, -1, 25, cvSize(width, height), 1);
    cvNamedWindow("video", 1);
    pImg = cvCreateImage(cvSize(width, height), IPL_DEPTH_8U, 3);
    while(1)
    {
        if(video.isFrameNew(0))
        {
            video.getPixels(0, (unsigned char*)pImg->imageData, false, true);
            cvWriteFrame(writer, pImg);
            cvShowImage("video", pImg);
            if(cvWaitKey(1) == 27)
                break;
        }
    }
    cvReleaseVideoWriter(&writer);
    cvReleaseImage(&pImg);
    cvDestroyAllWindows();
    return 0;
}
3. 设置
    打开Project-〉Build Options选项卡
    选择Search directories,在Compiler里Add进以下目录:
         C:\OpenCV2.2\include
         C:\OpenCV2.2\3rdparty\include
    在Linker里Add进以下目录:
         C:\OpenCV2.2\lib
         C:\OpenCV2.2\3rdparty\lib
         C:\Program Files\Microsoft SDKs\Windows\v7.0A\Lib
     选择Linker settings,添加以下文件:
         C:\OpenCV2.2\lib 此目录下的所有文件
         C:\OpenCV2.2\3rdparty\lib 此目录下的所有文件
         C:\Program Files\Microsoft SDKs\Windows\v7.0A\Lib 此目录下所有ole开头的文件
4. 编译
    点击Build->Build编译项目。
5. 运行
    点击Build-〉Run
    会出现三个窗口:
    视频编码选择:
   
    根据系统安装和OpenCV支持的编码格式,选择合适的格式来生成avi文件,我测试可以用的是Microsoft Video 1格式,点确定后即可看到视频窗口。
    视频属性设置窗口:
   
    可以设置视频的一些效果。
    在项目的根目录下会产生一个avi文件,可以直接用播放器来播放

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/gonxi/archive/2011/04/02/6298498.aspx
阅读(2336) | 评论(1) | 转发(0) |
给主人留下些什么吧!~~

冰蓝水蜜桃啊啊2012-03-27 11:07:07

你好,想请教opencv cvvideowriter的问题,请问您的qq多少啊,谢谢啊