欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    大学毕业论文-—基于meanshift算法的运动目标跟踪.doc

    • 资源ID:88283314       资源大小:3.48MB        全文页数:39页
    • 资源格式: DOC        下载积分:10金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要10金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    大学毕业论文-—基于meanshift算法的运动目标跟踪.doc

    湖南工学院(本科)毕业设计说明书 2014届毕业设计说明书 基于Mean-Shift算法的运动目标跟踪 院 、 部:电气与信息工程学院 学生姓名: 方挣挣 指导教师:夏鑫 职称(学位)硕士专 业: 电子信息工程 班 级: 电子1004班 完成时间: 2014年5月31日 摘 要 作为计算机视觉的一个重要部分,智能视频监控技术不仅在政府和企业的广泛应用,随着社会的进步,家庭也在很大程度上离不开它,而智能视频监控方面的核心技术是运动目标的跟踪,从21世纪以来,伴随着信息科学技术的飞速发展,越来越多的研究者开始关注智能化视频监控系统中的移动目标跟踪算法的研究。尽管人们在20世纪就已经提出了很多有效的运动目标跟踪算法,但事实上,运动目标的跟踪技术在实现的过程中仍然是困难重重,例如背景的不稳定、目标跟踪过程中被遮挡、目标跟背景颜色相似等因素,都会很大程度上破坏跟踪效果,因此,要想设计出跟踪效果好的均值漂移算法仍然具有很大挑战性。 在本篇论文中,简要的介绍了一下运动目标跟踪技术的发展史(从第一次被提出,一直到该项技术应用到各个领域),运动目标跟踪技术经历了一个漫长的过程。本论文还提到了视频监控系统的结构框架,并分析了每一部分的原理;同时也研究了图像处理技术在智能化视频监控体系中的应用,主要包含数学形态学理论、图像的预处理和目标模型描述等。对于智能化视频监控体系在实践中的应用,本论文采用的是Mean-Shift(均值漂移)跟踪算法,该算法是一项先进的运动目标跟踪技术。还详细分析了基于均值漂移算法在运动目标跟踪方面的应用,而且验证了Mean-Shift算法在实际应用中的收敛性【1】。对于均值漂移算法易出现的缺点,对其一一攻破,并且进行了多次仿真实验,结论表明:该算法的跟踪效果较好。关键词:智能视频监控;视频图像处理;背景差分法;运动目标的跟踪;Mean-Shift算法IABSTRACT As an important part of computer vision, intelligent video surveillance technology, not only in government and enterprises a wide range of applications, with the progress of society, the family also largely inseparable from it, and intelligent video surveillance technology is a moving target core the track, from the 21st century, with the rapid development of information science and technology, more and more researchers began to focus on research in intelligent video surveillance system moving target tracking algorithm. Although people in the 20th century has been proposed many effective moving target tracking algorithm, but in fact, moving target tracking technology is still in the process of realization is difficult, such as unstable background, target tracking process is blocked, the target the background color is similar with other factors, will largely destroyed tracking results, therefore, in order to design a good effect mean shift tracking algorithm still has a great challenge.In this paper, a brief introduction about the history of the moving target tracking technology ( from the first to be made until the technology applied to various fields ), moving target tracking technology has gone through a long process. The paper also mentioned the structural frame of video surveillance systems, and analysis of the principle of each part; also studied image processing technology in intelligent video surveillance system consists mainly of mathematical morphology theory, image preprocessing and objectives model description. For the application of intelligent video surveillance system in practice, this thesis is the Mean-Shift (mean shift) tracking algorithm, which is an advanced motion tracking technology. Also a detailed analysis based on the mean shift algorithm in moving target tracking application, and verify the Mean-Shift algorithm in the practical application of the convergence 1. For the mean shift algorithm prone shortcomings, its one break, and conducted a number of simulations, the conclusions show that : better tracking performance of the algorithm.    Keywords : intelligent video surveillance; video image processing; background subtraction; tracking of moving targets; Mean-Shift algorithmI目 录1 绪论11.1 课题研究背景与意义11.2 国内外研究现状11.3 目标跟踪问题的困扰因素21.4 本章小结32 图像处理简介42.1 图像灰度化处理42.2 图像噪声处理42.3 目标表示52.4 数学形态学62.5 本章小结73 VC编程环境的搭建83.1 OpenCV简介83.2下载和安装OpenCV93.3搭建OpenCV环境103.4 OpenCV中常用函数介绍123.4.1 数据结构123.4.2 常用函数133.5 本章小结164 基于Mean-Shift的目标跟踪算法174.1运动目标跟踪综述174.2 Mean-Shift算法研究174.2.1 基本Mean-Shift算法184.2.2 Mean-Shift算法工作原理分析194.3 程序运行结果234.3.1 图形界面234.3.2 目标跟踪效果244.4 本章小结26结束语26参考文献27致 谢28附 录29湖南工学院(本科)毕业设计论文1 绪论1.1 课题研究背景与意义运动目标跟踪技术是计算机视觉领域的核心研究课题之一,它涉及到各个科研领域。随着社会的快速发展,光靠人力已经无法实现对庞大的数据进行分析、处理。因此,急需一项技术能够代替人在不稳定的环境中对繁琐的数据的进行处理。智能视频监控系统恰好具备这项功能,它通过对摄像机拍录的图像序列进行自动分析,实现对动态场景中目标定位、识别与跟踪【2】。本论文主要是对Mean-Shift目标跟踪算法进行研究。通过研究者们的实践发现,Mean-Shift算法在运动目标跟踪领域中有着相当高的目标匹配度,多次应用在了对实时性要求高的运动目标跟踪技术中。Mean-Shift算法不仅在军事领域举足轻重,工业领域也离不开它。计算机视觉的研究在军事领域(远程监视)、医学领域(医学检测)以及工业领域(精密仪器检测)都有着非常重要的应用,通过研究计算机视觉,人们可以更准确的把握尺度,例如在工业领域中的机器人视觉系统。视觉图像是以不同类型的观测系统用不同的方法观测外界而得来的,能够与人肉眼作用,并且产生视觉与知觉的实体。根据科学研究和统计,图像中包含的信息占据了人类从外界获取信息中的3/4。在计算机技术的飞速发展下,数字图象技术也受到了国家很大的重视,并且得到快速的进展,出现了许多与其相关的新理论、新方法、新技术和新产品,并已经在各个方面都取得了非常广泛的应用,对改善人类生活质量、推动社会进步都起到了不可忽视的作用。1.2 国内外研究现状 视频监控系统应用前景非常广泛,潜在的经济价值更是无法估量,因此而激发了全世界大多数科学家和相关企业浓厚的兴趣,尤其是在美国和英国,早已做了大量相关项目的研究。光流法在20世纪80年代初期被提出之后,动态图像序列分析正式进入一个研究的高潮。在96年至99年期间,美国国防高级研究计划局(DARPA)出钱资助的卡内吉梅隆大学、戴卫夫研究中心和一些著名的研究机构,他们联合开发出来了视频监控系统(VSAM),其目标主要是为未来的城市和战场监控应用研发出一种全新的视频监控理解技术,能够代替人在危险的环境中进行监控,目前该系统仍然处于试用期。从98年开始,英国的雷丁大学开始研究路人与机动车辆的跟踪和交互作用识别。2000年,实时视觉监视系统(W4)在Maryland大学研究者的努力下研制出来,不单可以定位人以及分割出人身体的任何部分,而且在建立其外观模型后,该系统还可以同时实现多人的跟踪,且可以对他们之间简易的交流活动进行监控。英国、法国和葡萄牙在欧盟的资助下,于2002年至2005年期间联合执行了CAVIAR项目。DARPA在2008年又出钱资助了一项全新的视频监控技术-研究实时流,其目的是为了快速的从监控视频中发现目标的行为,并且快速分析,例如挖掘、握手、交换物品等。 在视频图像处理方面的探索我国起步相对较晚,一直到86年才正式开始对视频跟踪技术的研究立项。为了推动我们国家在这个领域的快速发展,我国已经成立了国家重点实验室,专门用来研究视频跟踪技术。 Mean-Shift 算法主要是通过有限次迭代,从而做到准确定位目标,很大程度上避免了全局采集,大大减少了时间,如果目标区域已知,该算法完全可以做到实时的跟踪,近几年来被非常广泛的应用在目标跟踪领域。目前有许多科研人员和学者已经在Mean-Shift算法基础上做了大量的的改善工作。因为样本点随机的分布在样本空间,应该如何选取合适的长度与角度以及正确的窗口宽度依旧是Mean-Shift 算法需要解决的重要问题。浙大朱胜利等人提出的均值偏移跟踪算法和卡尔曼滤波器互相结合的方法,首先利用卡尔曼滤波器得到其初始位置,接着运用均值漂移跟踪算法来获得跟踪目标移动后的位置,从而可以实现对运动目标的实时跟踪。但是该方法只有在目标线性运动时跟踪效果挺好,一旦处于非线性运动则效果很差。因此,怎样在非线性运动下做到跟踪效果良好,这是一个需要解决的大问题。马丽主要研究的是在跟踪中运动目标被遮挡的问题,并提出了多子块表决与灰度相关匹配相连接的跟踪算法,然后再把粒子滤波算法和Mean-Shift跟踪算法进行有效的结合起来。1.3 目标跟踪问题的困扰因素跟踪目标运动的复杂性往往是目标跟踪问题的主要困扰因素,主要表现为多个方面,如下:(1) 复杂的背景干扰 由于在运动目标的跟踪过程中是以RGB颜色作为模型,因此很容易受到复杂背景的干扰,当目标和背景颜色相似时,容易导致跟踪失败。(2) 目标外观的变化 运动目标跟踪一般是在不受控制的条件下进行的,各种因素都可能导致跟踪目标外观的变化,如光、角、规模和目标对象,以及形变等因素,所以如果我们想要对目标进行长期有效地跟踪,我们需要合理地处理这些变化。(3)计算的实时性要想研制出来的目标跟踪系统实用性强,则必须做到对运动目标的即时跟踪,这对算法的计算速度提出了强制性要求。算法耗时必须要少,至少做到每采集一帧图像时,算法要运行一遍,否则将无法实现运动目标的正常跟踪。 (4) 遮挡问题遮挡问题在目标跟踪过程中是一种常见情况。在目标跟踪过程中,目标很容易被自身的遮挡,或者跟踪目标被周围其他的杂物跟背景所掩盖。如何有效的解决这个问题,一直都是目标跟踪过程中的难点和重点。上述存在的问题,对运动目标实时鲁棒的跟踪将会更加艰难。由于目标的复杂性和不确定性,导致该算法适用环境相当有限,跟踪目标也大大受限。所以若想要设计出一个能够快速、准确、稳定地在复杂环境下跟踪目标的方法,仍然是一项非常艰巨的任务,还需要研究者进一步的研究。1.4 本章小结 在本章节中,主要讲到的是该课题的一些基础知识;第一节、第二节讲的是课题研究背景,以及国内外研究现状。第三节详细介绍了该项技术在实现过程中所遇到的难点,例如:跟踪背景比较复杂、能否做到实时性跟踪和跟踪过程中目标被遮挡等问题。从开始不被人认可,到现在成为该领域不可或缺的技术,这跟广大研究者的努力所密切相关,当然也与国家的大力支持分不开。下面章节将会对上面所提到的难点进行逐一攻破。2 图像处理简介2.1 图像灰度化处理视频监控系统不仅对精度有要求,对实时性也要求相当高,因此降低计算量,减少图像处理时间与内存空间要求是必要的,所以通常将彩色图像灰度化处理,这样就大大减少了图像处理数据,提高了处理速度。灰度化处理就是将彩色的R, G, B进行分量处理。由于R, G, B的都是处于0-255之间,所以决定了灰度化只有256级,即灰度图像的颜色只能在256种颜色中选择。现在有三种灰度化处理方法:(1)最大值法:让R,G,B的值等于三个值当中最大的一个,即: (1)从公式中能够得到,利用最大值法处理后的图像,其灰度值会很高。(2)平均值法:使R,G,B的值等于三者和的平均值,即: (2)(3) 加权平均法:根据不同的重要性给R,G,B三个分量赋予不同的权值,然后再对它们加权平均 (3) 并且分别作为R,G,B的权值。根据人的视觉习惯,人眼对绿色敏感度会大于红色,对红色的敏感度又比蓝色强烈,所以能得到比较好的灰度图像,根据理论和以往经验证明,当时,得到的灰度图像比较合理。2.2 图像噪声处理 实际采集的图像中常包含各种不希望有的噪声,造成图像退化,为进行目标检测和跟踪等图像分析工作,需要先将噪声消除掉,目前常用的消噪方法主要有两种:一种是均值滤波,另一种就是中值滤波。 (1)均值滤波 均值滤波能够消除图像的噪声,是一种线性滤波。该方法的基本思想就是在图像中取一部分区域(通称模板),将区域内所有像素的灰度值求平均,然后用这个灰度平均值代替模板中的各像素灰度,这种滤波方法运算效率比较高,但是由于其平均化,也破坏了图像边缘,造成图像模糊。 (2)中值滤波 中值滤波依赖于模板的实现,是一种非线性滤波。它的原理是用滤波器包围图像区域,然后计算出图像区域中像素的排序结果。其计算公式为: (4)其中,为的邻域,为含有噪声的原图。中值滤波一般实现过程如下: 将模板放在图中漫游,而且把像素点的位置与模板中心重合; 读取模板相对应的像素点灰度值; 将读取到的像素灰度值按照从小到大的顺序排成一列; 找出这些值里最中间的一个;将找出的值赋给位于模板中心的像素。通过以上步骤可以看出,中值滤波的主要功能就是把不同的像素灰度值修改成与周围像素值大小接近的值,这样对于椒盐噪声的消除能力是很强的,与均值滤波相比较,由于中值滤波不是简单的取平均值,所以产生的模糊比较少。2.3 目标表示为了做到减少冗余,图像分析中常用一种方式来表现跟踪的目标,这就被称为目标表示。只有节省存储空间、而且计算简便的方式才是一个优秀的表达方式。在图像中的区域可以是内部的,也可以是外部的。在选好表达方法之后,我们还需要描述跟踪目标,主要目的是使电脑做到完全识别出所得到的分割结果,并且做到充分利用。 目标表示,可分为点表示法、矩形框表示法、外轮廓表示法、块表示法和基于图像表示法【13】。点表示法,即用若干个点来代表目标,如跟踪目标物体的重心或者目标本身。 矩形框表示法,它的原理是被我们框住的矩形区域即作为目标。矩形框表示法在显示目标位置的同时也能得出目标的大小。 外轮廓表示法,跟踪目标的外轮廓即用来表示目标。外轮廓线能够用跟踪目标边沿点的连线表示。块表示法,用若干个团块来代替跟踪目标。每个团块内的像素点都有相似之处。这些相似之处可以用与之类似的颜色、类似的光流或者光流与颜色相结合来表示。因此,那些用光流法得到的目标大多用块表示法来实现。基于图像表示法,该表示方法采用每个像素点来表示目标。基于图像的表示法又可分为空间表示和时空表示等,空间表示是将图像或图像中目标的一部分变换到非笛卡尔空间,得到对图像数据更简洁的表示,通常采用的变换有傅里叶变换、主成份量分析、离散余弦变换、小波变换等,时空表示是在空间表示法基础上加上时间维信息,以表示与运动相关的特征。2.4 数学形态学 最近几年,研究者们对图像进行分析主要用到的是数学形态学。它的原理是用固定形态的构造元素,提取出图像中相对应的形状,用来识别图像,以便于对图像进行分析。数学形态学主要实现原理是集合论。利用该方法处理后,能够做到充分保持图像的基本特性,并且能够处理掉不相干的结构,从而大大的简化图像数据。 数学形态学主要包括膨胀、腐蚀、开启和闭合等四个基本运算。 (1)膨胀和腐蚀 膨胀与腐蚀,它们是数学形态学中最基础的运算。腐蚀能够做到缩小图像,而膨胀却是用来扩大图像的,它们正好互为对偶运算。膨胀与腐蚀的符号分别为和。设输入的图像为,结构元素为,则对的膨胀定义为: (5) 对的腐蚀定义为: (6) 其中,的定义域是,的定义域是,正整数的向量分别是和。所有,针对膨胀运算来说,变量元素的映像与输入的图像相与不为零,也就是说,用来膨胀就是将的映像与中的非零元素相交时在零点位置的集合。相反地,针对腐蚀运算来说,只有当变量元素全部处于输入的图像内时,才能对输入图像进行腐蚀。其实,用变量元素来腐蚀输入图像所得到的集合正好等价于全部包含在中时零点位置的集合。 腐蚀运算,从字面上即可看出,它主要是用来侵蚀掉被跟踪目标的边界点,使目标物体变得更加圆滑,增强了物体的清晰度。腐蚀运算能够做到将跟踪目标身上小于变量元素的物质腐蚀掉,因此,我们选取的结构元素相当重要,它的大小将决定了所去掉物质的大小。所以,当图像中的两个物体之间有少量细小物体连接时,只要我们选取的结构元素恰当,通过腐蚀运算侵蚀后,能够顺利将两物体分开,使得图像更加清晰。 (2)开启和闭合 开启和闭合运算由膨胀运算和腐蚀运算复合而来,对的开启运算被定义为: (7) 开启运算的原理是对图像在进行一次腐蚀运算之后,再对图像进行一次膨胀运算。 对的闭合运算可以用下列公式表示: (8) 闭合运算的原理是对图像进行一次膨胀运算后,再对图像进行一次腐蚀运算。 开启运算可以做到磨掉突出图像的外部棱角,闭合运算恰好相反,磨掉的是内部尖角,此外,开闭运算还具有滤波特性。2.5 本章小结 本章所研究的主要是与本课题密切相关的一些基础理论知识,前面两节讲的是对图像进行灰度值处理以及噪声处理,这两种处理方法能够使图像变的清晰、可视效果好。图像的灰度化处理用到的技术是对图像进行加权平均;而去噪处理用到的则是中值滤波。第三节列举出了当前所用到的主要目标表示法,并简单介绍了其工作原理。最后第四节,里面提到的腐蚀与膨胀当前用的比较多,他属于一种滤波算法,通过这两种技术的处理,能过使粗糙的图像变得光滑。73 VC编程环境的搭建 当前大部分视频监控中,研究者们都用到OpenCV来对图像做预处理,其处理目的主要是为了去除图像中的冗余,改善图像的可视效果,从而保证目标在跟踪过程中的准确性。预处理又分为噪声处理和图像灰度化处理两个重要内容。3.1 OpenCV简介OpenCV是一个完全开源的计算机视觉库,它的编写语言是C/C+,支持开源的Linux系统、微软的Windows系统以及苹果的Mac操作系统。OpenCV除了C之外,它还支持TPython 、Ruby等语言。调用OpenCV函数库的主要目标是加快图像处理的执行速度。OpenCV的作用主要是为了构建出简易的计算机影像框架,其目的是为科学家们设计出更好的计算机影像相关软件提供帮助。OpenCV函数库中大概包含五百多个函数,涉及到许多领域。由于计算机视觉和机器学习是密切相关的,因此OpenCV还提供MLL机器学习库,能够很容易的应用到其他的机器学习场所。因此,OpenCV在科学研究中的应用领域相当广泛。3.2下载和安装OpenCV OpenCV主页在SourceForge网站http: llSourceForge. Netlprojectsl opencvlibrary,对应的Wiki在http: /opencv. willowgarage. com,对于Windows系统,则为OpenC V-1.0.exe安装程序,然而,最新的版本始终都在SourceForge的SVN仓库中【16】。 本论文在这里只讲在Windows系统下的安装,若想了解在Linux系统和苹果操作系统下的安装,可以自己查看相关资料。在Windows操作系统下,首先,从OpenCV官网中下载EXE安装程序,双击后即可安装。接着是注册DirectShow filter,进行一些安装后的必要处理,注册成功后即可开始使用OpenCV。当然,你也可以进入下载安装包的/make目录下,使用VS2010打开opencv.sln,或者使用低版本的MC+(如VC6.0)打开opencv. dsw,然后按照提示生成调试版本的库,当然也可以重新生成Release版本的库。一切都安装好之后,若还想使用IPP优化功能,则可在官网上下载安装包进行安装,为了安装的顺利进行,请使用5.1及以上版本。然后确认将二进制文件路径添加到操作系统的环境变量PATH中。添加环境变量后,OpenCV就能够正确加载IPP了。3.3搭建OpenCV环境 本文的硬件平台为惠普G42-474TX笔记本电脑,CPU为主频2.67GHz的32位双核酷睿i3 390M,2G内存。视频输入为电脑自带的集成摄像头。软件开发平台为WindowsXP操作系统、OpenCV 1.0以及MS Visual C+6.0 (以下简称VC6.0)。 其中OpenCV在VC6.0中的配置过程如下: 假设我们将OpenCV安装到C:Program FilesOpenCV文件夹下,在安装OpenCV过程中需要选择"将OpenCVbin加入系统变量"。然后,检查C:Program FilesOpenCVbin是否已经被加入到环境变量PATH中(我的电脑属性环境变量),如果没有,请加入。成功加入后需要重启电脑才能生效,或者在任务管理器中重启explorer.exe。OpenCV在VC6.0下的详细配置过程:1)全局设置菜单工具选择目录:首先设置lib路径,平台选择Win32,目录选择Library files,然后在空白处输入lib路径,如下图1所示。图1 Library files设置然后目录选择Include files,在下方填入需要的库文件路径,如下图2所示:图2 Include files设置最后选择Source files,在下方填入需要的库文件路径,如下图3所示:图3 Source files设置添加完上述三处库文件后再点击“OK”,即成功的完成了OpenCV的配置。2)项目设置每次创建项目时,若想使用OpenCV,则需要在工程中加入需要的lib库文件。添加过程为:菜单工程设置,然后将Setting for选择All Configurations,然后选择右边“链接”标签,在“对象/库模块”附加上:cxcore.lib cv.lib ml.lib cvaux.lib highgui.lib cvcam.lib等lib文件,当然,你也可以只添加自己需要的lib文件,如下图4所示:图4 项目设置3.4 OpenCV中常用函数介绍3.4.1 数据结构OpenCV中有一些基础的数据类型,在我们平时用OpenCV函数库的时候常常会用到,因此在我们使用该函数库之前应该先掌握好,才能在用的时候得心应手。以下是对常用数据结构的介绍:1)CvPoint结构它是一个int型结构,代表了二维坐标系下面的点,其结构体如下所示:typedef struct CvPointint a; /代表坐标系中的横坐标,原点坐标为0int b; /代表坐标系中的竖坐标,原点坐标为0 CvPoint;2)CvSize结构 由名字size即可看出,该结构体表示的是大小;该结构通常是用来表示矩形框大小的,单位为像素,结构体中已经定义了矩形框的宽和高,具体如下:typedef struct Cvsize int m_Width; /代表矩形框的宽,以像素为单位int m_Height;/代表矩形框的高,以像素为单位CvSize;3) IplImage 结构 IplImage 结构体的主要功能是用来处理和创造图像,它隶属于inter函数库IPL,该函数库的主要功能是图像处理。该结构体定义如下:typedef struct IplImage int n_Size; /结构体大小 int Card; /版本号 int n_CMCC; /支持的信道 int Depther; /像素深度值 int Data_up; /0和1分别代表交叉存取颜色信道和分开颜色信道 int Orange; /0代表左上,1代表的是左下int m_Width;/图像的宽,用像素值表示其大小 int m_Height;/图像的高,用像素值表示其大小 struct_IplROI *Red; /表示图像比较活跃的区域int Data_Size; /图像的data大小 int Width_Step; /以字节为单位的图像大小 4)CvCapture结构typedef struct CvCapture CvChance;该结构体在OpenCV应用中相当重要,视频中每帧图像的抓取都由它来完成,应当熟练掌握其用法。5)cvCreateVideoWriter结构typedef struct CvVideoWriter Movie_Reader;3.4.2 常用函数除了有常用的数据结构外,还有以下常用函数,也是必须掌握的内容,下面简单的介绍几个常用函数,本人在这次毕业设计中也有用到他们,介绍如下:1)cvLoadImage( ):该函数用来载入视频图像IplImage* cvLoadImage( const char* videoname, /声明一个文件名字int countenance=CV_LOAD_IMAGE_COLOR );Videoname:该char型常量代表的是被加载的视频名字。countenance:表示加载进去后的视频图像的颜色和深度,指定读入图像的颜色和深度。指定的颜色可以将输入的图片转为3信道(CV_LOAD_IMAGE_COLOR),单信(CV_LOAD_IMAGE_GRAYSCALE),或者保持不变(CV_LOAD_IMAGE_ANYCOLOR)。2)cvShowImage( ):在指定窗口中显示图像void cvShowImage( const char* name,const CvArr* image );name:窗口的名字。image:被显示的图像。3)cvCreateFileCapture( )与cvCreateCameraCapture( )CvCapture* cvCreateFileCapture( const char* filename );初始化从文件中获取视频;filename:视频文件名。 函数cvCreateFileCapture给指定文件中的视频流分配和初始化CvCapture结构。当分配的结构不再使用的时候,它应该使用cvReleaseCapture函数释放掉。CvCapture* cvCreateCameraCapture( int index );初始化从摄像头中获取视频;index :要使用的摄像头索引。如果只有一个摄像头或者用哪个摄像头也无所谓,那使用参数-1应该便可以。函数cvCreateCameraCapture给从摄像头的视频流分配和初始化CvCapture结构。释放这个结构,也要使用函数cvReleaseCapture。4)cvQueryFrame( ):从摄像头或者文件中抓取并返回一帧IplImage* cvQueryFrame( CvCapture* capture );capture:视频获取结构。 函数cvQueryFrame从摄像头或者文件中抓取一帧,然后解压并返回这一帧。返回的图像不可以被用户释放或者修改。5)cvGetCaptureProperty( )与cvSetCaptureProperty( )double cvGetCaptureProperty( CvCapture* capture, int property_id );获得摄像头或者视频文件的指定属性;capture:视频获取结构。property_id:属性标识。可以是下面之一:CV_CAP_PROP_POS_MSEC - 影片目前位置,为毫秒数或者视频获取时间戳 CV_CAP_PROP_POS_FRAMES - 将被下一步解压/获取的帧索引,以0为起点CV_CAP_PROP_POS_AVI_RATIO - 视频文件的相对位置(0 - 影片的开始,1 - 影片的结尾) CV_CAP_PROP_FRAME_WIDTH - 视频流中的帧宽度 CV_CAP_PROP_FRAME_HEIGHT - 视频流中的帧高度 CV_CAP_PROP_FPS - 帧率 CV_CAP_PROP_FOURCC - 表示codec的四个字符 CV_CAP_PROP_FRAME_COUNT - 视频文件中帧的总数int cvSetCaptureProperty( CvCapture* capture, int property_id, double value );设置指定视频获取的属性。目前这个函数对视频文件只支持: CV_CAP_PROP_POS_MSEC, CV_CAP_PROP_POS_FRAMES, CV_CAP_PROP_POS_AVI_RATIO;capture:视频获取结构。property_id:属性标识。可以是下面之一:CV_CAP_PROP_POS_MSEC - 从文件开始的位置,单位为毫秒 CV_CAP_PROP_POS_FRAMES - 单位为帧数的位置(只对视频文件有效) CV_CAP_PROP_POS_AVI_RATIO - 视频文件的相对位置(0 - 影片的开始,1 - 影片的结尾) CV_CAP_PROP_FRAME_WIDTH - 视频流的帧宽度(只对摄像头有效) CV_CAP_PROP_FRAME_HEIGHT - 视频流的帧高度(只对摄像头有效) CV_CAP_PROP_FPS - 帧率(只对摄像头有效) CV_CAP_PROP_FOURCC - 表示codec的四个字符(只对摄像头有效)value :属性的值。6)cvCreateVideoWriter( ):创建视频写入器结构CvVideoWriter* cvCreateVideoWriter( const char* filename,int fourcc, double fps,CvSize frame_size,int is_color=1 );filename:输出视频文件名。 fourcc:四个字符用来表示压缩帧的codec 例如,CV_FOURCC('P','I','M','1')是MPEG-1 codec,CV_FOURCC('M','J','P','G')是motion-jpeg codec等。在Win32下,如果传入参数-1,可以从一个对话框中选择压缩方法和压缩参数。fps:被创建视频流的帧率。frame_size:视频流的大小。is_color:如果非零,编码器将希望得

    注意事项

    本文(大学毕业论文-—基于meanshift算法的运动目标跟踪.doc)为本站会员(教****)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开