找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
人工智障网 首页 智能学院 OpenCV 查看内容

OpenCV进阶之路:一个简化的视频摘要程序

2019-5-16 14:47| 发布者: 人工智障| 查看: 416| 评论: 0

一、前言视频摘要又称视频浓缩,是对视频内容的一个简单概括,先通过运动目标分析,提取运动目标,然后对各个目标的运动轨迹进行分析,将不同的目标拼接到一个共同的背景场景中,并将它们以某种方式进行组合。视频摘 ...

一、前言

视频摘要又称视频浓缩,是对视频内容的一个简单概括,先通过运动目标分析,提取运动目标,然后对各个目标的运动轨迹进行分析,将不同的目标拼接到一个共同的背景场景中,并将它们以某种方式进行组合。视频摘要在视频分析和基于内容的视频检索中扮演着重要角色。

视频摘要主要运用在对长时间的监控视频的压缩上,它可以将不同时刻场景内目标的运动显示在同一时刻,这样大量减少了整个场景事件的时间跨度。一般的视频摘要的步骤可以总结为:

视频读取" role="presentation" style="display: inline; line-height: 1.8; word-spacing: normal; word-wrap: normal; white-space: nowrap; float: none; direction: ltr; max-width: none; max-height: none; min-width: 0px; min-height: 0px; border: 0px; padding: 0px; margin: 0px; position: relative;">背景建模  " role="presentation" style="display: inline; line-height: 1.8; word-spacing: normal; word-wrap: normal; white-space: nowrap; float: none; direction: ltr; max-width: none; max-height: none; min-width: 0px; min-height: 0px; border: 0px; padding: 0px; margin: 0px; position: relative;"> 前景提取" role="presentation" style="display: inline; line-height: 1.8; word-spacing: normal; word-wrap: normal; white-space: nowrap; float: none; direction: ltr; max-width: none; max-height: none; min-width: 0px; min-height: 0px; border: 0px; padding: 0px; margin: 0px; position: relative;"> 目标轨迹跟踪" role="presentation" style="display: inline; line-height: 1.8; word-spacing: normal; word-wrap: normal; white-space: nowrap; float: none; direction: ltr; max-width: none; max-height: none; min-width: 0px; min-height: 0px; border: 0px; padding: 0px; margin: 0px; position: relative;"> 目标的时序与空间规划 " role="presentation" style="display: inline; line-height: 1.8; word-spacing: normal; word-wrap: normal; white-space: nowrap; float: none; direction: ltr; max-width: none; max-height: none; min-width: 0px; min-height: 0px; border: 0px; padding: 0px; margin: 0px; position: relative;"> 生成浓缩视频

但是本文并不讨论上面的这些主题,这里我只想通过一个简单的去除视频里非运动帧来实现一个简单的视频压缩的功能。视频摘要不是本文的主题,文章想通过做一个简单的视频摘要程序对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 480roi> 
4 <videoReadPath>D:\ExtractKeyImages\video\videoReadPath> 
5 <videoSuffix>*.mp4videoSuffix> 
6 <videoSavePath>../result.avivideoSavePath> 
7 opencv_storage>

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

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


温馨提示:
1、在论坛里发表的文章仅代表作者本人的观点,与本网站立场无关。
2、论坛的所有内容都不保证其准确性,有效性,时间性。阅读本站内容因误导等因素而造成的损失本站不承担连带责任。
3、当政府机关依照法定程序要求披露信息时,论坛均得免责。
4、若因线路及非本站所能控制范围的故障导致暂停服务期间造成的一切不便与损失,论坛不负任何责任。
5、注册会员通过任何手段和方法针对论坛进行破坏,我们有权对其行为作出处理。并保留进一步追究其责任的权利。
12下一页

路过

雷人

握手

鲜花

鸡蛋
发表评论

最新评论

小智障

帮助

人工智障-人工智能网

返回顶部