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

本文介绍如何使用OpenCV和videoInput库在Windows平台上实现视频录制功能。通过具体步骤指导读者搭建开发环境,并提供源代码示例,展示了如何配置参数、捕获帧并将其保存为AVI格式文件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

对视频进行读写,可使用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文件,可以直接用播放器来播放。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值