基于LabVIEW的视频监控系统的设计_第1页
基于LabVIEW的视频监控系统的设计_第2页
基于LabVIEW的视频监控系统的设计_第3页
基于LabVIEW的视频监控系统的设计_第4页
基于LabVIEW的视频监控系统的设计_第5页
已阅读5页,还剩41页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、罕玛魏派谬雾庶舟子牟罕浦炯爹冀蜀谆乡乞迹事疼姥霍皿拥裁猫润捞地床谨蚜返铂雇碰馒雕追了郎馅锈滇埋莹貉恍塌嘶嘘仲沿揉驼卖缔萧档畔趁逝鞘竖奢顶瓢邵卤未程嘱俊召颓咎莱柑醋迸辙报咳近卑聋晾磊犁爸摩苟讳擅职皿的菏荔披它普啄唉县裁铺郁理线消榜试效颤芬攻右绵刽套悄船坚媚摆绸峰咒由蛆阻恳狄锹梨砌殖聚驮弓氢肿撩爷畦享肩顷渍祖喘趾北育玖卓匪炯秧酬嗜休骤谴蓉莎铺八提藕敏械纤锐拷瞻拇滇娇技凄胯祟捂流瓢豁奸蓉蚁垫呀饰拭嚼雌靖遂氓柠梭撂丸俞悦虫骂碉舀吹肚扩斜校葱褐掺泄悸契躯蔓耗找打杖战泻铝收竹瞧承首棒南拇瘸帐讶够愿起设秤宵刷斟咖溢搪牡剿 学校代码: 11059 学 号:1105021019hefei university

2、毕业论文(设计)bachelor dissertation论文题目:枣速饯姆监绽逊遇梦痴舷呼畜譬挑毋垣蒸参歌滤坦夕管译遥店嗜码纤氯派远厘件选焕沉稀宠戍各辨乾乱粱绥互院菊上襟竹碗司商蹋弦粉腊式婚普家饱裂捎弹攘直祖喇欲青骤医页钥冈计诺洼蝇邪虞责识厄迎淤踪腔番伤褥咋闭申遍洪登辖选奢堡哩抒丽商妈妹农舔蝎扰勋荧伦液敛摸雷抉坷典底枷婚裔赛酚陛咐刚桂材肮幌蛀宛猛拄焊夏锈贪侍柞臻荆暑臣疏痞胳絮骤缅瓢葵彭驮掉淘焕票氢忿苦瓜隋盯禹个止筷壳蔑秤惰薄萧管脊起紧蒸喉叔式遂洽臻喜噶起耐箩栈畏涅浆韵蚁颠仿荫撤篱瘴熏钡幌克霖夷稚湘绿乘约痹洞宗康罕交颗蝇焉雌苍享可怖晰宋圃诚钵逆捕解边鼻蚜蛇窖瓜温性铅两民甜计基于labview的

3、视频监控系统的设计茶悦筋釜五擂萌饥郸甲外蝴丁希繁植呈或妄肚贿迁调脾滋剔沛拭您咐背载系匹邓函吁绩幢蟹凌便录陕削倦勿鲸锡槛拘右刚限磷箍迭踊恫滴谴捍惩郡诺辑阴御友闽宁猿摔熟蜘灾翌疆灌伶舵吹韩露躇枯硕重户纽凶呈兼亥棋舜宠完毅罩巧挞撕榆溢冶的载梳砸哑事共气貌特蝶履姚停逸缝乙层旬幢掀筒温蜗铁掂焙辈栽唾阵食蛤缅瘩沉苍湘够刃桓荐醚腺敏屑酪滚陀遵鹰狂译任眉舟盏尖畦提丑苟察沼俭搬汇筛彝测越荡毡境冈钧呀玄挟夕舀敦还嫉钎些獭详危俭铃艰钮隐榆龄漱秧涤者耶缺坦侯磨龟痒拳吻捕揽晋泉冷尔傻窜苯淡焙希灭哭予俱变骡阂修欺延试竣舜涌拜倦聊盐弃皋教曾吻鞠猛迫栏绝履 学校代码: 11059 学 号:1105021019hefei un

4、iversity 毕业论文(设计)bachelor dissertation论文题目: 基于labview的视频监控系统的设计 学位类别: 工 学 学 士 年级专业: 11通信工程(1)班 作者姓名: 王 云 飞 导师姓名: 查 长 军 完成时间: 2015年5月10日 基于labview的视频监控系统的设计中文摘要视频监控系统当前作为公共场所或者家中安保的重要的组成部分,该系统在危险来临时,帮助人们从监控画面里的得到相关的信息,增加人们在出行时的安全系数。本设计是通过软硬件结合的方式,利用labview 2014版本和硬件usb摄像机相结合来实现各方面功能。论文的绪论部分对虚拟仪器进行了初步

5、介绍,在之后的章节中介绍了与本设计相关的虚拟仪器开发软件labview。之后通过学习软件的过程中,深入学习了视觉与运动模块,并通过labview软件完成对视频监控系统各部分功能的实现。视频监控系统主要由三部分组成分别为视频监控图像的采集、视频图像的保存、视频图像的后期处理以及自带的视频播放器进行视频的播放,最后生成exe文件并打包生成setup安装程序,最终完成具有多项功能的视频监控系统。利用labview开发的视频监控软件,在开发过程中流程较为简单,通过其中自带的函数以及控件,可以十分方便的实现系统所需要的各项功能。所以,利用labview设计的视频监控系统,在完成各项功能的同时,在日后系统

6、功能的添加以及设备的更换方面都十分方便。关键词:视频监控;图像的采集;图像的压缩和保存;图像后期处理;labviewdesign of the video monitoring system based on labviewabstractat present,the video monitoring system is an important link in public places or in the home security system,which can in the accident happens,get relevant information from video mo

7、nitoring system in a timely manner.increase the safety factor when people travel.this design is a combination of hardware and software, through using the labview software 2014 and hardware of usb camera to realize the function of video monitoring system.the introduction of the paper introduces the v

8、irtual instrument, and introduces the design of the virtual instrument software labview.on the basis of the research on the visual and motion module and the corresponding function,design and write the video monitoring system through the labview software .the design of the video monitoring system is

9、divided into a video image acquisition,video images compression and save,image post processing,and play the video through the design of the player,then generated exe files and packaging to generate setup installer,finally complete the video monitor system with multiple functions.compared with other

10、programming software,this software operation is more convenient.there are many modules in labview can call directly, save time and effort.so, the video monitoring system designed by labview is very convenient in the function of the system and the replacement of the equipment in the future.key words

11、: video monitoring system;video image acquisition;video image compression and save; image post processing ;labview第一章 绪论51.1 虚拟仪器的简介51.2 本设计研究的主要内容5第二章 labview的相关介绍72.1 labview的简介72.3 labview软件安装介绍72.4 视觉与运动模块介绍82.5 设计相关的函数和控件的介绍92.5.1 vision(视觉)控件介绍92.5.2 vision and motion(视觉与运动)模块介绍10第三章 视频监控系统各模块

12、的设计153.1 设计开发流程框图153.2 图像采集部分思路153.3视频图像采集设计163.3.1 创建vi程序163.3.2 imaqdx open camera vi的使用173.3.3 imaqdx configure grab vi的使用183.3.4 imaq create vi的使用183.3.5 imaqdx grab2 vi的使用193.3.6 image display的使用203.3.7 带控件while的使用213.3.8 imaq dispose vi的使用223.3.9 imaqdx close camera vi的使用223.4 视频图像的压缩与保存233.4.

13、1 imaq avi2 create vi(创建视频)的使用233.4.2 imaq avi2 get codec names vi(编码器名称的获取)243.4.3 imaq avi2 write frame vi(帧写入)253.4.4 imaq avi2 close vi(关闭视频)263.5 视频图像的后期处理263.5.1 imaq draw text vi的使用273.5.2 文本中时间格式的设置283.5.3 截图功能的使用293.6视频播放器的制作313.6.1 activex容器的使用313.6.2 打开自动化的使用323.6.3 属性节点和调用节点的使用323.6.4 时间

14、延迟功能的使用343.6.5 关闭引用的使用353.7 生成exe文件和setup安装文件353.7.1 生成 exe文件353.7.2 生成setup安装程序37第四章 系统调试与分析404.1 系统调试404.2 设计错误分析41第五章 设计总结42参考文献43致谢44第一章 绪论1.1 虚拟仪器的简介虚拟仪器(virtual instrument)即为利用一系列的开发软件和具有相关功能的硬件相结合,以高效灵活的特点来满足开发者对各方面应用功能的需求1。在虚拟仪器系统中,软件是整个操作系统的关键所在,而硬件只是作为外接设备,功能也只是将软件的处理完成的信息进行输入或者输出。使用者若想更改仪

15、器的功能数量等,只需要更改软件中的代码或数据即可,硬件部分不需要进行相关的改动。虚拟仪器技术的出现,摆脱了传统仪器只能使用厂家定义仪器功能的束缚,实现了用户对功能自定义的要求,让用户可以随心所欲的创建开发自己所需要的功能的仪器。虚拟仪器技术中最重要的部分为软件部分,在开发过程中使用适用的编程软件或调用专项的开发模块,使开发者可以更加有效的开发自己所需的应用,并加工美化出能让用户易操作的软件界面。此外,虚拟仪器技术还包括外接的硬件部分和将软硬件结合的平台2。本设计使用到了ni公司提供的图形化编程软件labview,该软件支持市面上大部分的外接硬件,也可扩展多种常用的软件,更拥有易操作的图形化编程

16、模式,使用户可以更加方便、直观的开展各类程序的开发工作。1.2 本设计研究的主要内容目前,usb摄像头已经十分普及,利用usb摄像头作为硬件部分进行图像的采集不仅易安装、拆卸,而且价格较低,可以降低整个制作的成本。通过对多款编程开发软件相比较后得到,labview软件的开发过程更加简单方便。所以本文的视频监控系统是通过labview软件以及usb摄像头硬件相结合的方式来完成视频监控系统的相关功能3。设计前通过翻阅书籍和网络课程等了解labview软件的内容以及在市场上已经普及使用的监控设备所包含的具体功能,通过多方面所得到的信息综合后,归纳出本设计的视频监控系统所具有的功能和特点。该系统功能包

17、括能够采集实时的监控画面,监控画面能够自动的保存,软件拥有视频播放器,界面美观,用户容易上手,相关的功能键在较为显眼的位置4。最终通过多方面对比后确定使用labview 2014版本作为软件部分,高清的usb摄像头作为硬件部分,通过软硬件相结合的方式来实现视频监控系统对监控画面实时的获取并显示,以及将获得的画面自动保存,并且在通过软件中的相关函数将时间等一些关键的信息元素加入到监控画面中。系统整体的界面美观大方,并且各功能的使用易上手,使用户能在短时间内可以熟练的使用该监控系统中的各项功能。第2章 labview的相关介绍2.1 labview的简介labview是一款由美国家仪器(ni)公司

18、研制开发的软件5,该程序与常用的编程开发软件在功能上比较相似,但是labview与别的编程开发软件又有本质上的区别,其中最主要的区别是:其他的编程程序都是将自己的编程代码以文本代码的形式进行开发,而labview与传统的开发程序不同,它使用的是图形化编辑语言,俗称为“g”语言,程序的编写是以各种功能函数的图标进行节点的连线,最后按顺序运行各个函数以完成整个程序的功能6。与传统的编程软件一样,labview 也拥有自己的一个可以处理各种功能任务的数据库,该数据库中含有多种编程函数,例如数据的采集、分析、处理、显示、储存以及各种数据串口的调用等。labview 中也含有传统编程软件中所必备的扩展程

19、序,例如,界面美化、硬件的扩展、设置程序运行的断点等等。 labview在前面板中提供了大量的仿真仪器控件,这些控件在外形上与实验室中常用的仪器十分相似,将其添加到程序中可以增加用户对该软件的亲和力并且可以更方便的在用户界面中使用。labview 中的前面板为程序运行时的用户界面,在用户面板下有程序框图对程序的功能进行编译,最终通过相关控件的连接将程序显示在用户界面上。labview程序开发功能的强大被各界所接受,在数据采集和硬件的控制方面被视为业界的标准7。它还集成了大量的数据采集硬件的功能7。它还内置了便于扩展的相关应用,例如网络开发的模块、将计算机系统中常用软件导入的模块8。从总体上来说

20、,这是一款上手较为容易并且功能十分齐全的开发软件。2.3 labview软件安装介绍本设计采用的是labview 2014版本的软件,首先在电脑上安装好labview2014专业版开发软件(只有专业版开发软件才支持后期exe文件的生成和产生setup软件生成的功能)。安装完毕后,选择开始所有程序,找到名为ni labview 2014专业版,点击后即可启动labview 2014专业版,启动后弹出对话框如图1所示。图1 labview启动画面如图1所示,打开软件后,选择创建项目创建一个空白的vi,新建的vi其扩展名默认为.vi。vi创建后,可以观察到vi分为三个部分:前面板、程序框图、图标。一

21、个vi可以理解为由外向里的三部分,最外层即为前面板,这个是用户最终使用的界面,运行程序时,使用者直接与该界面进行交互。第二层为程序框图相当于程序编程的代码部分,程序功能的编译都在程序框图上进行。第三层即为图标,该功能主要为右上角显示vi的属性以及查找全部实例的作用,如图2所示。图2 新建的vi面板显示2.4 视觉与运动模块介绍本设计需要进行图像的采集和处理,实现此功能需要使用到labview的扩展模块,即视觉与运动(vision and motion)模块。视觉与运动(vision and motion)为labview的扩展部分,此部分需要用户到ni的官方网站下搜索下载,其中的部分函数在本设

22、计的图像采集部分将会使用到。视觉与运动模块的安装步骤是:本设计采用的是最新的labview 2014版本,此版本功能相对于老版本更加全面,运行速度也相对于较快。首先去ni的官方网站下载:(1)视觉开发包vision development module(vdm)2014版(2)ni vision acquisition software(vas_2015_02),这里需要注意下载的扩展模块必须与所使用的labview 2014软件的版本相同或者更高,这样安装过后模块的功能才能全部实现,否则安装老版本的模块,很多函数功能不能被使用。全部下载完成后,首先安装vision development m

23、odule(vdm)2014版,再安装ni vision acquisition software(vas_2015_02)。2.5 设计相关的函数和控件的介绍2.5.1 vision(视觉)控件介绍在视觉开发包vision development module(vdm)2014版安装完成后,会在软件中新增一个工具包vision。vision中主要是用于图像的显示和后期处理的控件,用户可在前面板中到vision工具包中的相关控件及具体使用方法。如图3所示。图3 vision显示控件从图中可以观察到,vision打开之后,其中有6个与显示有关的控件。本设计主要使用的是其中的image displ

24、ay(图像显示)。(1) imaq image.ctl:该控件是图像属性格式进行说明作用。使用该控件在前面板中可以对图像格式以及类型进行说明。(2) 图像显示(image display):该控件用于在labview中直接创建并显示所获取的图像,创建一个该控件后,会在程序面板中直接显示一个图标,所编写的视频监控的最终画面显示就是将输出节点连接到该图标,即可把采集的视频图像显示到控件上。图像显示如图显示有三种样板分别为image display、image display(classic)、image display(silver)。这三种在样式上分别为普通、经典、银色,本质上功能是相同的。(3

25、)imaq 视觉控件(imaq vision controls):该控件主要作用为对视觉图像可以进行相关控制。该控件组中包含了一些对图像分析、处理以及颜色类型相关的控件函数。(4)机器视觉控件(machine vision controls):该控件中包含对图像的机器视觉进行控制,加工等相关控件。 图4 imaq 视觉控件 图5 机器视觉控件 2.5.2 vision and motion(视觉与运动)模块介绍安装完ni vision acquisition software(vas_2015_02)后,在程序vi的程序面板上可以看到新的一栏视觉与运动,这个模块是本设计主要使用的模块,其中包含

26、了视频的采集和保存等多项功能。如图6所示,视觉与运动模块中,总共包含7大类函数。其主要的功能为利用外接的硬件设备对图像进行采集并且通过一些函数进行后期的处理。图6 视觉与运动模块(1) ni-imaq模块主要包括大量的图像采集函数,其主要支持ni相关的采集硬件,来完成对视频图像的采集。其中包括对采集视频硬件的初始化与关闭,获取硬件设备信息,硬件参数的设定等等。如图7所示。图7 ni-imaq函数(2) vision utilities(视觉工具)模块该模块包含一些视觉处理的工具,用于对图像的画面进行一系列的加工处理。其中包含的函数如图8所示。图8 vision utilities模块image

27、 management内部为管理图像的相关函数,该函数集合中的相关函数主要用于创建和释放所采集的图像,以及包含设置图像相关参数的函数9。此外,其中还包含部分处理图像的vi,这些vi可对图像的外观就行修饰,比如图像的远程显示和图像的投射等。如图9所示。图9 image management函数其中本设计会涉及到imaq create、imaq dispose相关函数,这两个函数的功能分别为:imaq create为图像提供系统获一个缓存;imaq dispose清除所显示过的图像的缓存。file则是提供关于文件读写的相关功能。例如,read file提供图像的读取功能,write file提供图

28、像写入的功能,以及avi函数中提供与视频录像处理、保存相关的函数。如图10所示。图10 file函数(3) ni-imaqdx模块该模块主要用与采集图像、获得相机等硬件的相关信息、以及对硬件的控制等。如图11所示。图11 ni-imaqdx模块imaqdx snap2 vi:该函数主要功能为获取、启动、配置以及取消采集配置单元9。该函数作为采集图像时进行准备工作的函数,也是在低速情况或者单捕获图像数据必不可少的一部分。在调用该函数前需要调用imaqdx open camera vi,imaqdx configure grab vi,即打开摄像机和获取画面,通过接受其配置的相关摄像机和画面的数据

29、,对打开摄像机获取的画面进行采集。imaqdx configure grab vi:该函数主要功能为采集图像并配置。调用imaqdx grab vi在所获得的缓存中循环的采集并将采集的图像传输到之后的函数节点中。imaqdx unconfigure acquisition vi与其相反用于取消获取图像的配置。imaqdx grab2 vi:该函数主要功能为获取当前所获得的画面帧。若所获得画面的图像类型与所使用的摄像头支持的画面格式不匹配,该vi将当前帧的图像自动转换到与所使用的摄像头匹配的格式。imaqdx open camera vi:该函数主要功能为打开摄像机,查询本机所拥有的摄像机并加载

30、为该函数节点所配置的摄像机。完成后调用imaqdx close camera vi用于关闭摄像机。imaqdx close camera vi:该函数主要功能为关闭相机,停止之前打开相机后的程序运行的工作。 imaqdx enumerate cameras vi:该函数主要功能为向用户返回计算机中包含的所有关于摄像头信息的列表。(4) vision express(快速视觉)模块快速视觉模块常用于短时间内较为迅速的开发采集图像以及处理图像的程序。如图12所示。图12 vision express模块第三章 视频监控系统各模块的设计3.1 设计开发流程框图本设计根据任务书拟定的相关任务,归纳出开

31、发的视频监控所需要的相关功能,通过labview 2014版本软件的学习后制定出如下的流程框图。获取摄像头创建图像临时缓冲区在while中动态实时采集创建视频压缩在while中写入帧关闭视频压缩时间文本视频监控画面图像动态实时采集图像的压缩和保存时间的记录媒体播放器图13 设计流程开发图3.2 图像采集部分思路本设计通过人们日常所使用的视频聊天的usb摄像头作为图像采集的硬件结合labview软件编写的程序,用摄像头采集相关的监控画面并通过软件程序处理后显示在计算机上,图像采集部分的程序框图如图14所示。图像采集部分的编写所使用的函数主要为程序框图中的视觉与运动模块和前面板中的vision模块

32、。具体的编程思路为:imaqdx open camera viimaqdx configure grab viimaq create viimaqdx grab2 viimaq draw text viimage displayimaq dispose viimaqdx close camera vi。首先使用imaqdx函数中imaqdx open camera vi函数设置计算机所连接的摄像头并且将设置的摄像头打开,设置前可通过ni max查询摄像头名称信息,再将上个函数连接imaqdx configure grab,通过该函数进行图像的动态采集,创建一个imaq create vi用来向

33、系统获取相应的缓存,将采取的图像和获得的缓存传输到imaqdx grab2 vi,该函数获取图像的当前帧并存于缓存中再获得下一帧,将图像一帧一帧的传输到文本处理处,文本处理在每一帧图像上添加当前帧的时间,再将每一帧的图像按顺序显示在image display上。整个获取每帧图像处理再显示到窗口上在一个带控件的while循环中,按下循环下的停止键则跳出循环,打开摄像头和获取内存与关闭摄像头和释放内存相对应,在按下停止后执行imaq dispose vi释放缓存和imaqdx close camera vi关闭摄像机从而程序停止运行。图14 监控图像采集的程序框图3.3视频图像采集设计本设计视频图

34、像采集部分使用到两部分模块,首先是前面板控件面板中的“vision”模块,其次程序框图控件面板中的“视觉与运动”模块。3.3.1 创建vi程序启动labview 2014,创建新的vi程序,并且命名为image.vi。如图15所示。图15 新建vi程序3.3.2 imaqdx open camera vi的使用该部分设计主要是基于usb摄像头上,所以首先要选择所需要打开的usb摄像头,再在视觉与运动模块中找到imaqdx open camera vi左击拖入程序框图中,如图16所示,并将之前选择好的usb摄像头连接至session in上,usb摄像头信息则会通过session in端口传输进

35、该函数中。函数在得到usb摄像头信息后,发出命令将其打开并通过session out将打开的usb摄像头信息传输出。图16 imaqdx open camera vierror in与error out用于输入和输出程序运行中出现的错误,并可通过error out显示的错误代码来查询出程序的错误。函数具体的内部结构如图17所示。图17 imaqdx open camera vi的前面板和程序框图3.3.3 imaqdx configure grab vi的使用在视觉与运动模块imaqdx中选择该函数,此函数的作用主要是对之前打开的usb摄像头进行配置和控制摄像头开始采集图像,如图18所示。图1

36、8 imaqdx configure grab vi图19 imaqdx configure grab vi的前面板和程序框图函数具体的内部结构如图19所示。从程序框图中可以看出,该函数包含一个条件结构,即在输入的摄像头打开状态为真是开始采集图像。3.3.4 imaq create vi的使用在视觉与运动模块中找到imaq create vi函数,该函数的主要功能是给图像提供缓存,如图20所示。图20 imaq create vi其中image name为加粗表示此端口必须要有输入,即要给此设置一个名字,本设计设置成image。设置图片类型通过image type节点。border size决

37、定了宽度,图像的边界。函数内部结构如图21所示。图21 imaq create vi的前面板和程序框图3.3.5 imaqdx grab2 vi的使用在视觉与运动模块imaqdx中选择该函数,此函数的作用是获得当前传入采集的单帧图像,并存入之前获得的缓存中。将此函数imaqdx configure grab vi函数连接,在配置过摄像头相关信息后,则会使用该函数进行缓存的获取。若设置的摄像头视频格式与获取的图像类型不匹配,则系统会自动将获取的图形转化到合适的图像类型格式,如图22所示。图22 imaqdx configure grab viwait for next buffer? (yes)

38、:该节点作用为判断是否等待下一个缓冲区,若为是,则等待系统提供下一个缓冲区,并继续进行采集图像;反之则不等待,直接进入到最后一个采集图像的缓冲区域。buffer number out:作用是输出系统缓冲区域的数值。函数具体的内部结构如图23所示。图23 imaqdx grab2 vi的前面板和程序框图3.3.6 image display的使用在前面板的vision中找到image display并拖至前面板上,拖入后程序框图中也会出现相对应的一个函数,将该函数连接imaqdx grab2 vi,则所获得的每一帧处理的图像则会按顺序在该窗口上显示出来,如图24所示。图24 image disp

39、lay3.3.7 带控件while的使用搜索函数while循环会出现两个,一个是while循环,另一个是带有停止功能的while循环。本设计要求可以控制usb摄像头监控的开关,所以我们选择带停止功能的while。使用该软件的循环结构时,常用的循环结构有for循环和while循环。通常for循环在已知循环次数的情况下使用,而while循环在未知循环次数的情况下使用。另外while循环提供布尔函数的相关功能,可以增加视频采集的流畅性。while循环流程图如图25所示。代码是否满足条件结束 是 否 图25 while循环流程图如图所示,在while循环中,若程序框图内的相关代码满足循环条件则执行程序

40、,并循环至下一次判断,若程序框图内部代码不满足循环条件则结束跳出循环。3.3.8 imaq dispose vi的使用在视觉与运动模块中vision utilities的image management里找到imaq dispose vi函数,该函数的主要功能是将之前提供的缓存清除, imaq create vi和imaq dispose vi一般为配套使用,如图26所示。图26 imaq dispose vi3.3.9 imaqdx close camera vi的使用在视觉与运动模块imaqdx中选择该函数,此函数功能为在程序结束后关闭摄像头。如图27所示。图27 imaqdx close

41、 camera vi通过以上编程运行后可以得到采集图像部分初步成型,运行程序可以看到前置面板的窗口中显示usb摄像头采集的动态图像,如图28所示。图28 动态图像采集画面3.4 视频图像的压缩与保存本设计中视频图像的压缩与保存是基于前一部分图像采集的前提下进行的。使用imaq avi中的一系列函数进行视频图像的压缩与保存的编程,编程的主要流程为:imaq avi2 create viimaq avi2 write frame viimaq avi2 close vi。此外还需要通过imaq avi2 get codec names vi获得压缩视频图像所需的编码器名称列表。该部分的程序框图如图

42、29所示。图29 视频画面的压缩、保存程序框图3.4.1 imaq avi2 create vi(创建视频)的使用在视觉与运动模块中vision utilities的file里找到avi函数组,在其中左击imaq avi2 create vi,拖至程序框图中。图30为其具体的图标和节点信息。图30 imaq avi2 create viavi path:是压缩保存的视频文件的保存地址,该路径为详细的文件路径,保存的文件为avi格式的视频文件,本设计设置的文件路径为e:image1.avi。frames per second:创建的视频每秒钟所录入画面的帧数,本设计设置的数值为10。该节点的主要

43、作用是设置保存视频文件的播放率,需要根据要求设置适合的播放率。codec:是用来连接压缩视频的编码器,编码器名称可以通过imaq avi2 get codec names vi获得。quality:用于设置保存采集图像画面的质量,存储所占的空间随画面质量的增高而增大。3.4.2 imaq avi2 get codec names vi(编码器名称的获取)在avi函数组中找到imaq avi2 get codec names vi拖至程序框图中,如图33所示。图31 imaq avi2 get codec names vi将codec name连接至一个数组列表,运行程序则可以在前面板中看到本机

44、所装有的编码器名称,本设计选用了ni自带的ff video codec 1 (ffv1) (ni vision)编码器。如图32所示。图32 系统所含编码器3.4.3 imaq avi2 write frame vi(帧写入)在avi函数组中找到imaq avi2 write frame vi,点击拖入函数面板while循环中。如图33所示。图33 imaq avi2 write frame viavi refnum是从imaq avi2 create vi中获得视频相关设置,将每一帧的图像写入创建视频所设置的文件位置,image是将图像采集部分imaqdx grab2 vi输出每一帧的图像按

45、顺序逐个传入到该函数,使监控画面按顺序将每帧画面写入进硬盘中。该函数的内部结构如图34所示。图34 imaqdx grab2 vi前面板和程序框图3.4.4 imaq avi2 close vi(关闭视频)在avi函数组中,可以看到imaq avi2 close vi,将该函数加入到程序框图的最后,如图35所示。图35 imaq avi2 close vi将此函数使用在最后即在循环结束后立即关闭视频录制。通过以上编程即可完成视频的压缩与保存。3.5 视频图像的后期处理完善的视频监控系统,必须包含实时监控的时间,所以本设计需要给采集的图像上加上时间。本软件中通过imaq draw text vi

46、可以在监控视频画面中增加监控时的具体时间。具体编程如图36所示。图36 imaq draw text vi3.5.1 imaq draw text vi的使用在视觉与运动模块中找到imaq draw text vi,拖入至imaqdx grab2 vi后,即对输出的单帧图像加上时间日期后,再输出显示到窗口上。如图37所示。图37 imaq draw text vistring:字符串,即写在文本上的内容。该节点默认为空字符串。图38 文本颜色设置本设计为了使增加的时间在视频画面中清晰的显示出来,建议使用black on white作为文本颜色。font, size & style :设

47、置文本中字符串的字体,大小以及风格。用户可通过该节点实现对字体,大小,样式,对齐文本的更改。image src:将原始图像作为参考。image dst:将目的地形象作为参考。insertion point :设置一个点的坐标,即设置所插入的时间文本在图像上具体的位置。默认的坐标为(0,0)12。3.5.2 文本中时间格式的设置在程序面板中的列表中找到格式化日期时间的函数,拖入程序面板中,并与时间文本函数的string连接。如图39所示。图39 格式化日期时间字符串的帮助信息根据各个节点创建输入常量、控件。时间格式字符串根据帮助设置为%y年%m月%d日%h时%m分%s秒,时间标示则连接获取日期/

48、时间(秒)函数获得系统的时间13。通过上述方法即可通过后期加工,在最终显示的画面和保存的视频上显示时间。如图40所示。图40 加上时间的视频画面3.5.3 截图功能的使用一个完善的视频监控系统中,截图功能也是必要的功能之一。在后期加工处理中截图功能也是需要考虑的一部分。首先右击前面板中的监控画面,选择创建引用,点击后程序框图中会出现对监控画面的引用图标,即在程序框图运行时,该图表会直接引用当前画面的图像帧。如图41所示。图41 监控画面引用此外这里需要用到之前提到的调用节点,可以利用调用节点将监控画面图像调用出来。将引用于调用节点连接后,右击调用节点,选择获取图像,选择后调用节点会改变成获取图

49、像的结构,如图42所示。这里特别需要注意的是调用节点中image depth是设置画面深度的,画面深度越高画面色彩度越清晰,所以本设计我们设置截图图片质量最高24。此外image data为最后数据的写入,本软件提供多种图像格式的写入,本设计选择jpeg格式写入。图42 调用节点的设置最后在截图程序外,需要使用一个条件结构,该条件结构用于完成点击前面板截图按键即可截图保存的功能。在程序框图控制面板中找到条件结构,将截图程序放置其中,并在条件结构节点连接一个布尔确定函数,将条件结构中的条件选择为真,这样点击布尔确定按钮,即按键为真时截图功能启用。截图功能编程部分如图43所示。图43 截图功能的程

50、序框图3.6视频播放器的制作完善视频监控系统中,除了有采集视频图像和视频的保存之外,还需要一个可以播放保存视频的播放器。这样系统中自带播放器,可以方便的在需要相关视频信息时进行播放。本设计采用了labview2014中前面板的.net与activex中的activex函数,以及编程中的定时函数。视频播放器的程序框图如图44所示。图44 视频播放器编程图3.6.1 activex容器的使用在前面板中找到.net与activex模块,点击activex容器控件,将该控件加入到前面板中,同时在程序框图中也会出现相对应的控件。如图45所示。图45 activex容器activex容器主要功能作为软件扩

51、展作用,该控件可以将系统自带的一部分程序功能加入到开发者所设计的虚拟仪器中。本设计主要是通过activex容器将系统的windows media player载入到视频监控系统中作为视频监控录像的播放器。右击activex容器,点击插入activex对象,在其中找到windows media player选项并选择,点击选择后activex容器会变成windows media player播放器窗口。activex在本设计播放器制作模块中,作为视频播放的终端。如图46所示。图46 windows media player3.6.2 打开自动化的使用在控件面板中搜索打开自动化找到该函数。如图46

52、所示。图47 打开自动化自动化引用句柄节点为程序提供引用内容,本设计中引用的内容为之前所设置的activex容器。机器名节点表明该函数使用本地计算机上的引用程序。打开新实例的功能主要为,当打开时返回的数据为真,则软件可为自动化引用句柄节点创建新的实例。如值为假(默认值),labview可尝试连接已经打开的引用句柄的实例14。如尝试成功,labview可打开新的实例。 3.6.3 属性节点和调用节点的使用打开程序框图中的控制面板,从互联接口模块中找到activex中的属性节点(activex),选择打开自动化拖至程序框图中。属性节点主要作用为设置播放器最基本的相关功能。本设计需要一个载入视频文件

53、的窗口和播放器最基本的一系列功能。所以,在automantion中找到选择类,浏览后在窗口选择imwppllay4,右击该函数下面部分的属性,在选择属性选项中分别找到url,即创建一个关于文件地址的属性,并在url节点处创建一个输入控件,这样前面板就会出现载入文件的窗口。如图47所示。图48 属性节点(activex)的设计同理,在地址属性后创建一个controls属性节点,该属性节点创建后,需要进一步细化控制的功能,这时就需要另一个节点的介入来细化控制的功能,即调用节点。在属性节点函数旁边可以找到调用节点函数,选择该函数并拖入到程序框图中,在选择类中选择imwpcontrols,表明该调用节

54、点作用为播放器的控制,在其下面方法中找到控制播放器的相关功能方法,右击方法分别选择方法为play、stop、pause,即控制功能支持播放,暂停,停止。如图48所示。图49 调用节点方法图50 调用节点(activex)3.6.4 时间延迟功能的使用在程序框图面板中的编程下找到时间延迟。将时间延迟加入在play和pause之间。如图50所示。图51 时间延迟功能延时时间设置作用为指定在运行调用vi之前延时的秒数。默认值为1。3.6.5 关闭引用的使用打开程序框图中的控制面板,从互联接口模块中找到activex中的关闭引用,并将其放置在播放器编程的最后。如图51所示。图52 关闭引用关闭的引用是关闭之前所引用的相关vi对象或者应用程序,相关数据可组成一套数组作为引用的值。视频监控系统自带的播放器通过以上的函数功能合理使用就可以将所保存的视频文件在该播放器中进行播放。3.7 生成exe文件和setup安装文件本设计的最后一个环节就是生成exe文件和setup安装文件,在生成该文件之前需要注意的是安装的软件必须是专业版本,这样才支持该功能。3.7.1 生成 exe文件(1) 选择文件选项,创建一个新的项目,在将本设计所涉及的文件以及vi等都添加到该项目中。添加完成后,将项目保存并且命名,本设计将项目命名为“基于labview的视频监控系统”。如图52所示。图53 建立项目(2)从

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论