aihot  2017-05-06 12:56:38  OpenCV |   查看评论   
OpenCV下面几个功能进行介绍:

1)OpenCV与XML数据通信

2)视频的读取与写入

3)如何在没有OpenCV的环境中运行编译好的程序

二、与XML的交互

很多程序都需要有一个配置文件,可以手动的去调整一些运行中的参数,xml文件格式就是我们常用到的一种配置文件格式。opencv中提供了一个处理xml的类用来与xml文件进行简单的数据存储与读取通信。但这个类的功能有限,如果需要更多的功能可以利用第三方的库,比如libxml等。

我们所设计的视频摘要程序,跟常规的视频摘要不同,这里只是通过删除一些无运动目标的帧来达到视频压缩的目的,所以我们的算法可以设计如下:

1,定义一个目标运动的兴趣区域,作为检测区域。 2,遍历指定目录下的所有视频文件,并逐一的进行视频处理。 3,针对视频的每一帧,在检测区域内运用帧差法检测前景移动。 4,如果检测区域内前景的面积超过区域面积的10%,则说明有运动物体,则此帧进行保留,写入压缩视频。否则,该帧直接舍弃。 5,所有视频处理结束,则程序终止。
OpenCV进阶之路:一个简化的视频摘要程序

 

那么,我们需要一个配置文件,这个文件里需要保存下面几个内容:

1,检测区域的参数

2,视频文件的目录

3,视频文件的后缀格式

4,生存视频的保存目录

1 <?xml version="1.0"?> 
2 <opencv_storage> 
3 <roi>  3 460 1250 480</roi> 
4 <videoReadPath>D:\ExtractKeyImages\video\</videoReadPath> 
5 <videoSuffix>*.mp4</videoSuffix> 
6 <videoSavePath>../result.avi</videoSavePath> 
7 </opencv_storage>

注意所有的节点都保存在opencv_storage节点下。

在OpenCV中定义了一个叫FileStorage的类,提供了一些简单的打开与读取xml文件内容的操作。

我们先来看xml文件数据的读取:

1,用FileStorage的构造函数可以打开一个xml或yml文件,也可以用FileStorage::open()来打开一个数据文件。

FileStorage::FileStorage(); // 默认构造函数
FileStorage::FileStorage(const string& source, int flags, const string& encoding = string());

上面第二个构造函数中有三个参数。

第一个参数source指定读取文件的路径。

 

除特别注明外,本站所有文章均为 赢咖4注册 原创,转载请注明出处来自OpenCV进阶之路:一个简化的视频摘要程序

留言与评论(共有 0 条评论)
   
验证码:
[lianlun]1[/lianlun]