视频监控程序设计说明书.docx

上传人:b****5 文档编号:3569644 上传时间:2022-11-24 格式:DOCX 页数:9 大小:90.98KB
下载 相关 举报
视频监控程序设计说明书.docx_第1页
第1页 / 共9页
视频监控程序设计说明书.docx_第2页
第2页 / 共9页
视频监控程序设计说明书.docx_第3页
第3页 / 共9页
视频监控程序设计说明书.docx_第4页
第4页 / 共9页
视频监控程序设计说明书.docx_第5页
第5页 / 共9页
点击查看更多>>
下载资源
资源描述

视频监控程序设计说明书.docx

《视频监控程序设计说明书.docx》由会员分享,可在线阅读,更多相关《视频监控程序设计说明书.docx(9页珍藏版)》请在冰豆网上搜索。

视频监控程序设计说明书.docx

视频监控程序设计说明书

视频监控系统程序设计说明书

1引言

1.1编写目的

本文主要说明视频监控系统的详细设计与实现。

本文详细介绍了系统中各个模块的设计与实现细节以及关键技术的应用。

其中,对每一个模块会有相应的文字说明以及相关设计流程图给出。

1.2项目背景

本项目是对本实验课程中所介绍的课程的综合应用。

本项目主要针对unix/linux系统编程和基于C++语言的GUI程序设计-

-QT进行针对性训练。

旨在加强学生对unix/linux系统编程的理解和应用,提

高学生的实践能力、编程能力以及分析问题和解决问题的能力。

并且通过对本系统中客户端的设计和实现,让学生体会和熟悉面向对象编程的思想和一般方法。

1.3定义

本系统=视频监控系统

本文=视频监控系统设计说明书

2总体设计

2.1需求概述

本系统是基于C/S架构的网络视频监控系统,主要由负责图形采集和传输的Server端和负责监控(显示图像)的Client端构成。

本系统Server端是基于Linux系统的网络服务类软件,主要由数据采集和网络服务两部分构成。

数据采集部分利用v4l2(videoforlinuxII)对

网络摄像头进行控制和访问并且获取由摄像头捕获到的视频数据,然后再由网络服务部分将获取到的视频数据进行封装成http帧并利用http协议发送到客

户端。

由于本系统Server端的数据发送是基于http协议的,所以本系统客户端没有平台限制,只要支持http1.0以上的平台就可以访问本系统的服务。

且,本系统服务可以直接通过web浏览器访问(对firefox浏览器支持最佳)。

为了提高传输效率我们还需要进行客户端软件的开发,由于对客户端没有平台要求,所在WindowsLinux、Android、等平台都可以实现。

本文主将以linux为例用Qt实现一个简易的客户端软件。

2.2软件结构

图2.2.1视频监控系统结构图

3.程序描述

3.1Server:

:

数据采集

3.1.1功能

配置设备并从设备中获取图像数据。

根据设备信息利用v4I2(videoforlinuxII)通过ioctl对USB摄像头进行配置,打开设备抓取功能开始采集并转存数据,采集完毕以后关闭设备功能,最后关闭设备。

3.1.2技术概要

本模块涉及到大量的对于设备的I/O操作,主要通过videoforlinuxIl(v4l2)框架对设备进行设置和控制。

其中包括一些特殊的结构体属性的赋值以及一些特殊控制标记的实际意义需要详细查阅v4l2提供的API。

3.1.3程序逻辑

本节主要以流程图的方式介绍Server端数据采集模块的主要程序逻辑设

计。

 

图3.1.1Server端数据采集流程图

图3.1.1主要描述了服务端数据采集部分的主要流程和编程步骤。

下面将对每一个步骤进行详细的介绍:

1.打开设备:

打开视频设备(这里指我们的USB摄像头)。

利用linux系统提供的接口函数open来对设备进行打开的操作。

图3.1.2对这一过程进行了详细的描述。

2.查询设备信息(或者叫获取设备信息):

查询设备驱动相关信息以及和视频采集相关的参数,根据获取到的信息初步判断设备类型以及将要处理的数据类型。

利用ioctl函数以及V4I2提供的

v4l2_capbility和v4l2_format两个结构体来保存获取到的设备驱动信息和帧信息。

详细流程见图3.1.3。

VIDIOC_G_FMT等属性的含义需查询v4l2提供的

API。

Y

图3.1.2打开设备子图1

图3.1.3获取设备信息子图

3.设置采集方式

设置视频设备(这里指USB摄像头)的采集方式,例如采集图像的分辨率,帧的采集速率(既每秒采集帧的数量)等选项的设置。

用到V4I2中的

v4l2_format和v4l2_streamparm两个结构体以及VIDIOC_S_PARM和VIDIOC_SFMT两个标记,相关介绍请查阅v4l2框架的API信息。

实现步骤详见图3.1.4。

ioctl(fd,VIDIOC_S_PARM,&parm)ioctl(fd,VIDIOC_S_FMT,&fmt)

N

 

图3.1.4设置采集方式子图

4.申请缓存

向驱动申请几块缓冲区(此处缓冲区是由内核管理的,所以需要申

请),用来存放设备采集到的数据。

用到v4I2中的v4l2_requestbuffer结构体

和VIDIOC_REQBU标记来向设备驱动申请缓冲区。

实现步骤详见图3.1.4。

图3.1.5申请缓存子图

5.设置缓存属性

对申请到的缓存进行设置,包括设置缓存的访问方式(使用内存映射访问方式),对缓存进行映射,建立缓存队列。

N

Y

buf.index=ibuf.type=V4L2_BUF_TYPE_VIDEO_CAPTURE

buf.memory=V4L2_MEMORY_MMAP

ioctl(fd,VIDIOC_QUERYBUF,&buf)

MAP_SHARED,fd,buf.m.offset)

ioctl(fd,VIDIOC_QBUF,&buf)

 

 

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 小学教育 > 小升初

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1