基于labview的视频监控系统的设计毕业论文(编辑修改稿)内容摘要:

Software( VAS_2020_02) ,这里需要注意下载的扩展模块必须与所使用的 LabVIEW 2020 软件的版本相同或者更高,这样安装过后模块的功能才能全部实现,否则安装老版本的模块,很多函数功能不能被使用。 全 部下载完成后,首先安装 Vision Development Module(VDM)2020 版,再安装 NI Vision Acquisition Software( VAS_2020_02)。 设计 相关 的 函数和控件的介绍 Vision(视觉)控件介绍 在视觉开发包 Vision Development Module(VDM)2020 版安装完成后,会在软件中新增一个工具包 Vision。 Vision 中主要是用于图像的显示和后期处理的控件 , 用户可在前面板中到Vision 工具包中的相关控件及具体使用 方法。 如图 3 所示。 图 3 Vision 显示控件 从图中可以观察到 , Vision 打开之后,其中有 6 个 与显示有关的控件。 本设计主要使用的是其中的 Image Display(图像显示)。 ( 1) IMAQ : 该控件是图像属性格式进行说明作用。 使用该控件在前面板中可以对图像格式以及类型进行说明。 ( 2) 图像显示 (Image Display):该控件用于在 LabVIEW 中 直接创建并显示所获取的图像 ,创建一个该控件后,会在程序面板中直接显示一个图标, 所编写的视频监控的最终画面显示就是将输出节点连接到该图标,即 可把采集的视频图像显示到控件上。 图像显示如图显示有三种样板分别为 Image Display、 Image Display( Classic)、 Image Display( Silver)。 这三种在样式上分别为普通、经典、银色,本质上功能是相同的。 ( 3) IMAQ 视觉控件 (IMAQ Vision controls): 该控件主要作用为对视觉图像可以进行相关控制。 该控件组中包含了一些对图像分析、处理以及颜色类型相关的控件函数。 ( 4)机器视觉控件 (Machine Vision controls):该控件 中包含对图像的 机器视觉进行控制,加工等相关控件。 10 图 4 IMAQ 视觉控件 图 5 机器视觉控件 Vision and Motion(视觉与运动)模块介绍 安装完 NI Vision Acquisition Software( VAS_2020_02)后,在程序 VI 的程序面板上可以看到新的一栏视觉与运动,这个模块是本设计主要使用的模块,其中包含了视频的采集和保存等多项 功能。 如图 6 所示,视觉与运动模块中,总共包含 7 大类函数。 其主要的功能为利用外接的硬件设备对图像进行采集并且通过一些函数进行后期的处理。 图 6 视觉与运动模块 ( 1) NIIMAQ 模块 主要包括 大量的 图像采集函数,其主要 支持 NI 相关的采集硬件,来完成对视频图像的采集。 其中包括对采集视频硬件的初始化与关闭,获取硬件设备信息,硬件参数的设定等等。 如图 7 所示。 11 图 7 NIIMAQ函数 ( 2) Vision Utilities(视觉工具)模块 该模块包含一些视觉处理的工具,用于对图像的画面进行 一系列的加工处理。 其中包含的函数如图 8 所示。 图 8 Vision Utilities 模块 Image Management 内部 为管理图像 的相关函数 , 该函数集合中的相关函数主要用于创建和释放所采集的图像,以及包含设置图像相关参数的函数 [9]。 此外, 其中还包含部分处理图像的 VI,这些 VI 可对图像的外观就行修饰,比如图像的远程显示和图像的投射等。 如图 9所示。 12 图 9 Image Management 函数 其中本设计会涉及到 IMAQ Create、 IMAQ Dispose 相关函数,这两个函数的功能分别为:IMAQ Create—— 为图 像提供系统获一个缓存; IMAQ Dispose—— 清除所显示过的图像的缓存。 File 则是提供关于文件读写的相关功能。 例如, Read File 提供图像的读取功能, Write File提供图像 写入 的功能,以及 AVI 函数中提供与视频录像处理、保存相关的函数。 如图 10 所示。 图 10 File函数 ( 3) NIIMAQdx 模块 13 该模块主要用与采集图像、获得相机等硬件的相关信息、以及对硬件的控制等。 如图 11 所示。 图 11 NIIMAQdx模块 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: 该函数主要功能为向用户返回计算机中包含的所有关于 14 摄像头信息的列表。 ( 4) Vision Express(快速视觉 )模块 快速视觉模块常用于 短时间内较为迅速的 开发 采集图像以及处理图像的程序。 如图12 所示。 图 12 Vision Express 模块 15 第三章 视频监控系统各模块的设计 设计开发流程框图 本设计根据任务书拟定的相关任务,归纳出开发的视频监控所需要 的相关功能 , 通过LabVIEW 2020 版本软件 的学习后 制定出如下的流程框图。 图 13 设计流程开发图 图像采集部分思路 本设计通过人们日常所使用的视频聊天的 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获取摄像头 创建图 像 临时缓冲区 在 while 中动态实时采集 创建视频压缩 在 while 中写入帧 关闭视频压缩 时间文本 视频监控画面 图像动态 实时采集 图像的压缩和保存 时间的记录 媒体播放器 16 → 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 监控图像采集的程序框图 本设计视频图像采集部分 使用到两部分模块,首先是前面板控件面板中的“ Vision”模块,其次程序框图控件面板中的“视觉与运动”模块。 创建 VI 程序 启动 LabVIEW 2020,创建新的 VI 程序,并且命名为。 如图 15 所示。 17 图 15 新建 VI 程序 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 的前面板和程序框图 18 IMAQdx Configure Grab VI 的使用 在视觉与运动模块 IMAQdx 中选择该函数,此函数的作用主要是对之前打开的 USB 摄像头进行配置和控制摄像头开始采集图像,如图 18 所示。 图 18 IMAQdx Configure Grab VI 图 19 IMAQdx Configure Grab VI 的前面板和程序框图 函数 具体的内部结构 如图 19 所示。 从程序框图中可以看出,该函数包含一个条件结构,即在输入的摄像头打开状态为真是开始采集图像。 IMAQ Create VI 的使用 在视觉与运动模块中找到 IMAQ Create VI 函数,该函数的主要功能是给图像提供缓存,如图 20 所示。 图 20 IMAQ Create VI 其中 Image Name 为加粗表示此端口必须要有输入,即要给此设置一个名字,本设计设置 19 成 image。 设置图片类型通过 Image Type 节点。 Border Size 决定了宽度,图像的边界。 函数 内部结构如图 21 所示。 图 21 IMAQ Create VI 的前面板和程序框图 IMAQdx Grab2 VI 的使用 在视觉与运动模块 IMAQdx 中选择该函数,此函数的作用是获得当前传入采集的单帧图像,并存入之前获得的缓存中。 将此函数 IMAQdx Configure Grab VI 函数连接,在配置过摄像头相关信息后,则会使用该函数进行缓存的获取。 若设置的摄像头视频格式与获取的图像类型不匹配,则系统会自动将获取的图形转化到合适的图像类型格式 ,如图 22 所示。 图 22 IMAQdx Configure Grab VI Wait for Next Buffer? (Yes): 该节点作用为判断是否等待下一个缓冲区,若为是,则等待系统提供下一个缓冲区,并继续进行采集图像 ; 反之。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。