《基于模板匹配的目标跟踪技术研究与实现2695.docx》由会员分享,可在线阅读,更多相关《基于模板匹配的目标跟踪技术研究与实现2695.docx(44页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、 南华大学计算机科学与技术学院毕业设计(论文)计算机科科学与技技术学院院毕业设计计(论文文)论文题目目基于模板板匹配的的目标跟跟踪技术术研究与与实现指导教师师职 称讲师学生姓名名学 号专 业网络工程程班 级系 主 任院 长起止时间间20133年100月111日至220144年5月月23日日20144年5月月23日日目 录第一章 绪论111.1研研究背景景与意义义11.1.1 研研究背景景11.1.2 研研究意义义21.2 发展和和研究现现状31.2.1 基基于灰度度信息的的模板匹匹配算法法31.2.2基于于几何特特征的模模板匹配配算法441.3 本章小小结5第二章 OpeenCVV视觉库库简介
2、62.1 OpeenCVV简介662.2 OpeenCVV关键技技术介绍绍62.2.1 OOpennCV 命名规规则72.2.2 OOpennCV 的基本本数据类类型82.3 OpeenCVV图像/视频处处理流程程102.3.1 OppenCCV 图图像处理理流程1102.3.2 OOpennCV 视频处处理流程程122.4 本章小小结133第三章 模板板匹配1143.1模模板匹配配143.2模模板匹配配算法介介绍1443.2.1 模模板匹配配算法简简要框图图153.2.2 相相似性度度量1663.3.3搜索索策略1173.3本本章小结结19第四章 基于模模板匹配配的目标标跟踪2204.1模模
3、板匹配配跟踪算算法2004.2 评判算算法的标标准2224.3 模板匹匹配跟踪踪算法缺缺陷2334.4改改进的模模板匹配配算法2244.4.1 算算法加速速244.4.2 角角度匹配配254.4.3 位位置角度度匹配算算法2664.5 操作界界面介绍绍以及实实验结果果分析2274.5.1操作作界面介介绍2774.5.2结果果对比分分析3114.6本本章小结结32总结333参考文献献34谢 辞辞36基于模板板匹配的的目标跟跟踪技术术研究与实现摘要:视视频目标标跟踪是是计算机机视觉领域域中一个个非常活活跃的研究领域域,近年年来已经经逐渐成为为学者们们研究的的热点。本文主要要对模板板匹配算算法在目目
4、标跟踪踪领域中中的应用用进行研研究,并并对跟模模板匹配配目标跟跟踪相关关的一些些技术问问题进行行了深入入的探讨讨。在VVisuual stuudioo 20008开开发环境境下结合合MFCC和开源源计算机机视觉库库(Oppen Commputter Vissionn,OpeenCVV)用程序序语言实实现基于于模板匹匹配的目目标跟踪踪算法,并并在图像序序列上对对模板匹配配跟踪算算法在降降低复杂杂度和抗抗目标旋转转方面的的有效性性进行了了验证。关键词:Vissuall sttudiio 220088;OpennCV;模模板匹配配;角度度旋转匹匹配;目目标跟踪踪 Dessignn annd IImp
5、llemeentaatioon oof TTempplatte mmatcchinng aand traackiing by usiing OPEENCVVAbsttracct: Viddeo objjectt trrackkingg iss a verry aactiive fieeld of ressearrch in thee fiieldd off coompuuterr viisioon,iin rreceent yeaars hass grraduuallly bbecoome thee foocuss off thhe rreseearccherrs.TThisspappermm
6、ainnlysstuddiess thhe mmatcchinng aalgooritthm in thee fiieldd off taargeet ttracckinng oon tthe temmplaate, annd tthe temmplaate mattchiing tarrgett trrackkingg wiith somme rrelaatedd teechnnoloogy proobleems aree diiscuusseed. Thee coombiinattionn off MFFC aand opeen-ssourrce commputter vissionn l
7、iibraary in Vissuall sttudiio20008 devveloopmeent envviroonmeent (Oppen Commputter Vissionn, OOpennCV) trrackkingg allgorrithhm ffor temmplaate mattchiing bassed objjectt laanguuagee, aand mattchiing traackiing alggoriithmm iss veeriffiedd efffecctivve iin lloweerinng tthe commpleexitty aand antti r
8、rotaatioon ttargget temmplaate in imaage seqquenncess.Key worrds: Viisuaal sstuddio 20008; OpeenCVV; ttempplatte mmatcchinng; rottatiion mattchiing;Objjectt trrackkinggI第一章 绪论1.1研研究背景景与意义义1.1.1 研研究背景景伴随着信信息技术术的发展展,军事事、航空空、工程程、航天天等与计计算机息息息相关关的领域域也有了了巨大的的发展和和进步,谈谈到这些些领域,自自然就会会想到图图像目标标跟踪技技术计算机机图像处处理技术术
9、与计算算机视觉觉技术的的重要组组成部分分之一。一般情情况下,目目标表示示和目标标定位、信息的的过滤和和数据关关联两个个部分就就能够构构成一个个典型的的目标跟跟踪系统统。显然然,这两两个部分分是分工工合作的的,目标标表示和和目标定定位自下下而上处处理表面面变化,而而信息的的过滤和和数据关关联自上上而下处处理目标标动态变变化。系系统的稳稳定和有有效性跟跟这两个个独立的的部分直直接相关关。每种种跟踪系系统的侧侧重点都都是不同同的,有有些侧重重于对象象表示而而非目标标的动态态变化,比比如公共共场所的的面部跟跟踪;有有些目标标的运动动和摄像像机本身身的运动动,比如如空中视视频监控控系统。怎样在在现实中中
10、很多更更复杂的的场景中中让两者者结合更更好的结结合是我我们需要要研究的的重要课课题。而而其关键键在于精精确的分分割、提提取和识识别。同同时,完完成算法法所需要要的时间间也是需需要纳入入考虑因因素中的的。错综综复杂的的数据的的模糊性性和不确确定性是是对目标标跟踪技技术的要要求越来来越高的的原因。基于运动动分析方方法与基基于图像像匹配方方法是目目前目标标跟踪方方法的两两大类。两种方方法各有有优势。运算速速度快、易于硬硬件实现现是基于于运动分分析方法法的优点点。另一一方面,在在处理目目标平移移运动性性能、对对图像噪噪声处理理以及结结果与旋旋转尺度度的相关关性方面面,基于于图像匹匹配方法法处理的的更好
11、,它它的劣势势是复杂杂背景时时目标遮遮挡处理理不够理理想。模板匹配配,顾名名思义,是是获得固固定或者者变化的的模板之之后,经经过一定定的公式式计算相相似度,然然后对比比相似度度的大小小,在所所搜寻的的场景或或者图像像中找到到物体的的方位以以及旋转转角度。换句话话说就是是通过匹匹配的程程度来跟跟踪已知知特征的的物体。作为一一个当代代信息社社会的关关键计算算机图像像处理技技术,模模板匹配配可以应应用的领领域很多多,所以以自然会会成为这这些年来来学者们们所研究究的热点点。而根根据该技技术在应应用过程程中本身身所获取取的信息息的异同同,可以以分为两两种情况况:一种种是比较较两幅图图像的异异同,这这两幅
12、图图像可能能是来自自不同的的图像摄摄入源也也可能是是来自通通一个图图像摄入入源头的的不同过过的拍摄摄角度,通通过比较较确定它它们之间间存在的的联系,为为技术处处理的下下一步做做相应的的就绪准准备;第第二种是是已有信信息是给给定的模模板,在在相对于于模板来来说更大大的范围围中即为为搜索图图像中找找到模板板中物体体的方位位。目前前这项技技术已经经在医学学、军事事等领域域有了关关键应用用。比如如,巡航航导弹制制导中,飞飞行器就就是通过过已经储储存在它它的计算算机中的的目标位位置的模模板,在在其搜索索图像中中,也就就是飞行行器在飞飞行过程程中所摄摄取的地地面图像像中,利利用模板板匹配技技术,找找到目标
13、标位置,然然后进行行摧毁。1.1.2 研研究意义义目标跟踪踪,就是是运用各各种手段段实现主主体对其其关注的的运动客客体之状状态建模模、估计计以及跟跟踪等的的过程。而能够够在图像像信号中中自动识识别出目目标,并并且提取取目标位位置等信信息,然然后能自自动跟踪踪目标运运动的技技术,称称为目标标跟踪技技术。虽然很早早学者们们就提出出了基于于模板匹匹配的图图像搜索索,但由由于机器器的落后后,数据据处理的的速度以以及方法法的问题题等等,一一直到七七八十年年代该技技术才开开始步入入正轨。大致来来说,根根据所依依赖的特特征的不不同,该该算法分分为两大大类,基基于灰度度以及基基于几何何。基于灰度度的算法法是以
14、模模板与搜搜索图像像的灰度度的相关关系数作作为判定定标准,来来判断模模板中的的物体是是否在所所搜索的的图像中中,同时时确定该该物体的的位置。理论上上来说就就是在搜搜索区域域移动一一个固定定大小的的窗口,平平移的过过程就是是记录窗窗口中所所包含的的图像内内容的过过程,每每平移一一次,就就计算一一次窗口口当前包包含的内内容与模模板的相相似度并并记录,然然后比较较得出最最大的那那个相似似度,然然后得到到所需要要的结果果。这种种方法在在实现过过程不受受较大干干扰的时时候,结结果是比比较精确确的。而而且所需需要的图图像特征征并不需需要通过过图像预预处理,也也就不需需要承担担这个过过程所带带来的误误差。但
15、但是这类类算法的的缺点也也是显而而易见的的,对外外界的干干扰,如如光照、噪声等等没有什什么抵抗抗能力,同同时对于于缩放、旋转了了的图像像,处理理起来也也没有让让人满意意的结果果。有明明确的数数据表示示,当被被搜索区区域的图图像旋转转大于55时,此此算法的的运行结结果就会会有很大大的误差差。第二种是是基于几几何特征征的。这这种算法法首先会会要进行行图像的的预处理理,比如如提取图图像的边边缘信息息等,然然后把提提取出的的数据作作为待匹匹配的向向量,计计算模板板与所搜搜索区域域的图像像的相似似度。该该算法由由于提取取了一些些偏向于于数据化化的特征征并统计计出来,因因而对于于物理上上的一些些特征的的稳
16、定性性要求就就不会那那么高,如如灰度变变化,噪噪声等。甚至存存在被搜搜索图像像有被遮遮挡的地地方的情情况下,还还是可以以的到数数据结果果。该算算法还有有一个显显而易见见的优点点就是,可可以处理理缩放和和旋转这这样的复复杂情况况。但是是可以处处理复杂杂情况的的算法相相对于上上一种算算法来说说,复杂杂度大,难难度也大大,耗费费的时间间也更长长。所以以,如何何研究出出精确可可靠但同同时又拥拥有着快快速高效效的特点点的该类类算法,是是研究者者们所面面临的一一个急需需要攻克克的一个个课题。时代在不不断进步步,人们们对于机机器视觉觉的需求求也在增增加,而而图像数数据像一一个无边边无际的的海洋,庞庞大到限限
17、制了模模板匹配配的发展展,因而而开发出出一种高高精度并并且能够够满足现现代人们们快速达达到需求求的高速速的模板板匹配算算法具有有很重要要的现实实意义。1.2 发展和和研究现现状作为图像像信号处处理中经经常用到到的技术术,模板板匹配应应用到了了很多工工业生产产应用中中的检测测和监控控上。模模板匹配配算法由由以下四四个要素素组成:第一,特特征空间间,即为为用于进进行匹配配时从模模板中提提取出的的作为标标准的信信息。第第二,被被搜索空空间,即即为相对对于模板板来说更更大的图图像信息息的集合合。第三三,搜索索策略,即即为在被被搜索空空间中如如何选择择下一次次匹配的的过程。第四,相相似度矩矩阵,即即为匹
18、配配后计算算所得相相似度所所组成的的矩阵。现在已经经存在的的模板匹匹配算法法有很多多种,主主要都旨旨在提高高算法的的准确度度和速度度。下面面对之前前所述的的两类匹匹配算法法的简单单总结。1.2.1 基基于灰度度信息的的模板匹匹配算法法基于灰度度的模板板匹配算算法是在在上个世世纪的770年代代在军事事领域中中最先发发展起来来的,最最先运用用于军用用的飞行行器的导导航系统统中,由由于发展展的时间间相对来来说比较较长,相相关理论论研究和和技术已已经发展展的比较较纯熟,学学者们提提出的算算法也很很多,其其中有三三个比较较经典,MMAD 算法 、SSSDA 序贯相相似性算算法以及及NCCC归一化化相关算
19、算法。后后两种算算法是由由 Siilveermaan 和和 Baarneea DDI 两两位学者者一起在在不同的的时间提提出的,第第一种是是由Leeesee 提出出的。然然而这些些算法在在理论上上来说虽虽然已经经发展的的比较成成熟,实实际应用用中却不不然,由由于精度度和复杂杂度上的的一些问问题,很很少被实实际应用用。在这这两个缺缺点上,有有研究者者提出了了一些改改进的方方法来提提高计算算的效率率,缩短短匹配需需要消耗耗的时间间,主要要的两种种方法分分别为精精简搜索索空间中中需要匹匹配的对对象和减减少算法法中所运运用的相相似函数数的运算算量。其其中有显显著成效效的是由由Farrhann UUll
20、aah 提提出的将将图像的的灰度信信息进行行编码然然后再进进入到匹匹配过程程的算法法,该算算法在计计算速度度上有了了很大的的提升,但但是缺点点也很明明显,只只可以在在矩形图图像中运运用,而而且对于于外界自自然因素素的干扰扰没有什什么抵抗抗力如光光照,因因而也很很少在实实际中应应用到。1.2.2基于于几何特特征的模模板匹配配算法由于模板板和在被被搜索图图像的目目标之间间不仅仅仅存在灰灰度的差差异问题题,缩放放比例和和旋转角角度也是是图像对对比中经经常存在在的差异异数据的的来源,基基于几何何的匹配配算法因因而诞生生。此类算法法多种多多样,与与数学数数量的变变换息息息相关,如如傅里叶叶变换,直直方图
21、统统计,KK-L变变换,图图像距等等。由于于19996年BB. SSrinnivaasa Redddy 和 BB.N. Chhattterjji 提提出的数数极坐标标的相关关变换,把把在一定定条件下下的图像像缩放和和旋转转转化成了了数极的的平移,傅傅里叶变变换,从从本来只只可以处处理图像像的平移移问题进进而进步步到处理理旋转角角度和缩缩放比例例,计算算之后调调整模板板,然后后在利用用调整之之后的模模板在搜搜索图像像中定位位。20000年年的时候候罗成平平提出的的K-LL 变换换算法,主主要利用用多位正正交变化化函数上上投影,获获得图像像统计性性的特征征。另外外还有一一种方法法是用角角度直方方图
22、相关关的计算算方法来来衡量相相似性的的,这种种方法可可以在相相对旋转转角度比比较大的的情况下下,对旋旋转的角角度进行行估计,之之后对模模板进行行相应的的角度变变化,再再开始平平移匹配配。角点信息息是基于于几何的的匹配中中应用相相对来说说较为频频繁的一一种,该该信息所所属方法法的基本本依据是是在模板板和被搜搜索图像像中提取取出角点点,得到到两组角角点集合合,将其其分别命命名为,之之后对中中的角点点两两进进行距离离匹配,若若,有并且且,则认认为两个个角点匹匹配,否否则匹配配失败 。角点点匹配结结束后,还还要去掉掉那些未未出现在在正确匹匹配区域域中的匹匹配点,实实现该步步骤过程程中用的的比较多多的方
23、法法是 RRANSSAC 算法。相对其其它讨论论的比较较少的方方法来说说,对于于角度检检测以及及匹配方方面研究究者们现现如今已已有了全全面的研研究和讨讨论,此此类方法法最明显显的劣势势就是太太费时间间,不太太适用于于要求高高效率的的实时匹匹配。 提高运运算速度度依然是是研究者者们对于于该类方方法研究究的重点点和难点点,相对对来说,精精确度方方面该方方法已经经有了保保证,如如何提高高实时性性,是目目前所要要攻克的的一大难难题。 而如何何运用高高效且精精确的模模板匹配配进行目目标跟踪踪,也是是计算机机图像技技术现如如今研究究的重点点。1.3 本章小小结本章节重重点介绍绍了模板板匹配算算法以及及目标
24、跟跟踪技术术的研究究意义以以及发展展状况,并并阐述了了基于模模板匹配配的目标标跟踪的的重要意意义。随随着时代代的进步步,算法法和技术术都有了了很大的的提升,而而根据所所依赖的的特征的的不同,本本章简单单的介绍绍了模板板匹配算算法的两两大类,第第一,基基于灰度度信息的的模板匹匹配算法法;第二二,基于于几何特特征的模模板匹配配算法。正是对对这些的的了解,为以后的实验过程提供了良好的理论基础。第二章 OpeenCVV视觉库库简介本文主要要在Viisuaal SStuddio 20008 环环境下基基于MFFC和开开源计算算机视觉觉库(OOpennCV)来实现并改进的基于模板匹配的目标跟踪算法,因此我
25、们要简单的介绍一下OpenCV视觉库。2.1 OpeenCVV简介OpennCV 是一个个开源计计算机视视觉库, Inttel 在19999 年将其其建立,目目的是建建造这样样一个简简单而且且容易使使用过的的关于计计算机视视觉的代代码框架架,用来来帮助这这方面的的开发人人员在此此框架的的基础上上写出更更复杂的的能够运运用到实实际应用用中的计计算机视视觉相关关的应用用程序。作为一个个开放源源代码的的应用平平台 ,加加上计算算机视觉觉涉及到到众多领领域并且且受到众众多科研研人员和和学者的的偏爱,OOpennCV,得得以迅速速发展,衍衍生了很很多的技技术特点点。OpennCV 是一个个由其开开发公司
26、司支持的的开源的的计算机机视觉库库、有3300 多个 C 函函数的跨跨平台中中层和高高层 AAPI包包含其中中。OppenCCV 不不但包括括了数组组、矩阵阵等基本本结构,而而且也包包含了很很多的相相对来说说比较繁繁杂的视视觉函数数。OpennCV的的平台无无关性。OpeenCVV 开发发程序能能够在多多平台之之间移植植,不需需要修改改代码。例如 HP、 Unnix 、Wiindoows、Linnux、sollariis、MMacOOSX平平台。程程序运行行的实时时性。程程序调试试后编译译成为二二进制的的可执行行文件,提提高程序序的运算算速度,满满足程序序的实时时性要求求。OpennCV 的程
27、序序兼容性性。OppenCCV 提提供 MMATLLAB、Pytthonn、Ruuby等等语言接接口,实实现不同同软件之之间的兼兼容,完完善计算算机视觉觉和图像像处理方方面的很很多算法法。总而而言之, OpeenCVV的应用用领域广广泛,在在目标检检测与跟跟踪、图图像处理理和模式式识别中中特别突突出。2.2 OpeenCVV关键技技术介绍绍OpennCV 的主体体分为了了五个模模块,核核心函数数库 CCv、数数据结构构与线性性代数库库 CxxCorre、辅辅助函数数库 CCvAuux、函函数库 HigghGUUI、机机器学习习函数库库 MLL,四个个模块如如下图所所示。CCv 模模块包含含了基
28、本本图像处处理函数数和高级级计算机机视觉的的算法。HigghGUUI 这这个模块块包含有有图像和和图像的的集合视视频的输输入输出出的函数数,为使使用此模模块的用用户提供供图形用用户接口口。MLL 是机机器学习习库。CCxCoore 提供了了所有 OpeenCVV 运行行时的最最基本的的数据结结构和基基本函数数。CvvAuxx 模块块不包含含在图 2.11 的基基本结构构体系中中,该模模块存放放即将被被淘汰或或新出现现的算法法、函数数。图 2.1 OppenCCV 的的基本结结构2.2.1 OOpennCV 命名规规则1、函数数名 通用用函数名名 cvvActtionnTarrgettModd(
29、 ) AActiion是是核心功功能(ccoree fuuncttionnaliity)、Tarrgett是目标标图像区区域(ttargget imaage areea) 、Mood为可可选的调调整语(ooptiionaal mmodiifieers)。 常遇遇到的状状况有 cvAActiionTTargget()、ccvTaargeet()、cvvMetthodd()、cvAActiionMMethhod()四种种。 cvvActtionnTarrgett()类类型如 cvCCreaateIImagge(),cvvNammedWWinddow()。 cvvTarrgett()类类型的非非常常
30、见见,如 cvMMat(),ccvSiize(),ccvPoointt()。 cvvMetthodd()类类型比较较常用的的是算法法或某方方法,如如 cvvDCTT()离离散余弦弦变换算算法。 cvvActtionnMetthodd()的的类型如如 cvvFinndCoontoourss()轮轮廓搜寻寻算法 。 此外外也有例例外,如如:DooublleCllickkedMMousse()。2、矩阵阵数据类类型结构如下下:CV_(SS|U|F)CC,其其中S为为符号整整型,UU为无符符号整型型,F则则为浮点点型。比比如: CV_16UUC1指指的就是是16 位的无无符号的的整型的的单通道道矩阵;
31、CV_64FFC2 指的就就是644 位的的浮点型型的双通通道矩阵阵。3、 图像数据据类型结构如下下: IPLL_DEEPTHH_(S|U|FF),其其中S 为符号号整型,UU 为无无符号整整型,FF 为浮浮点型。比如:IPLL_DEEPTHH_166U 图图像像素素数据值值得就是是16位位的无符符号的整整型。2.2.2 OOpennCV 的基本本数据类类型1、基本本数据类类型OpennCV 视觉库库提供了了多种基基本数据据类型。如 CCvPoointt、CvvSizze、CCvReect 和CvvScaalarr。而在在以上提提到的这这些数据据类型当当中,CCvPoointt 这个个数据类类
32、型最为为简单。CvPPoinnt是一个个包含 了innt 整整型成员员 x、y 的的简单的的结构体体。另一一个数据据类型与与 CvvPoiint 非常相相似,即即为CvvSizze 这这个包含含 innt 型型成员 widdth和和 heeighht 的的简单结结构体。CvRRectt 类型型则是派派生于 CvPPoinnt 和和 CvvSizze 类类型的复复合类型型,包含含 了44 个数数据成员员:wiidthh 和 heiightt、还有有x和yy。下一一个 是是CvSScallar ,CvvScaalarr类型拥拥有着一一个单独独成员 vall和 44 个都都为整型型成员,其其中的单单
33、独成员员是一个个指向着着4 个个双精度度的浮点点数组成成的数组组的指针针。2、CvvMatt 数据据结构图 2.2 CCvArrr、CCvMaat 和和 IpplImmagee 之间间派生关关系OpennCV 虽是用用C 语语言实现现的,但但是它的的结构还还是遵循循面向对对象的思思想设计计。如上上图 22.2,IIplIImagge 由由 CvvMatt 派生生,而 CvAArr 派生了了CvMMat 。CvvArrr*是 一种独独特结构构。而CCvMaat 是是OpeenCVV 在运运用过程程中常用用的矩阵阵。IpplImmagee 为 OpeenCVV 所有有的图像像编码的的基本结结构。C
34、CvMaat 矩矩阵结构构简单,由由类型(typpe)、行数据据长度(steep)、宽度(widdth)、高度度(heeighht)和和一个指指向着数数据的指指针构成成。作为OppenCCV中的的重要的的矩阵变变换函数数,CvvMatt使用方方法是CvMMat* cvvCreeateeMatt ( intt roows, innt ccolss, iint typpe ); 预预定义类类型的结结构如下下:CV_ (S|UU|F)C。矩阵阵的元素能够够是322位的浮点型型的数据(CV_32FFC1),或是是无符号号 8位位的三元组组整型的数据(CCV_88UC33), 异或是无无数其他他类型元元
35、素。一一个CvvMatt元素它它不一定定非得是一个单一一的数字字。在矩矩阵中可可以由单一输输入来表表示多个个数值,这这样的话话我们就能能够在一一个三原原色的图像上上描绘多多重的色彩通通道。CvMaat 结结构:typeedeff sttrucct CCvMaatint ttypee;int sstepp; /类型,行行数据长长度int* rrefccounnt; /仅供内内部使用用int hhdr_reffcouunt;unioonuchaar* pptr;shorrt* ss;int* ii;floaat* ffl;doubble* dbb; daata;unioonint roows;in
36、t heeighht; /排、高高度;unioonint cools;int wiidthh; /列、宽宽度; CvvMatt;3、IppLImmagee 数据据结构OpennCV 中所有有图像都都采用了了同一结结构,事事实上,IIplIImagge 是是借鉴了了 Inntell公司在在早期公公布的 IPPP 图像像处理开开发包中中对于相相关结构构的定义义。因为OppenCCV主要要针对计计算机视视觉方面面的处理理,所以以,在这个函数数库中,IIplIImagge结构构是最为关键键重要的的结构体体。IpplImmagee结构源源自Inntell的另一一函数库库Inttel Imaage Pro
37、ocesssinng LLibrraryy (IIPL)。IpplImmagee结构定定义如下下:typeedeff sttrucct _IpllImaageint nSSizee; /* 大小小 */int IDD; /* 版本 */int nCChannnells; /* 通道 */int allphaaChaanneel; int deepthh; /* 像素的的位深度度 */charr coolorrModdel4; charr chhannnelSSeq4; int daataOOrdeer; int orrigiin; /*原点点位置*/int allignn; /*行行排列方方式
38、 */int wiidthh; /* 宽像像素数 */int heeighht; /* 高高像素数数*/struuct _IpplROOI * rroi; /* 图像感感兴趣区区域*/struuct _IpplImmagee * masskROOI; /* NULLL */voidd * immageeId; /* NUULL */struuct _IpplTiileIInfoo * tilleInnfo; /* NNULLL */int immageeSizze; /* 数据大大小*/charr * immageeDatta; /* 指向排排列的图图像数据据 */int wiidthhSte
39、ep;/* 排排列的图图像行大大小*/int BoordeerMoode4; int BoordeerCoonstt4;charr *iimaggeDaataOOriggin; IpplImmagee;IplIImagge是整整个OppenCCV函数数库的基基础,在在定义该该结构变变量时会用到函函数cvvCreeatIImagge。2.3 OpeenCVV图像/视频处处理流程程2.3.1 OppenCCV 图图像处理理流程使用OppenCCV来处处理数字字图像其流流程包括括如图2.3所示示的四个个基本过过程:(11)加载载需要处处理的图图像,这可以以使用函函数cvvLoaadImmagee实现
40、;(2)使使用图像像处理算算法对图图像进行行处理,OOpennCV提提供了很很多图像像处理算算法,比比如边缘缘检测、图像旋转转等等,但但有些算算法需要要自己编编写;(3)对对图像处处理的结结果进行行可视化化显示或或保存,可可使用ccvShhowIImagge函数数对处理理结果进进行显示示和使用用cvSSaveeImaage函函数将结结果图像像保存到到相应位位置;(4)卸载加载的图像,这可以用函数cvReleaseImage进行实现。如下的示例代码是使用OpenCV读取保存在指定位置的图片,把它转化成灰度图像后对处理结果进行显示和保存。从这个实例我们可以看出:使用OpenCV可以很简单的实现对图
41、像数据的读取操作和显示保存操作。图 2.3 OpeenCVV图像处理理基本流流程IplIImagge* ccoloorImmg = NULLL; /定义义IpllImaage型型变量IplIImagge* ggrayyImgg = NULLL;coloorImmg = cvvLoaad(“DD:tesst.jjpg”); /加加载图像像grayyImgg=cvvCreeateeImaage(cvGGetSSizee(coolorrImgg),ccoloorImmg-deppth,1); /创建灰度度图像ccvCvvtCoolorr(coolorrImgg, ggrayyImgg, CCV_RR
42、GB22GRAAY); /转化化为灰度度图像cvNaameddWinndoww (“处理结果”, 1); /定义窗口用于显示结果cvShhowIImagge(“处理结果”, grayImg); /在窗体上显示处理结果cvSaaveIImgee(“DD:graay.jjpg”, grrayIImg); /将将显示结结果进行行保存cvReeleaaseIImg(&grrayIImg); /卸卸载图像像2.3.2 OOpennCV 视频处处理流程程视频是由由一帧帧帧的图像像构成的的,对于于视频的的处理可可以转化化成对于于一系列列图像的的处理,一一般可按按如图22.4所示的的基本过程程来实现现:(11
43、)加载载需要处处理的视视频文件件,对于于avii视频文文件可使使用函数数cvCaaptuureFFrommFille来加加载,如如果要从从摄像头头实时捕捕获视频频则要用函数数cvCrreatteCaamerraCaaptuure来来创建摄摄像头;(2)使使用cvvQueeryFFramme从前面已已经创建建的Caaptuure中中抓取一一帧图像像,如果果抓取不不成功则则说明视视频处理理完备,此此时要用用函数ccvReeleaaseCCaptturee卸载视频频文件,否否则对所所抓取的的图像进进行所要求的处理;(3)对对图像处处理的结结果进行行可视化化显示或或保存,可可使用ccvShhowIIm
44、agge函数数对处理理结果进进行显示示和使用用cvSSaveeImaage函函数将结结果图像像保存到到相应位位置,此外还还可以使使用cvvWriiteFFramme函数数把所有有处理的的结果保存存成一个个AVII视频文文件;(4)卸载加载的图像,这可以用函数cvReleaseImage进行实现。图 2.4 OpeenCVV视频处处理基本本流程如下的示示例代码码是使用用OpeenCVV从摄像像头或者者视频文文件捕获获视频流流数据,把把它转化化成灰度度图像后后对处理理结果进行行显示和和保存。从从这个实实例我们们可以看看出:使使用OppenCCV可以以很简单单的实现现对视频频数据的的读取操作作和显示
45、示保存操操作。CvCaaptuure* pCCaptturee = NULLL;/定义义cvCCaptturee结构pCappturre = cvvCreeateeCammeraaCappturre(00); /从摄像头头获取视视频流/pCCaptturee = cvCCapttureeFroomFiile(“D:xxiexxin.avii”); /从从AVII视频文文件获取取视频流流IplIImagge* ccoloorImmg = NULLL; /定义义IpllImaage型型变量IplIImagge* ggrayyImgg = NULLL;CvViideooWriiterr* ppViddeoWWritter = NNULLL;int N = 0;whille(11) N+; collorIImg = cvQQuerryFrramee(pCCaptturee); /抓取取一帧图图像if(NN=11) ppViddeoWWritter =cvvCreeateeViddeoWWritter(caamerra.aavi, CCV_FFOURRCC(X, V, II, D), 25,cvSSi