




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、基于图像处理运动物体识别目录第一章绪论11.1 课题的背景和意义11.2 国内外研究动态1第二章视频捕捉相关技术概述32.1 USB2.0接口规范概述32.1.1 简介32.1.2 USB2.0物理结构概述32.1.3 USB2.0系统的构成32.1.4 USB2.0的主要优点42.2 Videoforwindows技术架构52.2.1 VFW简介52.2.2 VFW体系结构52.2.3 VFW视频捕获模块AVICap62.2.4 AVICap窗口类常用的数据结构及窗口类72.2.5 利用VFW支术实现视频捕捉的工作流程92.2.6 VFW技术实现视频捕获的优缺点11第三章运动检测技术概述12
2、3.1 运动图像的含义123.2 图像运动检测技术概述123.3 运动检测的典型应用133.4 运动检测的发展特点143.5 运动图像目标检测的研究14第四章视频捕获的设计方案与实现164.1 开发环境介绍164.2 视频捕获工具的选择184.3 实现视频捕获的基本方法184.4 实现视频捕获的具体步骤204.4.1 实现视频捕获基本功能的源码204.4.2 实现单帧捕捉244.4.3 实现视频录像方式一254.4.4 实现视频录像方式二28第五章运动检测监控录像设计与实现355.1 概述355.2 基本的研究思路355.3 实现的步骤365.4 功能的改进385.5 总结38第六章论文总结与
3、展望496.1 课题完成情况496.2 主要的研究成果496.3 存在的不足496.4 工作展望50参考文献47致谢49第一章绪论第一章绪论1.1 课题的背景和意义21世纪是信息化的时代,社会将由工业化社会转变为信息化社会,视频技术也因此而得到高速发展。它广泛应用于社会生活的各个方面,包括视频会议、监控系统、可视电话技术以及医疗影像系统等等。人们的生活也得到了很大的变化,人们可以实时地在家里就看到远在千里之外的事情。近年来,视频信号采集与存储在各行各业得到了广泛的应用,生活中有小区安全监控,电讯行业有机站监控,银行系统有柜员监控和金库监控,交通方面有违章和流量监控等等。因此开发带有视频捕捉和监
4、控的程序在日常生活中是非常实用的。在这些视频应用领域中,使用USB2.0摄像头进行图像采集和运动图像的检测就是其中的一个方面,USB2.0接口具有传输速度快、即插即用、使用方便等优点,因此USB摄像头图像采集技术就将成为图像采集和处理必备的基本技术。通过摄像头对感兴趣的目标或地点进行拍摄并且存储,可以获取视频录像,作为监控之用,在银行、商场、交通路口等有广泛的应用。其次当环境改变,拍摄目标运动时,也可以实时监控并采集运动的图像,并且存储到一个特别的地方,实现视频监控。可以应用于工矿企业、机关学校、银行保卫、公安报警、仓库、车站、码头、宾馆等单位,以实时监视、控制和报警等特点深受广大用户的欢迎,
5、并取得了较大的经济效益与社会效益网13。运动检测的目的是从序列图像中将变化区域从背景中分割出来。由于光照的变化、背景混乱运动的干扰、运动目标的影子、摄像机的抖动以及运动目标的自遮挡和互遮挡现象的存在,这些都给运动目标的正确检测带来了极大的挑战。运动目标的正确检测与分割影响着运动目标能否正确跟踪和分类因此成为计算机视觉研究中一项重要的课题18。1.2 国内外研究动态国内外在视频信号的采集与存储方面做了大量的研究工作。目前,除了对一般基于Windows系统下的视频采集与存储、单片机系统下的视频监控设备以外,在高速视频采集、存储和传输,视频采集存储系统的小型化等方面,均取得了许多重要成果。第一章绪论
6、近年来智能交通系统(ITS)在欧美得到快速发展,它是一种基于图像识别技术的非接触式交通参数视频检测方法,它利用数字图像识别技术,对用高速摄像机拍摄的交通现场画面进行处理,获得被检测车道上车型、车速、车流量等交通参数,为交通控制和管理提供准确的交通流数据,从而更有效地进行交通控制和管理。与传统的接触检测方式相比,它的工作量小,检测范围大,系统可靠性高,是一种很有前途的方法。运动分析是近年来计算机视觉领域中备受关注的前沿方向,尤其是在美国、英国等发达国家已经开展了大量相关项目的研究。1997年美国国防高级研究项目署(DefenseAdvancedResearchProjectsAgency)立了卡
7、内基梅隆大学为首、麻省理工学院等高校参与的视觉监控重大项目VSAM(visualsurveillanceandMonitoring),英国的雷丁大学已开展了对车辆和行人的跟踪及其交互作用识别的相关研究。在国内,运动图像分析已在人体运动检测与跟踪、智能交通、机器人视觉、运动目标检测与跟踪等诸方面展开了深层次研究。总之,在多媒体技术飞速发展的今天,视频采集与存储系统将得到广泛的应用,并且不断改进。目前,实现视频捕获主要有两种方法,一种是利用视频捕获卡所附带的SDK开发工具。开发者只需利用采集卡所提供的控件就能方便的进行二次开发。开发简便、采集性能好是其最大的优点。同时,缺点也是显而易见的:这种捕获
8、方法的实现是与设备有关的,依赖于视频捕获卡与摄像头的类型,不利于灵活的应用,而且其封装好的SDK函数不利于用户作更底层一点的操作,扩展性不好。另一种方法是利用数字视频处理软件开发包直接对数字化的视频捕获设备捕获到的数据进行处理。用它开发应用程序的特点是捕获视频时不依赖专用的硬件设备,而且应用灵活。随着计算机总体性能的不断提升,用软件来实现视频采集过程也能获得较好的图像效果。windows平台为多媒体信息技术的处理和集成提供了强有力的支持,也为数字视频信息的实时捕获提供了多种实现技术。主要有早期的Microsoft多媒体控制接口MCI(MultimediaControlInterface)这里主
9、要指VideoforWindows(VFW),以及现在DirectShow.技术。第二章视频捕捉相关技术概述第二章视频捕捉相关技术概述2.1 USB2.0接口规范概述2.1.1 简介USB是英文UniversalSerialBus的缩写,中文含义是通用串行总线”。在视频存储和图像宽带领域中,经常遇到实时高速数据传输的问题。2000年4月,由Intel、Microsoft>NEC、Compaq、Lucent、Phillips等公司发布了USB2.0版本,其传输速率提高到48OMb/s,一时间USB红遍全球.现在USB支持3种传输速率:低速(1.5Mb/s)、全速(12Mb/s)和高速(48
10、OMb/s),四种传输类型:块传输、同步传输、中断传输和控制传输。这使USB应用起来灵活方便,能够满足多种外设需要。USB2.0在传输速度方面有很大改进,但USB设备之间直连互通仍需依赖计算机主机,仍没有合适的直通解决方案。2001年底,USB开发者论坛USBIF(USBImplementersPorum)发布了USB2.0补充规范USB0n-The-G。使支持该协议的USB外设可以以主机的身份和另外特定的一组外设直接通信,进一步拓展了USB技术的发展空间网。2.1.2 USB2.0物理结构概述在终端用户看来,USB系统就是USB设备到主机的简单连接,但对开发人员来说,这种连接可被分为三个逻辑
11、层:功能层、USB设备层和USB总线接口层,且每一层都由主机和USB设备的不同功能模块组成。USB规范向下兼容,在物理结构上,USB2.0规范具有与USB1.X相同的结构特征,采用分层的星型结构:在连线上,可以使用USB1.1系统已有的设备连线,信号线长度一般不能超过5m。在扩展USB设备连接时,用户可采用级联USB集线器的方式,最多可级联5级USB集线器,使USB设备数量达到127个。2.1.3 USB2.0系统的构成USB系统主要由主控制器(HostController)>USB、Hub和USB外设(PeripheralsNode)®成系统拓扑结构14,如图2.1所示。它的
12、硬件组成:一个实用的USB数据采集系统包括A/D转换器、微控制器以及USB通信接口。为了扩展其用途,还可以加上多路模拟开关和数字I/O端口。系统的A/D、数字I/O的设计可沿用传统的设计方法,根据采集的精度、速率、通道数等诸元素选择合适的芯片,设计时应充分注意抗干扰的性能,尤其对A/D采集更是如此。在微控制器和USB接口的选择上有两种方式,一种是采用普通单片机加上专用的USB通信芯片。另一种方案是采用具备USB通信功能的单片机。图2.1USB总线的拓扑结构2.1.4 USB2.0的主要优点速度快。USB有高速和低速两种方式,主模式为高速模式,速率为12Mbps,另外为了适应一些不需要很大吞吐量
13、和很高实时性的设备,如鼠标等,USB还提供低速方式,速率为1.5Mb/s14。设备安装和配置容易。安装USB设备不必再打开机箱,加减已安装过的设备完全不用关闭计算机。所有USB设备支持热拔插,系统对其进行自动配置,彻底抛弃了过去的跳线和拨码开关设置。易于扩展。通过使用Hub扩展可拨接多达127个外设。标准USB电缆长度为3m(5m低速)。通过Hub或中继器可以使外设距离达到30m。能够采用总线供电。USB总线提供最大达5V电压、500mA电流。使用灵活。USB共有4种传输模式:控制传输(C0NTR0L)、同步传输(Synchronization)中断传输(interrupt)、批量传输(bul
14、k),以适应不同设备的在亚1W女02.2 Videoforwindows技术架构2.2.1 VFW简介VFW是微软公司1992年推出的关于数字视频的一个软件包。它能使应用程序数字化并播放从传统模拟视频源得到的视频剪辑。VFW的一个关键思想是播放时不需要专用硬件。为解决数字视频数据量大的问题,需要对数据进行压缩。于是,它引进了AVI的文件标准,该标准未规定如何对视频进行捕获、压缩及播放,仅规定视频和音频该如何存储在硬盘上,在AVI文件中交替存储视频帧和与之相匹配的音频数据。VFW给程序员提供.VBX和AVICap窗口类的高级编程工具,使程序员能通过发送消息或设置属性来捕获、播放和编辑视频剪辑。V
15、FW编程充分体现了C+的类封装风格,使得进行视频软件开发的程序设计工程师,完全不必了解艰深而晦涩的图像压缩原理和图像格式,直接面对的是面向对像的开发模块的标准化的用户界面2o2.2.2 VFW体系结构VFW以消息驱动方式对视频设备进行存取,可以很方便地控制设备数据流的工作过程。它主要包括多个动态连接库,通过这些组件间的协调合作,来完成视频的捕获、视频压缩及播放功能。VFW体系结构如图2.2所示,VFW主要由以下6个模块组成7:(1) AVICAP.DLL:包含了执行视频捕获的函数,它给AVI文件I/O和视频,音频设备驱动程序提供了一个高级接口。(2) MSVIDEO.DLL:用一套特殊的Dra
16、wDib函数来处理屏幕上的视频操作。(3) MCIAVI.DRV:此驱动程序包括对VFW的MCIA命令的解释器。(4) AVIFILE.DLL:支持由标准多媒体I/O(MMIO)函数提供的更高的命令来访问.AVI文件。(5) 压缩管理器(ICM):管理用于食品压缩-解压缩的编解码器(6)音频压缩管理器ACM:提高与ICM相似的服务,不同的是它适于波形音频。图2.2VFW体系结构图2.2.3 VFW视频捕获模块AVICapVisualC+在支持VFW方面提供有vfw32.lib、msacm32.libwinmm.lib等类似的库。特别是它提供了功能强大、简单易行、类似于MCIWnd的窗口类AVI
17、Cap。AVICap为应用程序提供了一个简单的、基于消息的接口,使之能访问视频和波形音频硬件,并能在将视频流捕获到硬盘上的过程中进行控制2。AVICap支持实时的视频流捕获和单帧捕获并提供对视频源的控制。虽然MCI也提供数字视频服务,比如它为显示.AVI文件的视频提高了avivideo命令集,为了视频叠加提供了overlay命令集,但这些命令主要是基于文件的操作,它不能满足实时地直接从视频缓存中取数据的要求,对于使用没有视频叠加能力的捕获卡的PC机来说,用MCI提供的命令集市无法捕获视频流的。而AVICap在捕获视频方面具有一定的优势,它能直接访问视频缓冲区,不需要生成中间文件,实时性很强,效
18、率很高。同时,它也可将数字视频捕获到文件。使用AVICap窗口类可以轻易将视频捕捉和应用程序相结合。AVICap给应用程序提供了一个非常简单的、基于消息的从硬件访问视频和声音的接口,使应用程序可以控制视频从捕获到存盘的过程。AVICap支持实时的视频流捕捉和单帧捕捉。该类提供了对MCI视频源的完全控制,这样,开发人员就可以任意确定视频捕捉的起点和终点,并且有可能对其中的一个点即单帧进行访问。用AVICap窗口类创建的窗口可以完成以下工作6。(1)将一视频流和音频流捕获到一个AVI文件中。(2)动态的和视频或声音输入设备进行连接和断开连接。(3)使用叠加或者预览方法对输入信号进行实时显示。(4)
19、设定捕捉频率。(5)显示控制视频源、视频格式和视频压缩的对话框。(6)装载、创建或保存调色板。(7)将图片或调色板复制到剪贴板上。(8)单独捕捉一副图像并且保存为一张与设备无关的图片文件(DIB)02.2.4 AVICap窗口类常用的数据结构及窗口类AVICap为应用程序提供了一个简单的、基于消息的接口,使之能够访问视频和波形音频硬件,并能够在视频流捕获到硬盘上的过程中进行控制。这些接口函数,是高级的,经过了优化的,我们利用它们来创建自己的应用程序具有较大的灵活性。下面是视频捕捉以及处理过程中涉及到的几个很重要的结构:(1) CAPSTATUS:此结构定义了捕获窗口的当前状态,如:以象素为单位
20、表示图像的高、宽、预览和重叠方式的标志量,尺寸缩放的标志量等。CAPDRIVERCAPS:此结构定义了捕获驱动器的能力,如有无视频叠加能力,以及能否通过用户直接操作捕获窗口而查看视频源、视频格式、视频源、视频显示。(3)CAPTUREPARMS:包含控制视频流捕获过程的参数,如捕获帧频,指定键盘或鼠标键以终止捕获,捕获时间限制等;以上3个结构都专门有对应的函数来设置和获得相应结构所包含的相应信息。(4)VIDEOHDR:定义视频数据块的头信息。在编写回调函数时常用到其数据成员IpData(指向数据缓存的指针并DdwBufferLength(数据缓存的大小)。VFW中视频捕捉编程常用的一些VFW
21、函数和宏如下表1所示16:表1视频捕捉常用的VFW函数和宏VFW函数和宏功能描述消息CapCreateCaptureWindow创建捕救窗口CapDriverConnect连接窗口与驱动器WM_CAP_DRIVER_CONNECTCapDriverDisconnect断开窗口与驱动器的连接WM_CAP_DRIVER_DISCONNECTCapDriverGetCaps得到驱动器的性能WM_CAP_DRIVER_GET_CAPScapGetStatus得到捕获窗口的状态WM_CAP_GET_STATUSCapPreviewRate设置预视帧率WM_CAP_SET_PREVIEWRATEcapPr
22、eiew设置为预视帧方式WM_CAP_SET_PREVIEWcapOverlay设置为覆盖方式WM_CAP_SET_OVERLAYCapDlgVideoFormat设置格式对话框WM_CAP_DLG_VIDEOFORMATCapDlgVideoSoure设置图像源对话框WM_CAP_DLG_VIDEOSOURCECapDlgVideoCompression设置压缩对话框WM_CAP_DLG_VIDEOCOMPRESSIONCapCaptureGetSetup得到设置参数WM_CAP_GET_SEQUENCE_SETUPCapCaptureSetSetup设©»WM_CAP_
23、SET_SEQUENCE_SETUPCapFileSetCaptureFile设置捕捉文件WM_CAP_FILE_SET_CAPTURE_FILECapCaptureSequence捕捉到文件WM_CAP_SEQUENCECapCaptureStop停止捕捉WM_CAP_STOPCapGrabFrameNoStop截取当前图像WM_CAP_GRAB_FRAME_NOSTOPCapEditCopy把图像拷入剪贴板WM_CAP_EDIT_COPY通过使用AVICap窗口类函数,可以在应用系统中方便的集成视频采集功能。它为应用程序提供了一个基于消息的简单的接口,从而使之能够访问视频采集硬件,并能控制
24、将所捕捉的视频流写到磁盘的过程。用AVICAP窗口类函数创建的窗口(通过CapCreateCaptureWindowS数创建)被称为捕获窗,该窗口的客户区用来显示采集卡传入计算机的实时视频图像,其窗口风格一般为WS_CHILD和WS_VISIBLE。在视频采集之前需要创建一个捕获窗,所有的视频操作及其设置都以它为基础。AVICap在显示视频图像时提供了以下两种模式:(1)预览(Preview)模式:该模式把数字化的帧从捕捉硬件传到系统内存,显示要占系统资源,视频由系统调用GDI函数在捕获窗中显示,Preview模式的显示速度慢,该模式的视频格式为RGB格式。(2)叠加(overlay)模式:在
25、该模式下将捕捉缓冲区的内容直接在监视器上显示,而不占用CPU资源。视频卡将VGA的输出信号与其自身的输出信号叠加合并,所得的组合信号显示在计算机的监视器上。这种方式的视频显示比预览方式有更好的连贯性。所捕获的视频数据的显示不需要占系统资源,显示速度快,同时不影响系统的其它任务。但是如果应用程序要对捕获的图像在显示之前进行加工,则最好在预览模式下进行,先把图像数据送到系统内存,根据需要对图像进行处理后再把图像显示出来。该模式为部分采集设备所具有的能力,因此在视频采集程序中要先加以判断,以选择最佳的显示模式。2.2.5 利用VFW技术实现视频捕捉的工作流程利用VFW技术可以方便的实现视频的捕捉,下
26、面我们讨论一下进行视频捕捉的基本工作流程,如下图2.3所示:(1)创建捕获窗口捕获窗口也就是被采集到的图像的预览窗口,它是其他捕获工作的基础。通过函数CapCreateCapturewindo恻完成捕获窗口的创建,并取得该捕获窗口的句柄。(2)注册回调函数回调函数由开发人员预先定义好,事件发生时由操作系统来调用,调用的接口也是由系统定义好的。AVICap中定义了多个的回调函数的形式。(3)设置捕获窗口的相关参数用宏CapCaptureGetSetu集获得当前采集的参数设置或默认的参数设置,该宏返回的值是一个CAPTUREPARMS结构。可以根据具体的需要来修改图2.3利用vfw进行视频捕获的流
27、程图CAPTUREPARMS结构中的相应变量来设置捕获参数,设置结束捕获的方式。(4)与视频采集设备相连接可以直接用宏CapDriverConnect(hWnd,Index)将采集窗口和指定的采集设备连接起来(hWnd是采集窗口的句柄,Index是指定的采集设备的号码),也可以先用CapGetDriverDescription函数获得系统中所有的采集设备的名称和其版本信息,然后再选择其中一个采集设备将它和采集窗口。(5)获取视频采集设备的能力及状态信息用宏CapDriverGetCap冰获取视频设备的能力。用宏CapGetstatu耒获取视频设备的状态。(6)设置捕捉窗口的显示模式上一步获取的
28、视频设备的能力存放在CAPDRIVERCAPS结构中,可以通过其fHasOverlay域来判断设备是否具备Overlay模式。若具有Overlay模式就可以通过Capoverlay启动,否则,可以通过CapPreviewO动Preview模式。(7)捕捉图像到缓存或文件并进行处理这就涉及到前面介绍的视频数据传输的两种模式。若准备对捕获的数据进行实时处理就用到回调机制可以注册函数CapSetCallbackOnFrame当一帧结束就立刻产生回调;若要及时保存捕获到的视频数据,则可以调用宏CapCaptureSequence将数据存入文件中。其扩展名为avio(8)终止视频捕捉并断开与视频采集设备
29、的连接结束捕获时,应进行各种清理工作,捕获终止、取消回调函数、释放内存、断开驱动给其他设备使用视频硬件等。2.2.6 VFW技术实现视频捕获的优缺点通过分析VFW的模块AVICap窗口实现视频捕获的过程,我们知道,AVICap窗口类封装了有关视频捕获的底层API函数,才使得编程人员在编写的应用程序中实现了视频捕获功能。它提供一个简便的、基于消息的接口,程序通过它可以完成由视频捕获硬件获取数据,并按照需要的格式进行存储或进行其它处理。VFW的优势在于简单直观,能够比较快捷地运用回调函数、宏等函数完成实时的视频捕获和单帧捕获并提供对视频源的控制。AVICap类能直接访问视频缓冲区,而不需要生成中间
30、文件,实时性很强,效率较高。同时,VFW也存在着一些缺点。首先,其结构化的编程模式已经落后于当前面向对象的程序设计思想,在整体上破坏了软件的体系结构。它支持的数据格式有限,只能存储、处理AVI的文件。另外,由于自1992年以来VFW技术的总体结构没有太大变化,采用VFW技术的捕获系统存在通用性差、维护困难、系统可扩展性差、不能很好地支持PCI总线、总线控制器等新的硬件技术等问题。在网络视频会议等领域迅速发展的今天,VFW架构自身固有的设计缺陷逐步显露出来,缺少对视频会议、电视观赏、视频捕捉以及处理附加数据流如垂直消隐间隔(VBI,VerticalBlankingInterval)等的关键功能支
31、持。第三章运动检测技术概述1.1 运动图像的含义与静止图像相比,动态图像的基本特征就是灰度的变化。具体说来,在对某一景物拍摄到的图像序列中,相邻两帧图像间至少有一部分像元的灰度发生了变化,这个图像序列就称之为动态图像序列。造成灰度变化的原因是多种多样的,主要有以下几类18:(1)景物本身发生了变化:物体发生了变形(扩大或缩小)或运动(旋转、平移);(2)相机与景物发生了相对运动:相机的平移、旋转使图像内容发生了改变;(3)照度变化:照射景物的光源发生变化导致物体亮度改变;(4)上述几种情况的组合;由此可见,图像灰度变化的原因很多,本文研究讨论的内容主要集中在景物与射相机之间相对运动所形成的动态
32、图像上。而这种动态图像又分为两类:一类是背景是静止的,物体是运动的;另一类是背景是变化的,物体是运动的。在此我们主要研究的是背景是静止的,物体进入摄像机范围,即物体的运动引起的图像灰度变化。我们通常在直观上将运动与变化联系起来,因此我们对运动分析的讨论就从观察序列中的两帧图像的差别开始。对于一个大场面的远景图像来说,从直观上看它们的差别不明显。但是在两帧图像相减后的差分图像上,差别就很明显了。从中可以很清晰地看出图像中发生了物体的运动变化。因此,在对图像进行质的描述后,我们就明显地感觉到运动分折对动态景物的理解是很有帮助的。根据对运动图像的观察我们得出以下结论:运动可能导致灰度的时变。但反过来
33、不成立的,即灰度的时变不一定就是由运动引起。照度和环境光反射的改变同样会引起灰度时变。本文我们研究的就是运动导致的灰度变化。1.2 图像运动检测技术概述数字图像处理是从20世纪60年代以来随着计算机技术和VLSL(VeryLargeScalelntegrated)勺发展而产生、发展和不断成熟起来的一个新兴技术领域,与人类视觉机理着迷的历史相比,它是一门相对年轻的学科。但在其短短的历史中,它却广泛应用于几乎所有与成像有关的领域,在理论上和实际应用上都取得了巨大的成就,并引起各方面人士的广泛重视。有几个因素表明数字图像处理领域将一直保持持续发展的势头。其主要因素是图像处理所需的计算机设备的不断降价
34、,处理器和大容量存储器都一年比一年便宜。第二个因素是图像数字化和图像显示设备越来越普及。诸多迹象表明计算机设备的价格将继续下降。运动目标的检测技术是通过对摄像机获取的动态序列图像进行分析数据量通常都很庞大,现有的算法在一般处理器上实现起来处理速度明显不足,实时性很差,离实用化还有相当的距离。如果采用专用的芯片组实现,虽然实时性得到了保证,但系统的灵活度会大大降低,不利于以后功能升级。近年来,出现了一些可视化的监控系统,可以满足人们眼见为实”的要求,但这种监控系统较多地集中在基于PC机的图像监控,它要求监控人员不停地监视屏幕,获得视频信息,通过人为的理解和判断,才能得到相应的结论,做出相应的决策
35、。而让监控人员长期盯着众多的电视监视器成了一项非常繁重的任务,特别在一些监控点较多的情况下,监控人员几乎无法做到完整全面的监控。对于更广泛的中、小型企业、办公室和家庭用户来说,更需要一种体积小、适于安装、操作简单、可靠性高、价格便宜同时具备自动化、智能化的数字图像监控产品,于是基于嵌入式的智能监控系统应运而生。对它的研究具有很大的实际意义。1.3 运动检测的典型应用基于运动图像的目标检测在科学技术研究和工程应用上有着广阔的应用前景10。例如:(1)军事上:用于对空监视中的多目标跟踪机载或弹载前视红外图像中的目标检测、导弹动态检测等方面。(2)工业上:用于工业过程控制、机器人视觉、白主运载器导航
36、等方面。(3)商用上:用于高清晰度电视及电视会议的动态图像传输中的频带压缩等方面。(4)医学上:用于生物组织(如显微镜下的细胞和x光或超声波下的器官)运动分析等方面。(5)气象上:用于云图的分析预报。(6)运输上:用于交通管理、运输工具的流量控制等方面。1.4 运动检测的发展特点运动目标检测方法多种多样,但到目前为止,还没有一个通用的算法,这是因为运动目标检测算法大多都是针对具体情况的。应用场合和场景观条件的不同,必然导致运动目标检测方法的不同。总结起来,运动标检测技术的发展有如下特点14:1 .形成了三种传统的运动目标检测方法:光流法、帧问差分法和背景减除法。其中基于差分图像的帧间差分法和背
37、景消减法是目前应用视觉系统应用最广泛的检测方法。2 .传统检测方法不断改进。一方面,针对三种传统检测方法自身的不足和某些缺陷,提出了许多改进方法,使之更稳健,更实用;另一方面,将不同检测方法结合起来,克服单个方法的缺点,使其优点互补。这是运动目标检测技术研究的热点和重点之一。3 .新颖算法不断涌现。当一种技术滞留于传统算法的基础上时,这种技术也就失去了其应有的生命力。只有新颖算法的不断涌现,才能促进这种技术的蓬勃发展。曲线演化等新颖算法的出现,使运动目标检测技术的研究发展走上了一个新的台阶。新的检测算法是运动目标检测技术研究的另一热点和重点。4 .稳健性、准确性和实时性是运动目标检测技术研究和
38、应用的主旋律。5 .5运动图像目标检测的研究运动目标是生活中常见的,如活动的动物,行驶的运载工具以及自然界其他运动物体等。利用图像捕捉并跟踪感兴趣的运动目标在许多领域有广泛的应用。运动目标如天文观测中的星体、气象分析中的云图,安全监视中的人或动物,交通管制中的汽车、飞机、轮船等。对于运动图像的检测分析,背景图像是静止的情况,现阶段的研究成果比较成熟,也易于广泛实现,常见的有背景减除法、时间差分方法等,而对动态变化的背景图像,由于外界条件的复杂多变性,研究方法不可能完全一致,因而各研究方法也会有不同的适用性。目前常用的运动目标检测方法有三种:帧问差方法,背景减除和光流法。帧问差法方法是在连续的图
39、像序列中两个或三个楣邻帧间采用基于像素的时间差分并且阈值化来提取出图像中的运动区域。背景减除法是目前运动分割中最常用的一种方法,它是利用当前图像与背景图像的差分来检测出运动区域的一种技术。它一般能够提供最完全的特征数据,但对于动态场景的变化,如光照和外来无关事件的干扰等特别敏感。光流法测采用了运动目标随时间变化的光流特性,如Meyer等通过计算位移向量光流场来初始化基于轮廓的跟踪算法,从而有效地提取和跟踪运动目标。目标的运动图像序列为低信噪比情况下的目标检测提供了比目标静止时更多的有用信息,使得我们可以利用图像序列检测出真图像中很难检测出的目标。由运动目标所形成的图像序列可分为两种情况:一种是
40、静止背景,一种是变化的背景。前一种情况通常发生在摄像机相对静止的状态,后一种情况通常发生在摄像机相对运动状态(如装在卫星或飞机上的监视系统)。从处理方法上看,一般是采用突出目标或消除背景的思想。对前一种情况可采用消除背景的方法,出来起来比较简单,如简单的帧间差分或自适应背景对消方法。对后一种情况,处理起来比较复杂,若采用消除背景的方法,则通常需要先进行帧问图像配准,若采用突出目标的方法,则需要在配准的前提下进行多帧能量积累和噪声抑制。止匕外,还可以采用光流模型方法,背景模型法,基于嫡的方法等方法从运动速度上区分不同目标与背景。第四章视频捕获的设计方案与实现4.1开发环境介绍在本论文中,使用的开
41、发环境是VisualC+6.0软件。它是Microsoft公司推出的一个面向对象、功能丰富的可视化开发工具,是近十年来程序设计领域中最强大的开发工具之一。利用VisualC+6.0提供的高效Windows编程环境,可以编写各种各样的软件,尤其是其他语言所难以企及的关于底层操作的软件1。VisualC+6.0之所以受到无数的程序员的青睐,主要是有3方面的原因:(1)它是C和C+的混合编译器,使得VisualC+6.0开发的程序具备了C和C+的高效、简洁的特点。(2)它是一种面向对象的语言,使得软件能够在源码级、类级、控件级等多个级别上重用,软件的开发效率大为提高。(3)借助于Microsoft出
42、色的MFC类库和应用程序框架能够轻而易举开发出Windows标准界面的应用程序。VisualC+6.0首先是一种程序设计语言,同时也是一个集成开发工具它提供了自动生成软件代码和可视化资源编辑的功能。VisualC+6.0是Windows环境下最主要的面向对象(ObjectOriented)应用开发环境之一,它不仅是C+语言的集成开发环境,而且与Win32紧密相连。所以,使用VisualC+6.0可以灵活地开发从底层软件到上层直接面向用户的软件。另外,在大型复杂软件的开发使用VisualC+6.0的调试工具可以有效地进行排错,开发环境是程序员与VisualC+6.0的交互界面,通过它程序员可以创
43、建工程文件,创建或访问C+源代码、资源文件等。DeveloperStudioFF发环境,即VisualC+6.0的开发环境,问程序员提供了一个面向对象C+程序进行开发和调试的平台3。在开始VisualC+6.0程序设计之前,首先应该对开发平台即VisualC+6.0的集成开发环境(IDE)有一个了解。熟悉这个开发环境,能提供程序设计的效率,也能给我们创造一个舒心的开发界面。启动程序后,我们可以看到一个窗口,如下图4.1所示,他的每个区域都有其特定的用途,我们可以重新布置各个区域来定制自己的开发环境,时期适合自己的特殊开发需要和个人习惯。主界面窗口包括有以下几部分:1,工作区,它是确定开发项目中
44、各部16分位置的关键工作区;2,输出窗格,它是向用户提供信息的地方,这些信息包括编译程序的进展说明、警告及出错的信息;3,编辑区,它是VisualC+6.0中进行一切编译工作的区域,当编辑C+的源代码时将在这里显示代码编辑窗,当设计对话框时,窗口绘制器也在此显示;4,菜单栏,主要由File、Edit、View、Insert、Project、Build和Tools等组成,每个菜单又由多个选项构成;5,工具栏,它由某些操作按钮组成,分别对应着某些菜单选项或命令的功能。图4.1VisualC+的开始主界面VisualC+6.0大概可以分成三个主要的部分:1. DeveloperStudio。这是一个
45、集成开发环境,我们日常工作的99%都是在它上面完成的,再加上它的标题赫然写着“MicrosoftVisualC+,所以很多人理所当然的认为,那就是VisualC+6.0了。其实不然,虽然DeveloperStudio提供了一个很好的编辑器和很多Wizard,但实际上它没有任何编译和链接程序的功能,真正完成这些工作的幕后英雄后面会介绍。我们也知道,DeveloperStudio不是专门用于VC的,它也同样用于VB,VJ,VID等VisualStudio家族的其他同胞兄弟。所以不要把DeveloperStudio当成VisualC+6.0,它充其量只是VisualC+6.0的一个壳子而已。2. M
46、FC。从理论上来讲,MFC也不是专用于VisualC+6.0,BorlandC+,BuilderC+和SymantecC+同样可以处理MFC。同时,用VisualC+6.0编写代码也并不意味着一定要用MFC,只要愿意,用VisualC+6.0来编写SDK程序,或者使用STL,ATL,一样没有限制。不过,VisualC+6.0本来就是为MFC打造的,VisualC+6.0中的许多特征和语言扩展也是为MFC而设计的,所以用VisualC+6.0而不用MFC就等于抛弃了VisualC+6.0中很大的一部分功能。但是,VisualC+6.0也不等于MFC。3. PlatformSDK。这才是Visua
47、lC+6.0和整个VisualStudio的精华和灵魂,虽然我们很少能直接接触到它。大致说来,PlatformSDK是以MicrosoftC/C+编译器为核心(不是VisualC+6.0,看清楚了),配合MASM,辅以其他一些工具和文档资料。上面说到DeveloperStudi玳有编译程序的功能,那么这项工作是由谁来完成的呢?是CL,是NMAKE,和其他许许多多命令行程序,这些我们看不到的程序才是构成VisualStudio的基石。下面进入到程序的具体编辑阶段。4.2 视频捕获工具的选择经过前面的讨论研究,我们知道VFW和DirectShow这两个开发包都能够完成对视频的捕获。DirectSh
48、ow是微软公司在ActiveMovie和VideoforWindows的基础上推出的新一代基于COM的流媒体处理的开发包,与DirectX开发包一起发布。目前,DirectX最新版本为9.0。DirectShow为多媒体流的捕捉和回放提供了强有力的支持。运用DirectShow,可以很方便地从支持WDM驱动模型的采集卡上捕获数据,并且进行相应的后期处理乃至存储到文件中。这样使在多媒体数据库管理系统(MDBMS)中多媒体数据的存取变得更加方便,但是实现过程复杂。而使用VFW的优势在于简单直观,能够比较快地完成捕捉操作,由于研究的需要要求,在此选择使用VFW进行本课题。本课题主要是在PC机上用软件
49、实现的,所需硬件主要是一台PC机和一个数字摄像头,该摄像头是USB2.0口的摄像头4.3 实现视频捕获的基本方法VFW(VideoforWindows)函数是Windows环境下实现视频捕获的重要工具,是Windows操作系统增设的视频服务库。由于VFW函数可以方便地实现视频、音频数据流到AVI文件的存储,在VisualC+中也将VFW函数称为AVICAP窗口类函数。AVICAP窗口类为应用程序提供了一个基于访问视频采集硬件简便的、基于消息的接口,从而使之能访问视频和波形音频采集硬件,能灵活地实现从模拟视频源采集数字视频信号,并将所捕捉的视频流存储到磁盘或直接对视频缓存进行处理。通过使用AVI
50、CAP窗口类函数,我们能很方便地在应用程序中加入视频捕获功能。利用VFW函数进行视频捕获的工作流程如图4.2所示,对应使用的AVICAP函数命令如下:capCreateCaptureWindow();/创建视频捕获窗,并设置相关参数capDriverConnect();/连接视频捕获设备capDriverGetCaps();/瞅取摄像头的能力和状态capPreviewRate();/S置显示频率capPreview();/开始预览显示capCaptureAbort();侬止视频捕获capDriverDisconnect();/断开与视频采集设备的连接图4.2视频捕获流程这里仅用了简单的7条命令
51、,填上适当的参数,就可实现相当复杂的图像采集和显示功能。可见利用AVICAP函数,进行视频捕获的编程确实很方便。实际使用时,编辑程序,然后运行无错,就会弹出一个视频采集窗口,并在窗口中显示摄像头采集到的视频图像。在VFW中,可以有3种方式实现视频录像。其中,最简单的方式是调用capFileSetCaptureFileS数和capCaptureSequenc8数。该种方式存在许多缺点,例如,在录像时无法响应用户界面,无法实现视频压缩等。第二种方式是调用capCaptureSetSetu的数,将CAPTUREPARMS结构的fYield成员设置为TRUE,启动后台线程来实现录像,然后调用capDl
52、gVideoCompressiong数让用户选择压缩器进行压缩,最后调用capFileSetCaptureFilei数和capCaptureSequenc函数开始录像。第二种方式的缺点是每次录像时都需要弹出一个对话框,让用户选择一种压缩器。第三种方式是注册回调函数capSetCallbackOnVideoStream在回调函数中压缩数据并写入AVI文件。下面我们先尝试使用方式一实现视频录像。4.4 实现视频捕获的具体步骤在自己原有的VC+工程文件中增加视频捕获功能的步骤如下:(一)建立一个基于对话框的工程。(二)给工程文件增加VFW函数库。(三)增加一个视频采集对话框,用来显示视频图像和相关命
53、令按钮。4.4.1 实现视频捕获基本功能的源码工程文件中增加视频捕获功能源码的方法如下:(一)给上述的视频采集对话框增加一个新类。工程的头文件为:#include"stdafx.h"#include"VideoEncode.h"#include"VideoEncodeDlg.h"#include"math.h"#include"vfw.h"#include"VideoProc.h"(二)编辑原工程中的视图类文件,使得用户运行程序时,能够弹出视频采集对话框,利用到的主要函数就是
54、capCreateCaptureWindow()。(三)编辑视频采集对话框,添加视频格式“、视频源"、冻结图像”、解冻图像”、关闭窗口”等5个按钮。此时,编译文件时并不能通过,我们文件前面添加全局变量声明:CAPSTATUSsCapStatus;CAPTUREPARMSsCapParms;CAPDRIVERCAPSgCapDrvCaps;HWNDm_hWndVideo;处理到此,我们可以再次编译并试运行工程文件。在程序没有错误的情况下,应该能弹出视频采集对话框,并且可以看到采集到的实时视频图像,同时可看到前面我们设置的五个按钮,此时点击这些按钮是没有任何操作发生的,因为我们还没有对它
55、们进行编辑,所以它们还不能实现任何功能,视频采集对话框如下图4.3所示:图4.3视频采集窗口给各个按钮增加相应的代码,我们就可以实现相应的功能,下面是我们添加代码的步骤。(1)增加视频格式”按钮对应的处理代码为:voidCVideoEncodeDlg二OnVideoformat()if(capDlgVideoFormat(m_hWndVideo)capGetStatus(m_hWndVideo,&sCapStatus,sizeof(CAPSTATUS);此时,我们点击图4.3中的视频格式”按钮,将会弹出一个视频格式设置的对话框。通过该对话框,可以对视频数据流的分辨率和像素深度(位)和压
56、缩格式进行设置。我们本课题所使用的摄像头分辨率有五种可选,默认为320*240,而像素深度则有两种可选。具体的对话框如下图4.4所示.图4.4视频格式设置(2)通过编辑上面的视频格式”按钮,我们了解了添加代码实现功能的一般方法,现在我们用同样方法给视频源”、冻结图像"、解冻图像”、退出视频”等按钮增加对应的处理代码,使他们可以实现我们预想的功能。视频源代码:voidCVideoEncodeDlg二OnVideosource()(if(gCapDrvCaps.fHasDlgVideoSource)capDlgVideoSource(m_hWndVideo);其中它的ID是ID_VIDE
57、OSOURCE。编辑通过,无错误的情况下,即可实现我们想要的设置视频源的功能。点击视频源”按钮,会跳出视频源”的设置窗口,通过这个窗口,我们看到有4个大的选项,其中设定”选项可以调整图像的亮度、对比度、色调和饱和度等参数,还可设定自动模式控制的各个参数,默认设置,室内外模式,去抖动的频率等;特效”项设置各种特效效果;缩放”可以放大或缩小;还可以设置捕获源”,选择不同的摄像头(如果装有多个摄像头的话)进行视频的捕获,如下图4.5所示。通过视频源”设置,我们可以根据实际需要对其进行设置,最后得到我们希望可以实现的视频图像效果,这在现实的视频应用中是相当实用的。图4.5视频源设置冻结图像代码:voidCVideoEncodeDlg:OnVideofraze()(capPreview(m_hWndVideo,FALSE);点击冻结图像”后停止实时的视频图像捕获和显示图像,仅显示当前的一幅静止图像。解冻图像代码:v
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 电池制造与个人便携式电源考核试卷
- 外贸英语函电包装课件
- 探秘数学世界
- 四年级学习法探究
- 山西应用科技学院《公共财政学》2023-2024学年第二学期期末试卷
- 江苏省南京鼓楼区重点达标名校2024-2025学年初三下学期统练(七)语文试题含解析
- 天津市重点中学2025年高三核心模拟卷(下)历史试题含解析
- 上饶师范学院《中药鉴定学实验二》2023-2024学年第一学期期末试卷
- 四川财经职业学院《筹资原理和技巧》2023-2024学年第二学期期末试卷
- 山东省滕州第七中学2025届高三统一质量检测试题历史试题试卷含解析
- 广东省佛山2022-2023学年外研版八年级下学期英语期末模拟试卷(二)
- 四年级《爷爷的爷爷从哪里来》阅读测评题
- 2020-2024年安徽省初中学业水平考试中考英语试卷(5年真题+答案解析)
- 2024年福建省泉州市中考二模地理试题
- 2024年重庆八中中考数学一模试卷
- MOOC 中国特色文化英语教学-苏州大学 中国大学慕课答案
- 职业道德与法律说课稿市公开课一等奖省赛课微课金奖课件
- 《电力建设施工技术规范 第2部分:锅炉机组》DLT 5190.2
- 新人教版八年级上册数学期中考试试卷及答案-文档
- 广东省广州市天河区2024年八年级下册数学期末考试试题含解析
- 【大数据“杀熟”的法律规制探究17000字(论文)】
评论
0/150
提交评论