`
helloyesyes
  • 浏览: 1271313 次
  • 性别: Icon_minigender_2
  • 来自: 武汉
文章分类
社区版块
存档分类
最新评论

OpenCV实例:基于videoInput的视频录像机

阅读更多

对视频进行读写,可使用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,下载地址:

http://www.microsoft.com/downloads/en/details.aspx?FamilyID=c17ba869-9671-4330-a63e-1fd44e0e2505&displaylang=en

1.新建项目

启动Code::Blocks,选择File->New->Project, 项目类型选择:Console Application,项目名为:MyRecorder,其他按默认选择。

2. 代码

打开main.cpp文件,输入以下代码:

#include <iostream>

#include <videoInput.h>
#include <opencv2/opencv.hpp>

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文件,可以直接用播放器来播放。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics