《基于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的多线程视频监控的实现(二)》多窗口分割

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

  1. 基于ARM的移动视频监控系统

    http://www.eeworld.com.cn/qrs/2010/0409/article_2439_1.html 0 引 言 传统的视频监控系统一般采用PC服务器的C/S(Client/Serv ...

  2. 介绍基于ARM的移动视频监控系统

    摘要:将嵌入式Linux和无线网络引入到视频监控系统,阐述了系统的硬件组成:介绍了USB无线网卡驱动实现的过程:从嵌入式Linux开发环境的搭建.嵌入式流媒体服务器的设计和动态网页的设计等方面介绍了软 ...

  3. 基于Qt的车载GPS监控系统(2)需求分析

    基于Qt的车载GPS监控系统(2)需求分析 嵌入式开发培训(阶段3)嵌入式图形应用开发视频地址 冷链车载GPS监控系统 视频地址 项目实践流程: 1.设计项目需求文档 说明项目设计目的,项目功能,项目 ...

  4. linux 车载视频监控,基于Linux平台车载视频监控系统研发-计算机科学与技术专业论文.docx...

    基于Linux平台车载视频监控系统研发-计算机科学与技术专业论文 目录 HYPERLINK \l "_bookmark0" 第一章 绪论1 HYPERLINK \l "_ ...

  5. 【基于arduino的esp32-cam视频监控简单使用】

    基于arduino的esp32-cam视频监控简单使用 一.软件准备 arduino下载链接 二.硬件准备 三.环境配置 打开软件是这个界面 点击文件里面的首选项进行配置 在附加开发板管理器中添加网址 ...

  6. 【CV/Matlab系列】基于matlab GUI的视频监控界面

    DATE: 2020.10.18 updated at 2022.04.23: 界面上增加报警提示功能 文章目录 1.前言 2.视频监控界面 2.1.初始化界面 2.2.人脸检测和计数功能 2.3.监 ...

  7. 基于ARM的远程视频监控系统的设计

    http://www.21ic.com/app/mcu/201208/135975.htm 摘要:在ARM 微处理器平台上移植嵌入式Linux 操作系统,完成视频采集任务,并以服务器方式将图像发送到网 ...

  8. b s架构监控java,基于B/S的视频监控系统的设计与实现

    基于B/S的视频监控系统的设计与实现 本文分析了基于C/S架构的视频监控系统的缺点和B/S结构的诸多优点,通过需求分析,设计实现了一种以B/S为架构的视频监控系统,并针对现存视频监控系统在权限控制方面 ...

  9. 毕设教程:基于嵌入式Linux和Qt实现的视频监控系统(Arm/树莓派/jetson)

    本文章将教你做一个用嵌入式linux开发板和Qt来实现的视频监控系统. 知识点:嵌入式 Linux V4L2 socket QT 本项目是博主大学时的毕业设计题目,现分享给大家,需要其他题目可点如下链 ...

最新文章

  1. 20172319 实验二《树》实验报告
  2. mysql delete in 结果集_MySQL从删库到跑路(2)SQL语句示例
  3. Android开源框架源码鉴赏:Okhttp
  4. 微信小程序获取用户手机号--官方示例
  5. excel 下拉框选择月份显示不同的日历_秒杀Excel的数据分析工具,几分钟教你完成数据填报...
  6. 交换算法经常使用的两个数的值
  7. 安卓PopupWindow
  8. bin文件怎么转换成文本文档_Python脚本4:根据txt文本,批量创建文件夹
  9. Is It A Tree?(hdu1325)
  10. 结构体含有指针的写入文件
  11. mysql查询条件中使用 或 !-的问题
  12. 论文笔记:针对盲化的 RSA算法的水平聚类侧信道攻击
  13. 青龙面板—-抖音极速版(2022.08.11)
  14. 进入旅游营销时代,携程有什么“大招”?
  15. transformation-matrix
  16. 连平县新视界-连平2018年公开招聘教职员66人
  17. 常用的几种集合(Map另写)
  18. 技术沙龙出海日本:分享京东区块链实践与创新
  19. 高频时电阻不再是电阻
  20. YL工作记录 (不断更新) -- 2020.04

热门文章

  1. 手游竞争白热化 虎牙直播率先抢占手游新“蓝海”
  2. 基于SpringBoot的淘宝商城系统
  3. python外星人颜色答案_Python-外星人
  4. 为什么祖传代码会被称为屎山
  5. 六代单传的老代码,到底能不能动
  6. 华为服务器pe下安装linux,华为服务器安装操作系统.docx
  7. 关于 Windows 7 语言包
  8. python画河流图_python – 世界地图没有河流matplotlib /底图?
  9. 安迪·沃霍尔作品全球首次NFT拍卖以280万美元价格成交
  10. 不务正业之音乐节奏灯