(完整版)基于LabVIEW的视频监控系统的设计毕业设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
学校代码:11059
Hefei University
毕业论文(设计)BACH ELOR DISSERTATION
论文题目:基于LabVIEW的视频监控系统的设计
学位类别:工学学士
年级专业: 11通信工程(1)班
作者姓名:王云飞
导师姓名:查长军
完成时间: 2015年5月10日
基于LabVIEW的视频监控系统的设计
中文摘要
视频监控系统当前作为公共场所或者家中安保的重要的组成部分,该系统在危险来临时,帮助人们从监控画面里的得到相关的信息,增加人们在出行时的安全系数。
本设计是通过软硬件结合的方式,利用LabVIEW 2014版本和硬件USB 摄像机相结合来实现各方面功能。
论文的绪论部分对虚拟仪器进行了初步介绍,在之后的章节中介绍了与本设计相关的虚拟仪器开发软件LabVIEW。
之后通过学习软件的过程中,深入学习了视觉与运动模块,并通过LabVIEW 软件完成对视频监控系统各部分功能的实现。
视频监控系统主要由三部分组成分别为视频监控图像的采集、视频图像的保存、视频图像的后期处理以及自带的视频播放器进行视频的播放,最后生成EXE文件并打包生成SETUP安装程序,最终完成具有多项功能的视频监控系统。
利用LabVIEW 开发的视频监控软件,在开发过程中流程较为简单,通过其中自带的函数以及控件,可以十分方便的实现系统所需要的各项功能。
所以,利用LabVIEW设计的视频监控系统,在完成各项功能的同时,在日后系统功能的添加以及设备的更换方面都十分方便。
关键词:视频监控;图像的采集;图像的压缩和保存;图像后期处理;LabVIEW
Design of the Video monitoring system Based on LabVIEW
ABSTRACT
At present,t he 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 monitoring 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 virtual 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 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 pared with other 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 :Video monitoring system;Video image acquisition;Video image compression and save; image post processing ;LabVIEW
第一章绪论......................................................................................................................................
1.1 虚拟仪器的简介..................................................................................................................
1.2 本设计研究的主要内容.......................................................................................................第二章 LabVIEW的相关介绍.............................................................................................................
2.1 LabVIEW的简介 ..................................................................................................................
2.3 LabVIEW软件安装介绍 .......................................................................................................
2.4 视觉与运动模块介绍 ..........................................................................................................
2.5 设计相关的函数和控件的介绍............................................................................................
2.5.1 Vision(视觉)控件介绍........................................................................................
2.5.2 Vision and Motion(视觉与运动)模块介绍.........................................................第三章视频监控系统各模块的设计 .................................................................................................
3.1 设计开发流程框图..............................................................................................................
3.2 图像采集部分思路..............................................................................................................
3.3视频图像采集设计...............................................................................................................
3.3.1 创建VI程序 ............................................................................................................
3.3.2 IMAQdx Open Camera VI的使用..............................................................................
3.3.3 IMAQdx Configure Grab VI的使用 ........................................................................
3.3.4 IMAQ Create VI的使用...........................................................................................
3.3.5 IMAQdx Grab2 VI的使用.........................................................................................
3.3.6 Image Display的使用 ............................................................................................
3.3.7 带控件While的使用 ...............................................................................................
3.3.8 IMAQ Dispose VI的使用.........................................................................................
3.3.9 IMAQdx Close Camera VI的使用............................................................................
3.4 视频图像的压缩与保存.......................................................................................................
3.4.1 IMAQ AVI2 Create VI(创建视频)的使用 ............................................................
3.4.2 IMAQ AVI2 Get Codec Names VI(编码器名称的获取)............................................
3.4.3 IMAQ AVI2 Write Frame VI(帧写入)..................................................................
3.4.4 IMAQ AVI2 Close VI(关闭视频) .........................................................................
3.5 视频图像的后期处理 ..........................................................................................................
3.5.1 IMAQ Draw Text VI的使用 .....................................................................................
3.5.2 文本中时间格式的设置............................................................................................
3.5.3 截图功能的使用.......................................................................................................
3.6视频播放器的制作...............................................................................................................
3.6.1 ActiveX容器的使用 ................................................................................................
3.6.2 打开自动化的使用...................................................................................................
3.6.3 属性节点和调用节点的使用 ....................................................................................
3.6.4 时间延迟功能的使用 ...............................................................................................
3.6.5 关闭引用的使用.......................................................................................................
3.7 生成EXE文件和SETUP安装文件........................................................................................
3.7.1 生成 EXE文件 .........................................................................................................
3.7.2 生成SETUP安装程序 ...............................................................................................第四章系统调试与分析 ...................................................................................................................
4.1 系统调试.............................................................................................................................
4.2 设计错误分析 .....................................................................................................................第五章设计总结 ..............................................................................................................................参考文献 ...........................................................................................................................................致谢...................................................................................................................................................
第一章绪论
1.1 虚拟仪器的简介
虚拟仪器(Virtual Instrument)即为利用一系列的开发软件和具有相关功能的硬件相结合,以高效灵活的特点来满足开发者对各方面应用功能的需求[1]。
在虚拟仪器系统中,软件是整个操作系统的关键所在,而硬件只是作为外接设备,功能也只是将软件的处理完成的信息进行输入或者输出。
使用者若想更改仪器的功能数量等,只需要更改软件中的代码或数据即可,硬件部分不需要进行相关的改动。
虚拟仪器技术的出现,摆脱了传统仪器只能使用厂家定义仪器功能的束缚,实现了用户对功能自定义的要求,让用户可以随心所欲的创建开发自己所需要的功能的仪器。
虚拟仪器技术中最重要的部分为软件部分,在开发过程中使用适用的编程软件或调用专项的开发模块,使开发者可以更加有效的开发自己所需的应用,并加工美化出能让用户易操作的软件界面。
此外,虚拟仪器技术还包括外接的硬件部分和将软硬件结合的平台[2]。
本设计使用到了NI公司提供的图形化编程软件LabVIEW,该软件支持市面上大部分的外接硬件,也可扩展多种常用的软件,更拥有易操作的图形化编程模式,使用户可以更加方便、直观的开展各类程序的开发工作。
1.2 本设计研究的主要内容
目前,USB摄像头已经十分普及,利用USB摄像头作为硬件部分进行图像的采集不仅易安装、拆卸,而且价格较低,可以降低整个制作的成本。
通过对多款编程开发软件相比较后得到,LabVIEW软件的开发过程更加简
单方便。
所以本文的视频监控系统是通过LabVIEW软件以及USB摄像头硬件相结合的方式来完成视频监控系统的相关功能[3]。
设计前通过翻阅书籍和网络课程等了解LabVIEW软件的内容以及在市场上已经普及使用的监控设备所包含的具体功能,通过多方面所得到的信息综合后,归纳出本设计的视频监控系统所具有的功能和特点。
该系统功能包括能够采集实时的监控画面,监控画面能够自动的保存,软件拥有视频播放器,界面美观,用户容易上手,相关的功能键在较为显眼的位置[4]。
最终通过多方面对比后确定使用LabVIEW 2014版本作为软件部分,高清的USB摄像头作为硬件部分,通过软硬件相结合的方式来实现视频监控系统对监控画面实时的获取并显示,以及将获得的画面自动保存,并且在通过软件中的相关函数将时间等一些关键的信息元素加入到监控画面中。
系统整体的界面美观大方,并且各功能的使用易上手,使用户能在短时间内可以熟练的使用该监控系统中的各项功能。
第二章LabVIEW的相关介绍
2.1 LabVIEW的简介
LabVIEW是一款由美国家仪器(NI)公司研制开发的软件[5],该程序与常用的编程开发软件在功能上比较相似,但是LabVIEW与别的编程开发软件又有本质上的区别,其中最主要的区别是:其他的编程程序都是将自己的编程代码以文本代码的形式进行开发,而LabVIEW与传统的开发程序不同,它使用的是图形化编辑语言,俗称为“G”语言,程序的编写是以各种功能函数的图标进行节点的连线,最后按顺序运行各个函数以完成整个程序的功能[6]。
与传统的编程软件一样,LabVIEW 也拥有自己的一个可以处理各种功能任务的数据库,该数据库中含有多种编程函数,例如数据的采集、分析、处理、显示、储存以及各种数据串口的调用等。
LabVIEW 中也含有传统编程软件中所必备的扩展程序,例如,界面美化、硬件的扩展、设置程序运行的断点等等。
LabVIEW在前面板中提供了大量的仿真仪器控件,这些控件在外形上与实验室中常用的仪器十分相似,将其添加到程序中可以增加用户对该软件的亲和力并且可以更方便的在用户界面中使用。
LabVIEW 中的前面板为程序运行时的用户界面,在用户面板下有程序框图对程序的功能进行编译,最终通过相关控件的连接将程序显示在用户界面上。
LabVIEW程序开发功能的强大被各界所接受,在数据采集和硬件的控制方面被视为业界的标准[7]。
它还集成了大量的数据采集硬件的功能[7]。
它还内置了便于扩展的相关应用,例如网络开发的模块、将计算机系统中常用软件导入的模块[8]。
从总体上来说,这是一款上手较为容易并且功能十分齐全的开发软件。
2.3 LabVIEW软件安装介绍
本设计采用的是LabVIEW 2014版本的软件,首先在电脑上安装好LabVIEW2014专业版开发软件(只有专业版开发软件才支持后期EXE文件的生成和产生SETUP软件生成的功能)。
安装完毕后,选择开始→所有程序,找到名为NI LabVIEW 2014专业版,点击后即可启动LabVIEW 2014专业版,启动后弹出对话框如图1所示。
图1 LabVIEW启动画面
如图1所示,打开软件后,选择创建项目→创建一个空白的VI,新建的VI其扩展名默认为.vi。
VI创建后,可以观察到VI分为三个部分:前面板、程序框图、图标。
一个VI可以理解为由外向里的三部分,最外层即为前面板,这个是用户最终使用的界面,运行程序时,使用者直接与该界面进行交互。
第二层为程序框图相当于程序编程的代码部分,程序功能的编译都在程序框图上进行。
第三层即为图标,该功能主要为右上角显示
VI的属性以及查找全部实例的作用,如图2所示。
图2 新建的VI面板显示
2.4 视觉与运动模块介绍
本设计需要进行图像的采集和处理,实现此功能需要使用到LabVIEW 的扩展模块,即视觉与运动(vision and motion)模块。
视觉与运动(vision and motion)为LabVIEW的扩展部分,此部分需要用户到NI的官方网站下搜索下载,其中的部分函数在本设计的图像采集部分将会使用到。
视觉与运动模块的安装步骤是:本设计采用的是最新的LabVIEW 2014版本,此版本功能相对于老版本更加全面,运行速度也相对于较快。
首先去NI的官方网站下载:(1)视觉开发包Vision Development Module(VDM)2014版(2)NI Vision Acquisition Software(V AS_2015_02),这里需要注意下载的扩展模块必须与所使用的LabVIEW 2014软件的版本相同或者更高,这样安装过后模块的功能才能全部实现,否则安装老版本的模块,很多函数功能不能被使用。
全部下载完成后,首先安装Vision Development Module(VDM)2014版,再安装NI Vision Acquisition Software(V AS_2015_02)。
2.5 设计相关的函数和控件的介绍
2.5.1 Vision(视觉)控件介绍
在视觉开发包Vision Development Module(VDM)2014版安装完成后,会在软件中新增一个工具包Vision。
Vision中主要是用于图像的显示和后期处理的控件,用户可在前面板中到Vision工具包中的相关控件及具体使用方法。
如图3所示。
图3 Vision显示控件
从图中可以观察到,Vision打开之后,其中有6个与显示有关的控件。
本设计主要使用的是其中的Image Display(图像显示)。
(1)IMAQ Image.ctl:该控件是图像属性格式进行说明作用。
使用该控件在前面板中可以对图像格式以及类型进行说明。
(2)图像显示(Image Display):该控件用于在LabVIEW中直接创建并显示所获取的图像,创建一个该控件后,会在程序面板中直接显示一个图标,所编写的视频监控的最终画面显示就是将输出节点连接到该图标,即可把采集的视频图像显示到控件上。
图像显示如图显示有三种样板分别为Image Display、Image Display(Classic)、Image Display(Silver)。
这三种在样式上分别为普通、经典、银色,本质上功能是相同的。
(3)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的程序面板上可以看到新的一栏视觉与运动,这个模块是本设计主
要使用的模块,其中包含了视频的采集和保存等多项功能。
如图6所示,视觉与运动模块中,总共包含7大类函数。
其主要的功能为利用外接的硬件设备对图像进行采集并且通过一些函数进行后期的处理。
图6 视觉与运动模块
(1)NI-IMAQ模块
主要包括大量的图像采集函数,其主要支持NI相关的采集硬件,来完成对视频图像的采集。
其中包括对采集视频硬件的初始化与关闭,获取硬件设备信息,硬件参数的设定等等。
如图7所示。
图7 NI-IMAQ函数
(2)Vision Utilities(视觉工具)模块
该模块包含一些视觉处理的工具,用于对图像的画面进行一系列的加工处理。
其中包含的函数如图8所示。
图8 Vision Utilities模块
Image Management内部为管理图像的相关函数,该函数集合中的相关函数主要用于创建和释放所采集的图像,以及包含设置图像相关参数的函数[9]。
此外,其中还包含部分处理图像的VI,这些VI可对图像的外观就行修饰,比如图像的远程显示和图像的投射等。
如图9所示。
图9 Image Management函数
其中本设计会涉及到IMAQ Create、IMAQ Dispose相关函数,这两个函数的功能分别为:IMAQ Create——为图像提供系统获一个缓存;IMAQ Dispose——清除所显示过的图像的缓存。
File则是提供关于文件读写的相关功能。
例如,Read File提供图像的读取功能,Write File提供图像写入的功能,以及A VI函数中提供与视频录像处理、保存相关的函数。
如图10所示。
图10 File函数
(3)NI-IMAQdx模块
该模块主要用与采集图像、获得相机等硬件的相关信息、以及对硬件的控制等。
如图11所示。
图11 NI-IMAQdx模块
IMAQdx Snap2 VI:该函数主要功能为获取、启动、配置以及取消采集配置单元[9]。
该函数作为采集图像时进行准备工作的函数,也是在低速情况或者单捕获图像数据必不可少的一部分。
在调用该函数前需要调用IMAQdx Open Camera VI,IMAQdx Configure Grab VI,即打开摄像机和获取画面,通过接受其配置的相关摄像机和画面的数据,对打开摄像机获取的画面进行采集。
IMAQdx Configure Grab VI:该函数主要功能为采集图像并配置。
调用IMAQdx Grab VI在所获得的缓存中循环的采集并将采集的图像传输到之后的函数节点中。
IMAQdx Unconfigure Acquisition VI与其相反用于取消获取图像的配置。
IMAQdx Grab2 VI:该函数主要功能为获取当前所获得的画面帧。
若所获得画面的图像类型与所使用的摄像头支持的画面格式不匹配,该VI
将当前帧的图像自动转换到与所使用的摄像头匹配的格式。
IMAQdx Open Camera VI:该函数主要功能为打开摄像机,查询本机所拥有的摄像机并加载为该函数节点所配置的摄像机。
完成后调用IMAQdx Close Camera VI用于关闭摄像机。
IMAQdx Close Camera VI:该函数主要功能为关闭相机,停止之前打开相机后的程序运行的工作。
IMAQdx Enumerate Cameras VI:该函数主要功能为向用户返回计算机中包含的所有关于摄像头信息的列表。
(4)Vision Express(快速视觉)模块
快速视觉模块常用于短时间内较为迅速的开发采集图像以及处理图像的程序。
如图12所示。
图12 Vision Express模块
第三章视频监控系统各模块的设计
3.1 设计开发流程框图
本设计根据任务书拟定的相关任务,归纳出开发的视频监控所需要的相关功能,通过LabVIEW 2014版本软件的学习后制定出如下的流程框图。
图13 设计流程开发图
3.2 图像采集部分思路
本设计通过人们日常所使用的视频聊天的USB摄像头作为图像采集的硬件结合LabVIEW软件编写的程序,用摄像头采集相关的监控画面并通过软件程序处理后显示在计算机上,图像采集部分的程序框图如图14所示。
图像采集部分的编写所使用的函数主要为程序框图中的视觉与运动模块和前面板中的Vision模块。
具体的编程思路为:IMAQdx Open Camera VI→IMAQdx Configure Grab VI→IMAQ Create VI→IMAQdx Grab2 VI→IMAQ Draw Text VI→Image Display→IMAQ Dispose VI→IMAQdx Close Camera VI。
首先使用IMAQdx函数中IMAQdx Open Camera VI函数设置计算机所连接的摄像头并且将设置的摄像头打开,设置前可通过NI MAX查询摄像头名称信息,再将上个函数连接IMAQdx Configure Grab,通过该函数进行图像的动态采集,创建一个IMAQ Create VI用来向系统获取相应的缓存,将采取的图像和获得的缓存传输到IMAQdx Grab2 VI,该函数获取图像的当前帧并存于缓存中再获得下一帧,将图像一帧一帧的传输到文本处理处,文本处理在每一帧图像上添加当前帧的时间,再将每一帧的图像按顺序显示在Image Display上。
整个获取每帧图像处理再显示到窗
口上在一个带控件的While循环中,按下循环下的停止键则跳出循环,打开摄像头和获取内存与关闭摄像头和释放内存相对应,在按下停止后执行IMAQ Dispose VI释放缓存和IMAQdx Close Camera VI关闭摄像机从而程序停止运行。
图14 监控图像采集的程序框图
3.3视频图像采集设计
本设计视频图像采集部分使用到两部分模块,首先是前面板控件面板中的“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端口传输进该函数中。
函数在得到USB摄像头信息后,发出命令将其打开并通过Session Out 将打开的USB摄像头信息传输出。
图16 IMAQdx Open Camera VI
Error in与Error out用于输入和输出程序运行中出现的错误,并可通过Error out显示的错误代码来查询出程序的错误。
函数具体的内部结构如图17所示。
图17 IMAQdx Open Camera VI的前面板和程序框图
3.3.3 IMAQdx Configure Grab VI的使用
在视觉与运动模块IMAQdx中选择该函数,此函数的作用主要是对之前打开的USB摄像头进行配置和控制摄像头开始采集图像,如图18所示。
图18 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决定了宽度,图像的边界。
函数内部结构如图21所示。
图21 IMAQ Create VI的前面板和程序框图
3.3.5 IMAQdx Grab2 VI的使用
在视觉与运动模块IMAQdx中选择该函数,此函数的作用是获得当前传入采集的单帧图像,并存入之前获得的缓存中。
将此函数IMAQdx Configure Grab VI函数连接,在配置过摄像头相关信息后,则会使用该函数进行缓存的获取。
若设置的摄像头视频格式与获取的图像类型不匹配,则系统会自动将获取的图形转化到合适的图像类型格式,如图22所示。
图22 IMAQdx Configure Grab VI
Wait for Next Buffer? (Yes):该节点作用为判断是否等待下一个缓冲区,若为是,则等待系统提供下一个缓冲区,并继续进行采集图像;反之则不等待,直接进入到最后一个采集图像的缓冲区域。
Buffer Number Out:作用是输出系统缓冲区域的数值。
函数具体的内部结构如图23所示。
图23 IMAQdx Grab2 VI的前面板和程序框图
3.3.6 Image Display的使用
在前面板的Vision中找到Image Display并拖至前面板上,拖入后程序框图中也会出现相对应的一个函数,将该函数连接IMAQdx Grab2 VI,则所获得的每一帧处理的图像则会按顺序在该窗口上显示出来,如图24所示。
图24 Image Display
3.3.7 带控件While的使用
搜索函数While循环会出现两个,一个是While循环,另一个是带有停止功能的While循环。
本设计要求可以控制USB摄像头监控的开关,所以我们选择带停止功能的While。
使用该软件的循环结构时,常用的循环结构有For循环和While循环。
通常For循环在已知循环次数的情况下使用,而While循环在未知循环次数的情况下使用。
另外While循环提供布尔函数的相关功能,可以增加视频采集的流畅性。
While循环流程图如图25所示。
是否
图25 While循环流程图
如图所示,在While循环中,若程序框图内的相关代码满足循环条件则执行程序,并循环至下一次判断,若程序框图内部代码不满足循环条件则结束跳出循环。
3.3.8 IMAQ Dispose VI的使用
在视觉与运动模块中Vision Utilities的Image Management里找到IMAQ Dispose VI函数,该函数的主要功能是将之前提供的缓存清除, IMAQ Create VI和IMAQ Dispose VI一般为配套使用,如图26所示。
图26 IMAQ Dispose VI
3.3.9 IMAQdx Close Camera VI的使用
在视觉与运动模块IMAQdx中选择该函数,此函数功能为在程序结束后关闭摄像头。
如图27所示。
图27 IMAQdx Close Camera VI
通过以上编程运行后可以得到采集图像部分初步成型,运行程序可以
看到前置面板的窗口中显示USB摄像头采集的动态图像,如图28所示。
图28 动态图像采集画面
3.4 视频图像的压缩与保存
本设计中视频图像的压缩与保存是基于前一部分图像采集的前提下进行的。
使用IMAQ AVI中的一系列函数进行视频图像的压缩与保存的编程,编程的主要流程为:IMAQ AVI2 Create VI→IMAQ AVI2 Write Frame VI→IMAQ AVI2 Close VI。
此外还需要通过IMAQ AVI2 Get Codec Names VI 获得压缩视频图像所需的编码器名称列表。
该部分的程序框图如图29所示。
图29 视频画面的压缩、保存程序框图
3.4.1 IMAQ AVI2 Create VI(创建视频)的使用
在视觉与运动模块中Vision Utilities的File里找到AVI函数组,在其中左击IMAQ AVI2 Create VI,拖至程序框图中。
图30为其具体的图标和节点信息。
图30 IMAQ AVI2 Create VI
AVI Path:是压缩保存的视频文件的保存地址,该路径为详细的文件路径,保存的文件为AVI格式的视频文件,本设计设置的文件路径为E:\image\1.avi。
Frames Per Second:创建的视频每秒钟所录入画面的帧数,本设计设置的数值为10。
该节点的主要作用是设置保存视频文件的播放率,需要根据要求设置适合的播放率。
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连接至一个数组列表,运行程序则可以在前面板中看到本机所装有的编码器名称,本设计选用了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 VI
AVI Refnum是从IMAQ AVI2 Create VI中获得视频相关设置,将每一帧的图像写入创建视频所设置的文件位置,Image是将图像采集部分IMAQdx Grab2 VI输出每一帧的图像按顺序逐个传入到该函数,使监控画面按顺序将每帧画面写入进硬盘中。
该函数的内部结构如图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可以在监控视频画面中增加监控时的具体时间。
具体编程如图36所示。
图36 IMAQ Draw Text VI。