对视频进行读写,可使用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文件,可以直接用播放器来播放。
分享到:
相关推荐
Learning OpenCV 3: Computer Vision in C++ with the OpenCV Library 是一本由浅入深介绍Opencv3 计算机视觉库使用的专业书籍。书中详细介绍了opencv3安装及各个模块的使用,此书在旧版基本上做了大量修改,以适应...
《OpenCV算法精解:基于Python与C》是一本深入探讨计算机视觉库OpenCV的教材,旨在帮助读者理解和掌握OpenCV中的核心算法及其在Python和C++语言中的实现。OpenCV,全称Open Source Computer Vision Library,是一个...
毕业设计:基于OpenCV的细胞计数算法设计 毕业设计:基于OpenCV的细胞计数算法设计 毕业设计:基于OpenCV的细胞计数算法设计 毕业设计:基于OpenCV的细胞计数算法设计 毕业设计:基于OpenCV的细胞计数算法设计 毕业...
一、下载CMake和OpenCV库 1.CMake下载地址:https://cmake.org/download/,下载windows版本即可,建议安装v3.16及以上版本 2.下载opencv及opencv-contrib库: https://github.com/opencv/opencv/releases ...
OpenCV支持多种编程语言,包括C++、Python等,它的核心功能包括图像读取、显示、处理、分析以及视频处理。在图像处理方面,OpenCV可以进行像素级别的操作,如灰度化、直方图均衡化、滤波等;在图像分析方面,它可以...
基于XLD和CAD的模板匹配与多形状OpenCV实现:C++与C#编程语言下的create_shape_model_xld技术详解。,基于XLD与CAD图形的多模板匹配技术研究,OpenCV与C++/C#实现形状匹配与create_shape_model_xld功能。,基于xld、...
在本文中,我们将深入探讨如何使用C#结合OpenCV库将视频或摄像头捕获的录像转换为GIF动图。OpenCV是一个强大的计算机视觉库,它最初是用C++编写的,但通过OpenCVSharp这样的.NET接口,我们可以方便地在C#环境中使用...
毕业设计:基于OpenCV&外部特征的个体鱼识别算法研究 毕业设计:基于OpenCV&外部特征的个体鱼识别算法研究 毕业设计:基于OpenCV&外部特征的个体鱼识别算法研究 毕业设计:基于OpenCV&外部特征的个体鱼识别算法研究 ...
项目学习分享:基于opencv计算机视觉分拣物品。共同学习。.zip项目学习分享:基于opencv计算机视觉分拣物品。共同学习。.zip项目学习分享:基于opencv计算机视觉分拣物品。共同学习。.zip项目学习分享:基于opencv...
详细说明请见...实现的功能 1、打开本地视频进行读取、播放、暂停、停止控制 2、图片打开功能分为两种:可使用“打开图片”按钮打开本地图片,或者点击comobox里面设定的图片列表选择并显示图片
关于Opencv的项目实例设计,帮助进阶者继续学习opencv图像处理。
在这个项目中,我们将探讨如何结合OpenCV与MFC,在VS2010环境下创建一个对话框应用程序,实现实时摄像头视频采集、视频保存、本地视频播放以及通过滑块控制播放进度的功能。 首先,你需要在VS2010中创建一个新的MFC...
OpenCV(Open Source Computer Vision Library)是一个开源的计算机视觉库,包含了众多图像处理和计算机视觉的算法,广泛应用于图像分析、识别、机器学习等领域。在Android平台上,OpenCV的使用通常需要通过OpenCV ...
文件名"4.4读取视频并显示"暗示了我们将讨论如何使用Java OpenCV来读取和播放视频。在OpenCV中,`VideoCapture`类是用于读取视频的主要工具。我们可以创建一个`VideoCapture`对象,传入视频文件的路径,然后调用`...
《OpenCV算法精解:基于Python与C++》是以OpenCV 为工具学习数字图像处理的入门书。内容由浅入深,每一章都采用阐述基本概念、数学原理、C++ 实现、Python 实现相结合的方法,使初学者循序渐进地掌握数字图像处理...
《OpenCV实例精解》是印度计算机视觉专家普拉蒂克·乔希的一本...通过学习《OpenCV实例精解》,读者不仅可以了解计算机视觉的基本原理,还能熟练运用OpenCV进行图像和视频的处理与分析,从而提升在相关领域的实践能力。
基于OpenCV的视频道路车道检测源码 基于OpenCV的视频道路车道检测源码 基于OpenCV的视频道路车道检测源码 基于OpenCV的视频道路车道检测源码 基于OpenCV的视频道路车道检测源码 基于OpenCV的视频道路车道...
内容概要:本文详细介绍了OpenCV的基础使用方法,涵盖读取和显示图像、颜色空间转换、图像缩放、翻转、边缘检测、高斯模糊、形态学操作、图像平滑和绘制等功能,通过丰富的代码示例帮助读者掌握图像处理的基本技巧。...
项目学习分享:Python基于OpenCV&ORB和特征匹配的双视频图像拼接(源码&部署教程).zip项目学习分享:Python基于OpenCV&ORB和特征匹配的双视频图像拼接(源码&部署教程).zip项目学习分享:Python基于OpenCV&...