基于QT的多线程视频监控的实现(一)

基于QT的多线程视频监控的实现(一)

基于QT的多线程视频监控的实现(二)

基于QT的多线程视频监控的实现(三)

本系统是采用的Windows的开发环境,采用了QT编程技术、Socket网络编程技术、TCP/IP和UDP网络协议、OpenCV、多线程等技术实现的。 

主要任务可分为三大模块:视频数据信号的采集部分网络传输部分以及远程客户端接收部分。而选择使用QT开发视频监控系统的好处就在于以后能够很好的移植到移动终端,为之后的扩展做准备。

一、环境的搭建

    本多线程视频监控系统是在windows下开发的,开发的工具选用的是QT,QT原是诺基亚公司旗下的多功能开发框架,具有移植性高,功能强大,易于扩展等特点。同时,它所拥有的库十分广泛,为开发者提供了强有力的条件,对于开发者来说,QT是开发快捷,短小而精悍应用的最佳选择。

使用的是openCV库来进行对摄像头的采集,与图像的处理。

搭建QT开发环境

(1) 生成与配置QT openCV的开发环境

   本次开发利用的QT环境是QT 5.4环境,对于QT5.4来说,增加了很多更为强大的功能类,可以更好的实现用户的需求,比如QT可以跟其他的框架进行交互,添加了QOpenGLWindow类,很方便的通过OpenGL将内容绘制到QWindow,也有加入了原生文件对话框的支持等多种可用类。同时,需要用到第三方的库OpenCV,OpenCV库使用的版本是OpenCV 2.4.10,需要先从官网上将OpenCV下载下来,但是下下来的并不能直接使用,先将下载下来的opencv-2.4.10.exe用解压软件解压到你指定的路径下,然后利用CMake (cmake-gui)软件来将解压得到的sources的源代码用mingw491_32的gcc与g++进行编译,等待编译结束后,生成了我们所需要的QT的OpenCV库,然后再将得到的第三方的库的相关的文件加入到PATH环境变量中,到此,就完成了QT环境的安装与配置。如下图1.1所示


图1.1cmake生成mingw32版本的OpenCV的链接


注意:具体的生成mingw32版本的openCV可以找相关的博客,本处不做过多的解释。

(2) 工程中添加opencv相关的链接库

在建完QT的工程后,进行配置工程所需要的PATH。先来把工程打开,里面有个.pro文件,双击打开后,在.pro中

加入一行QT+=network和sql,这两个分别是网络部分和数据库部分。然后需要把OpenCV部分加入进来了。需要把

OpenCV的相关的头文件加入进来,还有之前生成的相关的链接库文件的路径加入工程中。这样,环境就搭建完成了

,就可以开始写代码了。配置如下图1.2所示


图1.2为添加opencv的相关的链接库

注:至此,环境搭建完成了。

二、整体的设计与实现流程

(1) 监控系统的整体设计

在多线程视频监控系统中,整体采用C/S架构,其中C为客户端,S为服务器。其中,服务器主要是获取采集到的数据并通过UDP协议发送。而客户端主要是接收到的数据,并将数据进行处理。

服务器主要是将采集到的数据进行编码和网络传输。同时,服务器也显示视频。

在客户端时,加入了一个登陆验证模块。每次打开软件时,需要登陆确认,用户可以注册新用户名或者使用已经有的用户名和密码。主要是将接收到的数据进行解码、显示。客户端可以暂停接收,截取图片,录制视频的功能。整体设计结构图如下图2.1所示


图2.1  监控系统整体设计图

(2) 采集功能模块的实现

在多线程视频监控系统中,图像采集尤为重要的。本系统的图像采集是通过笔记本电脑自带的摄像头,通过

OpenCV的库,先将摄像头初始化,将摄像头驱动起来,然后获取摄像头的一帧图像,将抓取到的帧,转化为

QImage格式,在服务器上显示。另一部分,将获取到的帧转化为可传输码,在这个过程中,由一个定时器控制所

采帧的频率。采集到图像的设计图如下图2.2所示:

 

图2.2  采集模块设计图

 

 

(3) 传输控制模块设计

在传输模块中,需要先获取到采集的数据存入缓存中,然后从缓存中拷贝一份通过信号发送,先利用TCP连接,连接成功

后,先来获取客户端的IP,然后就用UDP协议来进行传输数据,采用多线程技术,将服务器上的数据传输到客户端上,实现了

数据的传输。分别利用TCP与UDP网络协议的各自的优缺点,进行组网,搭建一个高速,准确传输的网络系统。如下图2.3所示


图2.3网络传输控制模块的结构设计图


OpenCV及编译好的库下载

注:本篇到此结束,请看下一篇

欢迎大家加我的群:460952208

基于QT的多线程视频监控的实现(二)》多窗口分割

猜你喜欢

转载自blog.csdn.net/qq_18286031/article/details/77711786
今日推荐