全套毕业设计基于视频的车辆检测系统.doc_第1页
全套毕业设计基于视频的车辆检测系统.doc_第2页
全套毕业设计基于视频的车辆检测系统.doc_第3页
全套毕业设计基于视频的车辆检测系统.doc_第4页
全套毕业设计基于视频的车辆检测系统.doc_第5页
已阅读5页,还剩50页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

全套设计(图纸)请联系qq 174320523 各专业都有编号无锡太湖学院毕业设计(论文)题目: 基于视频的车辆检测系统 信机 系 计算机科学与技术 专业学 号: 0921157 学生姓名: 陈嘉斌 指导教师: 李朝锋 (职称: 副教授 ) (职称: )2013年5月25日无锡太湖学院本科毕业设计(论文)诚 信 承 诺 书本人郑重声明:所呈交的毕业设计(论文) 基于视频的车辆检测系统 是本人在导师的指导下独立进行研究所取得的成果,其内容除了在毕业设计(论文)中特别加以标注引用,表示致谢的内容外,本毕业设计(论文)不包含任何其他个人、集体已发表或撰写的成果作品。 班 级: 计科94 学 号: 0921157 作者姓名: 2012 年 5 月 25 日无锡太湖学院 信机 系 计算机科学技术 专业毕 业 设 计论 文 任 务 书一、题目及专题:、 题目 基于视频的车辆检测系统 、专题 二、课题来源及选题依据 课题来源:导师选定 选题依据:现如今,随着我国国民经济的快速发展,居民的收入水平越来越高,汽车已经成为了十分普遍的交通工具。对汽车的检测与管理日趋重要。同时基于视频以及以计算机视觉为基础的对车辆进行识别检测的理论越来越多。通过对图像进行分析,能够对交通信息进行全方位的管理。可以通过分析相关数据来评估和预测特定时间段的车辆情况。 一个完善的汽车检测既帮助管理人员对交通状况进行及时、准确的分析和处理最大限度地降低处理信息的劳动强度,使交通管理水平产生质的飞跃,跟上信息时代的步伐。 三、本设计(论文或其他)应达到的要求: 了解图像识别与检测 熟练掌握对图像进行灰度化处理, 中值滤波处理及二值化处理. 熟练掌握从图像中将某个特定区域与其它部分进行分离并提取出想要识别的物体的处理。 熟练使用matlab提供的图形用户界面(gui)工具。 完成对移动中车辆的检测与计数。 四、接受任务学生: 计科94 班 姓名 陈嘉斌 五、开始及完成日期:自 2012 年 11 月 12 日 至 2013年 5月 25日六、设计(论文)指导(或顾问):指导教师签名 签名 签名教研室主任学科组组长研究所所长签名 系主任 签名2012年11月12日摘 要当今科技飞速发展,带来了智能交通的空前发达,也为经济可持续发展做出一定贡献。交通运输在一个国家的经济社会发展中起着助推器的作用。交通运输的监控与管理智能化也变得尤为重要。基于视频的车辆检测作为智能交通系统的基石, 具有直观性、大范围检测、安装和维护方便等优势,成为采集交通信息技术的有力工具。因而视频车辆检测研究具有非常重要的意义。本论文首先介绍了图像检测的研究背景以及发展情况,然后重点介绍了本论文中进行车辆检测的技术和方法。该方法先对图像进行灰度值化处理,中值滤波处理及二值化处理,然后利用车辆移动的特点进行检测,最后将移动中的车辆进行加框标记。实验结果表明, 本程序设计能够在一定的误差范围内实现对移动车辆进行检测。且效果良好。本文视频车辆检测系统是采用图像处理的方法进行设计,本研究有着一定的现实意义。关键词:智能交通;车辆检测;图像处理;matlab abstracttoday, science and technology develop quickly. and it make intelligent transportation system was more developed. it has also made a certain contribution for the sustainable development of economy. transportation plays the role of booster in economic and social development of a country. it is important that make monitoring and management of transportation to be more intelligence. vehicle detection system that bases on the video is footstone of intelligent transportation system. it can watch easily. it can do a large-scale detection. and its installation and maintenance is convenient. it will be a helpful tool of collecting the information of traffic. so it has an important meaning for researching the detection of vehicles.this dissertation introduces the background of the research and the development of the situation. than introduces the technology and method of vehicle detection system detailed. the method is to make the image gray processing, median processing and binary image processing at the first. using the characteristics of vehicle moving detects vehicles at the second. finally, sign frames on vehicles. the experimental results show that the program can detect the moving vehicles within a certain range of error and has good result.this vehicle detection system that bases on the video designed with the technology of image processing. it is of practical significance in this research.key words: intelligent transportation; vehicle detection; image processing; matlab全套设计(图纸)请联系qq 174320523 各专业都有目 录摘 要iiiabstractiv目 录v1 绪论11.1 课题背景与意义11.2 国内发展概况11.3 视频车辆检测系统概述21.4 图像处理概述31.5 本课题工作与结构安排31.6 开发工具及运行环境42 软件介绍52.1 matlab 概况52.2 matlab的语言特点62.3 基本运算与函数73 基于视频的车辆检测方法153.1 基于视频的车辆检测方法153.1.1 基于帧间差分的方法153.1.2 基于光流场的方法153.1.3 基于背景差的方法163.2 车辆阴影分割技术164 车辆目标的图像处理方法174.1 彩色图像灰度化174.2 图像分割194.2.1 阈值分割方法194.2.2 最大方差自动取阈值(自适应二值化)194.2.3 基于边缘检测的图像分割224.3 基于数学形态学分析244.3.1 图像形态学处理244.3.2 实验结果比较264.4 图像填充275 基于帧间差分法的车辆检测盒计数方法295.1 帧间差分法295.2 二值化295.3 形态学滤波305.4 系统流程图315.5 分析目标物体和计数326 结论与展望356.1 结论356.2 不足之处与对未来的展望35致 谢37参考文献38附 录39全套设计(图纸)请联系qq 174320523 各专业都有1 绪论1.1 课题背景与意义当今科技飞速发展,带来了智能交通的空前发达,也为经济可持续发展做出一定贡献。交通运输在一个国家的经济社会发展中起着助推器的作用。随着交通运输业的高速发展,交通堵塞、事故等等负面效应也日益突出,并越发成为全球性共同问题。针对日益严重交通需求,有限的资源和日益恶化的环境,需要依靠新的办法来控制交通需求。智能交通系统正在这样的矛盾中应运而生。智能交通系统(its),随着信息技术、计算机技术、数据通信传输技术、模式识别技术、图像处理技术等学科的迅猛发展,得到了日益广泛的应用,极大提高了交通管理的智能化、科学化、规范化水平。特别是计算机视觉技术的发展为提高交通系统智能化程度,提供了有效手段。要从根本上解决这些问题,必定要实现交通运输系统的智能化,使交通运行处于最佳状态,改善交通堵塞,提高运输能力和整个交通系统的机动性、安全性和效率。智能交通系统是目前交通领域的重要研究课题之一。实时动态的交通信息是实现交通智能化的关键所在。作为交通流基本参数之一,实时计数也具有基本的交通流特性,它的采集手段很多,目前比较成熟的有磁性检测、电磁波检测等。而在道路实时行车流的采集和应用处理是its各有关项目如:城市公共交通智能化调度系统、自动驾驶系统、物流管理系统实施的基础数据和重要前提之一。目前有关实时车流信息采集、维护以及处理的研究有了很大发展。计算机和电子信息技术的高速发展,使得数据处理加工能力逐步增强,为图像处理、计算机视觉和模式识别技术应用于智能交通信息采集提供了强有力的保障。该系统通过摄像机对交通信息流进行摄像,利用图像处理和模式识别技术对连续的交通信息流进行处理,以此达到监测交通信息流的目的。同时,现场的交通视频信号也能够为电视监控共用。近年来,该系统得到快速发展,作为一种检测手段,视频检测技术所提供的丰富交通信息,以及所具有的各种优点,都是其他方法难以比拟的。本文是基于视频图像处理的车辆信息处理系统,重点研究实时车辆检测以及车辆计数涉及到的相关内容和算法,其目的是提高交通管理的自动化、现代化水平。其中所有的数字图像处理都通过matlab仿真实现,通过本文的研究也以后相关开发应用积累经验。1.2 国内发展概况目前,国外一些发达国家的摄像机以及图像采集卡都处于先进水平,在视频运动检测和图像处理方面的技术也比较成熟,从而开发出的汽车检测系统也会具有相当高的性能。而国内与其比较还有相当大的差距,国内对智能的车辆检测系统的研究起步比较晚。车辆检测系统也是从国外引进,通过学习外国的技术与国内自身的交通情况以及车辆特点相结合起来开发的产品。国内车辆检测按照时间与技术的发展过程可分为以下4个:(1) 普通照相机式在80年代这种由普通张相机和车辆感应线圈结合的方式使用的普遍。这种组合方式简单,投资少,抓拍图片分辨率高,但缺点是需要每天人工更换胶卷进行冲洗,且白天宇夜晚需要使用不同的胶卷,费用较高。用于夜间拍摄的补光闪光灯也不易维护。(2) 数字照相机在90年代这种使用数码相机与车感线圈的组合用的相对普遍。这是对第一种方式的改进,它可以直接将抓拍下的图片数字化后存储在闪存卡上,或者通过通信接口存入计算机中。这种方式可以拍摄出高分辨率的照片同时又省去了人工更换胶卷冲洗的麻烦,但在维护方面仍然存在艰难的问题。(3) 视频感应线圈式在90年代后期至2000年早期这种由工业摄像机与感应线圈与工业控制计算机构成的系统使用的比较多。它首先通过感应线圈来检测车辆,接着使用工业控制计算机来控制工业摄像机抓拍车辆照片保存到计算机中。和以上2种方式相比,这种方式使得人工量与工作量大大的减少,但仍使用感应线圈,所以在维护方面还是比较麻烦。(4) 视频检查式在2000年以后至今这种由工业摄像机与工业控制计算机构成的方式使用的普遍。它不需要使用感应线圈检测车辆,而是由计算机对监视区域的实时的图像进行分析处理,从而判断是否有车辆违章。它可以把工业控制计算机抓拍到的图像数字化后直接存入硬盘中,再通过电话线传送到相关部门,无需人工操作。这种方式采用的超级动态调整低照度摄像机利用路灯、车牌灯和追尾灯就可以进行有效的抓拍且不需要安装闪光灯,不仅抓拍速度大大提高,在存储量自动化方面也有着巨大的优势,应用范围广。基于视频的车辆检测系统不需要物理检测线圈,采用虚拟线圈来代替。采用基于图像的车辆运动检测算法来检测车辆运动。这种方法不需要人工更换胶卷冲洗照片,也不需要挖开路面,维护方便。可以说基于视频的汽车检测系统将被普遍使用,是今后发展的方向。1.3 视频车辆检测系统概述通过对道路交通信息和交通目标的各种动态行为(如停车、违章超速、超车等等)的实时监测,实现自动统计各交通路段上行驶的车数量、计算行驶车速度,识别分类行驶车辆等各种交通参数,达到监测交通道路状况的作用。同时,将监测和识别的交通状况信息存储下来,为分析和管理交通提供依据,因此它可视为一个交通信息的管理系统。利用摄像机将交通流图像捕捉下来,然后将这些捕捉到的视频图像传到计算机进行图像处理、分析和理解,得到交通流数据与交通路况等信息。将摄像机安装在合适的位置,一般高度为5-20米。若道路口有龙门架、隧道、过街桥、红绿灯杆可直接安装,不需再安装杆。摄像机一般为工业用黑白或彩色ccd芯片型,拥有300线上的清晰度,通常安装于室外防护罩中。目前众多城市都架设有电子警察系统,可以利用ccd摄像机把两者合二为一,降低了成本;将摄像机捕捉的视频送入视频车检器上。在检测器的视频画面上标记监测区域,这种用软件方法设置监测区域提高了系统的通用性和灵活性,使它可以使用各种交通路口;对捕捉的视频运用一定的图像分析处理算法进行处理,提取相关的交通参数。把视频图像进行压缩,通过通信线路或无线把交通参数和压缩后的图像传到远端控制中心,供操作人员使用。1.4 图像处理概述视频车辆检测系统是一种利用图像处理和模式识别技术实现对交通目标检测和识别的计算机处理系统。“图”是物体投射或反射光的分布,“像”是人视觉系统对图的接受在大脑中形成的印象或反映,是主观和客观的结合。图像处理即是对图像进行加工处理,从而达到人类的视觉心理和应用的要求。人类获取外界信息有多种方法,包括视觉、听觉、触觉、嗅觉、味觉等。但绝大部分是来自我们视觉所看到的图像信息,即所谓“百闻不如一见”。图像的范围非常广泛,包括:各类图片,如普通照片、x光片、遥感图片;各类光学图像,如电影、电视等;人们心目中的有形影像以及外部描述,如绘图、绘画等。数字影像是将照片或录像等模拟信号经抽样和数字化后形成。因为便于计算机运算与储存。所储存的亮点即为图像的基本单位,成为像素。像素的亮度是灰度值,灰度值被划分为256等级,最暗为0,最亮为255.一张图像被数字化成方格所组成的像素,每一格标有一对坐标,一个表示行值,另一则表示列值。行值从影像的最左边开始标记自0一直到n,n表示行值中最大值。相同的,列值从最上方起定位0,自下移动至m值,m表示图形全部列数。数字图像处理目的就是对图像的强度分布视为一连串整数值的集合,使用数字计算机对图像进行某些特定的加工和分析。数字图像处理涵盖范围非常广泛,但是,所采用的原理与方法基本一致。整体来说,主要内容包括图像的增强与复原、图像编码与压缩、图像切割、图像识别、图像特征匹配等等。图像分割是将图像中的目标物解析出的过程。图像分割是图像的分析过程中最为重要的步骤之一,通常所采用的方法主要为边缘的检测及临界值法。图像特征匹配,特征匹配法的“特征”,需先加以定义。所谓匹配,即将目标特征与存在计算机中之样本特征加以比较,若相似度或非相似度小于或大于某预设的门限值,则匹配成功。特征匹配目的是对具有相同或类似特征的物体进行关联,便于辨认或分类。就交通方面而言,特征匹配用来区别不同的交通工具。举例而言,若图像中某物体长度4米,宽2米,形状呈矩形,该物体极有可能被分类为小汽车;若长为10米,宽2.5米的矩形,则可被分类为大型车。1.5 本课题工作与结构安排本文主要就视频车辆检测技术进行概述。全文共分四章,结构安排如下:第一章主要介绍了课题研究背景及意义,重点阐述了视频车辆检测技术的研究现状,视频车辆检测系统概述以及图像处理基础基础知识。第二章软件介绍第三章介绍了基于视频的车辆检测方法,主要有帧间法,光流法以及背景差方法。第四章介绍了基于车辆目标的图像处理方法,用matlab仿真实现了图像的图像分割和数学形态学相关理论实验结果。第五章提出了基于帧间差分法的车辆目标检测和计数的系统,并给出了matlab仿真结果,验证了此方法的有效性。1.6 开发工具及运行环境合理选取开发工具,不仅会对系统的研究与开发产生重大影响,而且还有可能大幅度降低开发成本,并提高系统的稳定性和可维护性。视频车辆检测系统的开发属于一个较为复杂的图像处理程序。换句话讲就是该功能对稳定性、可维护性有极为严格的要求,为此,本文决定选取matlab作为开发工具。软件环境:xp/win7。2 软件介绍2.1 matlab 概况本次设计是基于matlab来实现的图像预处理和边缘检测,所以在本节对matlab的一些基本知识进行介绍。matlab的名字由matrix和laboratiry两个词的前3个字母组合而成,是由mathworks公司于1982推出的一套高性能的可视化数值计算软件。它的典型应用包括如下方面:数学和计算,数据获取,算法开发,原型设计、建模和模拟,数据研究、分析和可视化,科学和工程图形,应用开发。matlab是一种交互式系统,其基本数据元素是并不要求确定维数的一个数组,这就允许人们用公式化方法求解许多技术计算问题,特别是涉及矩阵表示的问题。因此在矩阵运算和数值计算等方面matlab非常直观、简洁,且效率高,因而它在科学与工程计算方面的优势是显而易见的。matlab有三大特点:一是功能强大(数值计算和符号计算、计算结果和编程的可视化、数学和文字统一处理、离线和在线计算);二是界面友好、语言自然(以复数矩阵为计算单元,语句表达与标准教科书的数学表达式相近);三是开放性强(仅mathworks公司本身就推出了30多个应用工具箱)。matlab的这些特点使它获得了对应用学科的极强适应力,并很快成为应用学科计算机辅助分析、设计、仿真、教学以及科技文字处理不可缺少的基础软件。现有的matlab工具箱主要有信号处理、控制系统、图像处理、鲁棒控制、非线性系统控制设计、系统辨识、最优化、弘分析和综合、模糊逻辑、小波、样条、通信、统计等工具箱,而且其种类和数量还在不断增加。这些工具箱给各个领域的研究和工程应用提供了有力的工具,借助于这些工具,研究人员可直观、方便地进行分析、计算及设计工作,从而大大节省了时间。matlab在图像处理领域应用广泛。matlab的图像处理工具包是由一系列支持图像处理操作的函数组成的。所支持的图像处理操作有:图像的几何操作、邻域和区域操作、图像变换、图像恢复与增强、线性滤波和滤波器设计、变换(dct变换等) 、图像分析和统计、二值图像操作等。下面就matlab 在图像处理中各方面的应用分别进行介绍。图像文件格式的读写和显示。matlab 提供了图像文件读入函数 imread(),用来读取如:bmp、tif、tiffpcx 、jpg 、gpeg 、hdf、xwd等格式图像文件;图像写出函数 imwrite() ,还有图像显示函数 image()、imshow()等等。图像处理的基本运算。matlab 提供了图像的和、差等线性运算 ,以及卷积、相关、滤波等非线性运算。例如,conv2(i,j)实现了i,j两幅图像的卷积。图像变换。matlab 提供了一维和二维离散傅立叶变换(dft) 、快速傅立叶变换(fft) 、离散余弦变换 (dct) 及其反变换函数,以及连续小波变换(cwt)、离散小波变换(dwt)及其反变换。图像的分析和增强。针对图像的统计计算,matlab 提供了校正、直方图均衡、中值滤波、对比度调整、均值滤波等对图像进行处理。以上所提到的 matlab在图像中的应用都是由相应的matlab函数来实现的,使用时,只需按照函数的调用语法正确输入参数即可。具体的用法可参考matlab丰富的帮助文档。图像边缘对图像识别和计算机分析十分有用,在matlab中,函数 edge()用于灰度图像边缘的提取,它支持六种不同的边缘提取方法,即sobel方法、prewitt 方法、robert 方法,laplacian方法、和canny方法。2.2 matlab的语言特点一种语言之所以能如此迅速地普及,显示出如此旺盛的生命力,是由于它有着不同于其他语言的特点,正如同fortran和c等高级语言使人们摆脱了需要直接对计算机硬件资源进行操作一样,被称作为第四代计算机语言的matlab,利用其丰富的函数资源,使编程人员从繁琐的程序代码中解放出来。matlab最突出的特点就是简洁。matlab用更直观的,符合人们思维习惯的代码,代替了c和fortran语言的冗长代码。matlab给用户带来的是最直观,最简洁的程序开发环境。以下简单介绍一下matlab的主要特点。语言简洁紧凑,使用方便灵活,库函数极其丰富。matlab程序书写形式自由,利用起丰富的库函数避开繁杂的子程序编程任务,压缩了一切不必要的编程工作。由于库函数都由本领域的专家编写,用户不必担心函数的可靠性。可以说,用matlab进行科技开发是站在专家的肩膀上。具有fortran和c等高级语言知识的读者可能已经注意到,如果用fortran或c语言去编写程序,尤其当涉及矩阵运算和画图时,编程会很麻烦。例如,如果用户想求解一个线性代数方程,就得编写一个程序块读入数据,然后再使用一种求解线性方程的算法(例如追赶法)编写一个程序块来求解方程,最后再输出计算结果。在求解过程中,最麻烦的要算第二部分。解线性方程的麻烦在于要对矩阵的元素作循环,选择稳定的算法以及代码的调试动不容易。即使有部分源代码,用户也会感到麻烦,且不能保证运算的稳定性。解线性方程的程序用fortran和c这样的高级语言编写,至少需要四百多行,调试这种几百行的计算程序可以说很困难。以下用matlab编写以上两个小程序的具体过程。matlab求解下列方程,并求解矩阵a的特征值。ax=b,其中:a= 32 13 45 67 23 79 85 12 43 23 54 65 98 34 71 35b= 1 2 3 4解为:x=ab;设a的特征值组成的向量e,e=eig(a)。可见,matlab的程序极其简短。更为难能可贵的是,matlab甚至具有一定的智能水平,比如上面的解方程,matlab会根据矩阵的特性选择方程的求解方法,所以用户根本不用怀疑matlab的准确性。运算符丰富。由于matlab是用c语言编写的,matlab提供了和c语言几乎一样多的运算符,灵活使用matlab的运算符将使程序变得极为简短。matlab既具有结构化的控制语句(如for循环,while循环,break语句和if语句),又有面向对象编程的特性。程序限制不严格,程序设计自由度大。例如,在matlab里,用户无需对矩阵预定义就可使用。程序的可移植性很好,基本上不做修改就可以在各种型号的计算机和操作系统上运行。matlab的图形功能强大。在fortran和c语言里,绘图都很不容易,但在matlab里,数据的可视化非常简单。matlab还具有较强的编辑图形界面的能力。matlab的缺点是,它和其他高级程序相比,程序的执行速度较慢。由于matlab的程序不用编译等预处理,也不生成可执行文件,程序为解释执行,所以速度较慢。功能强大的工具箱是matlab的另一特色。matlab包含两个部分:核心部分和各种可选的工具箱。核心部分中有数百个核心内部函数。其工具箱又分为两类:功能性工具箱和学科性工具箱。功能性工具箱主要用来扩充其符号计算功能,图示建模仿真功能,文字处理功能以及与硬件实时交互功能。功能性工具箱用于多种学科。而学科性工具箱是专业性比较强的,如control,toolbox,signl proceessing toolbox,commumnication toolbox等。这些工具箱都是由该领域内学术水平很高的专家编写的,所以用户无需编写自己学科范围内的基础程序,而直接进行高,精,尖的研究。源程序的开放性。开放性也许是matlab最受人们欢迎的特点。除内部函数以外,所有matlab的核心文件和工具箱文件都是可读可改的源文件,用户可通过对源文件的修改以及加入自己的文件构成新的工具箱。2.3 基本运算与函数 在matlab下进行基本数学运算,只需将运算式直接打入提示号()之後,并按入enter键即可。例如: (5*2+1.3-0.8)*10/25 ans =4.2000 matlab会将运算结果直接存入一变数ans,代表matlab运算後的答案(answer)并显示其数值於萤幕上。小提示: 是matlab的提示符号(prompt),但在pc中文视窗系统下,由於编码方式不同,此提示符号常会消失不见,但这并不会影响到matlab的运算结果。 我们也可将上述运算式的结果设定给另一个变数x: x = (5*2+1.3-0.8)*102/25 x = 42 此时matlab会直接显示x的值。由上例可知,matlab认识所有一般常用到的加(+)、减(-)、乘(*)、除(/)的数学运算符号,以及幂次运算()。 小提示: matlab将所有变数均存成double的形式,所以不需经过变数宣告(variable declaration)。matlab同时也会自动进行记忆体的使用和回收,而不必像c语言,必须由使用者一一指定.这些功能使的matlab易学易用,使用者可专心致力於撰写程式,而不必被软体枝节问题所干扰。 若不想让matlab每次都显示运算结果,只需在运算式最後加上分号(;)即可,如下例: y = sin(10)*exp(-0.3*42); 若要显示变数y的值,直接键入y即可: y y =-0.0045 在上例中,sin是正弦函数,exp是指数函数,这些都是matlab常用到的数学函数。下表即为matlab常用的基本数学函数及三角函数: 小整理:matlab常用的基本数学函数 abs(x):纯量的绝对值或向量的长度 angle(z):复 数z的相角(phase angle) sqrt(x):开平方 real(z):复数z的实部 imag(z):复数z的虚 部 conj(z):复数z的共轭复数 round(x):四舍五入至最近整数 fix(x):无论正负,舍去小数至最近整数 floor(x):地板函数,即舍去正小数至最近整数 ceil(x):天花板函数,即加入正小数至最近整数 rat(x):将实数x化为分数表示 rats(x):将实数x化为多项分数展开 sign(x):符号函数 (signum function)。 当x0时,sign(x)=1。 小整理:matlab常用的三角函数 sin(x):正弦函数 cos(x):馀弦函数 tan(x):正切函数 asin(x):反正弦函数 acos(x):反馀弦函数 atan(x):反正切函数 atan2(x,y):四象限的反正切函数 sinh(x):超越正弦函数 cosh(x):超越馀弦函数 tanh(x):超越正切函数 asinh(x):反超越正弦函数 acosh(x):反超越馀弦函数 atanh(x):反超越正切函数 变数也可用来存放向量或矩阵,并进行各种运算,如下例的列向量(row vector)运算: x = 1 3 5 2; y = 2*x+1 y = 3 7 11 5 小提示:变数命名的规则 1.第一个字母必须是英文字母 2.字母间不可留空格 3.最多只能有19个字母,matlab会忽略多馀字母 我们可以随意更改、增加或删除向量的元素: y(3) = 2 % 更改第三个元素 y =3 7 2 5 y(6) = 10 % 加入第六个元素 y = 3 7 2 5 0 10 y(4) = % 删除第四个元素, y = 3 7 2 0 10 在上例中,matlab会忽略所有在百分比符号(%)之後的文字,因此百分比之後的文字均可视为程式的注解(comments)。matlab亦可取出向量的一个元素或一部份来做运算: x(2)*3+y(4) % 取出x的第二个元素和y的第四个元素来做运算 ans = 9 y(2:4)-1 % 取出y的第二至第四个元素来做运算 ans = 6 1 -1 在上例中,2:4代表一个由2、3、4组成的向量 若对matlab函数用法有疑问,可随时使用help来寻求线上支援(on-line help):help linspace 小整理:matlab的查询命令 help:用来查询已知命令的用法。例如已知inv是用来计算反矩阵,键入help inv即可得知有关inv命令的用法。(键入help help则显示help的用法,请试看看!) lookfor:用来寻找未知的命令。例如要寻找计算反矩阵的命令,可键入 lookfor inverse,matlab即会列出所有和关键字inverse相关的指令。找到所需的命令後 ,即可用help进一步找出其用法。(lookfor事实上是对所有在搜寻路径下的m档案进行关键字对第一注解行的比对,详见後叙。) 将列向量转置(transpose)後,即可得到行向量(column vector): z = x z = 4.0000 5.2000 6.4000 7.6000 8.8000 10.0000 不论是行向量或列向量,我们均可用相同的函数找出其元素个数、最大值、最小值等: length(z) % z的元素个数 ans = 6 max(z) % z的最大值 ans = 10 min(z) % z的最小值 ans = 4 小整理:适用於向量的常用函数有: min(x): 向量x的元素的最小值 max(x): 向量x的元素的最大值 mean(x): 向量x的元素的平均值 median(x): 向量x的元素的中位数 std(x): 向量x的元素的标准差 diff(x): 向量x的相邻元素的差 sort(x): 对向量x的元素进行排序(sorting) length(x): 向量x的元素个数 norm(x): 向量x的欧氏(euclidean)长度 sum(x): 向量x的元素总和 prod(x): 向量x的元素总乘积 cumsum(x): 向量x的累计元素总和 cumprod(x): 向量x的累计元素总乘积 dot(x, y): 向量x和y的内 积 cross(x, y): 向量x和y的外积 (大部份的向量函数也可适用於矩阵,详见下述。) 若要输入矩阵,则必须在每一列结尾加上分号(;),如下例: a = 1 2 3 4; 5 6 7 8; 9 10 11 12; a = 1 2 3 4 5 6 7 8 9 10 11 12 同样地,我们可以对矩阵进行各种处理: a(2,3) = 5 % 改变位於第二列,第三行的元素值 a = 1 2 3 4 5 6 5 8 9 10 11 12 b = a(2,1:3) % 取出部份矩阵b b = 5 6 5 a = a b % 将b转置後以行向量并入a a = 1 2 3 4 5 5 6 5 8 6 9 10 11 12 5 a(:, 2) = % 删除第二行(:代表所有列) a = 1 3 4 5 5 5 8 6 9 11 12 5 a = a; 4 3 2 1 % 加入第四列 a = 1 3 4 5 5 5 8 6 9 11 12 5 4 3 2 1 a(1 4, :) = % 删除第一和第四列(:代表所有行) a = 5 5 8 6 9 11 12 5 这几种矩阵处理的方式可以相互叠代运用,产生各种意想不到的效果,就看各位的巧思和创意。 小提示:在matlab的内部资料结构中,每一个矩阵都是一个以行为主(column-oriented )的阵列(array)因此对於矩阵元素的存取,我们可用一维或二维的索引(index)来定址。举例来说,在上述矩阵a中,位於第二列、第三行的元素可写为a(2,3) (二维索引)或a(6)(一维索引,即将所有直行进行堆叠後的第六个元素)。 此外,若要重新安排矩阵的形状,可用reshape命令: b = reshape(a, 4, 2) % 4是新矩阵的列数,2是新矩阵的行数 b = 5 8 9 12 5 6 11 5 小提示: a(:)就是将矩阵a每一列堆叠起来,成为一个行向量,而这也是matlab变数的内部储存方式。以前例而言,reshape(a, 8, 1)和a(:)同样都会产生一个8x1的矩阵。 matlab可在同时执行数个命令,只要以逗号或分号将命令隔开: x = sin(pi/3); y = x2; z = y*10,z = 7.5000 若一个数学运算是太长,可用三个句点将其延伸到下一行: z = 10*sin(pi/3)* . sin(pi/3); 若要检视现存於工作空间(workspace)的变数,可键入who: who your variables are: testfile x 这些是由使用者定义的变数。若要知道这些变数的详细资料,可键入: whos name size bytes class a 2x4 64 double array b 4x2 64 double array ans 1x1 8 double array x 1x1 8 double array y 1x1 8 double array z 1x1 8 double array grand total is 20 elements using 160 bytes 使用clear可以删除工作空间的变数: clear a a ? undefined function or variable a. 另外matlab有些永久常数(permanent constants),虽然在工作空间中看不 到,但使用者可直接取用,例如: pi ans = 3.1416 下表即为matlab常用到的永久常数。 小整理:matlab的永久常数 i或j:基本虚数单位eps:系统的浮点(floating-point)精确度 inf:无限大, 例如1/0 nan或nan:非数值(not a number) ,例如0/0 pi:圆周率 p(= 3.1415926.) realmax:系统所能表示的最大数值 realmin:系统所能表示的最小数值 nargin: 函数的输入引数个数 nargin: 函数的输出引数个数 因此本文是基于matlab实现车辆检测。 3 基于视频的车辆检测方法利用视频图像处理的方法进行车辆检测,就是通过对图像中特定区域像素灰度值变化的分析,来判断当前是否有车辆通过。车辆检测是交通流参数采集中关键的一步,其精度直接影响着车速等参数的精准度。车辆检测的目的判断是否有车经过检测区,并建立一个与之对应的跟踪对象,主要提供车流量等信息。减少车辆检测算法的复杂度和提高实时性是一对矛盾,解决这对矛盾对提高系统检测稳定度和准确度较为关键,可实际光照的变化、背景运动的模糊、运动目标的虚假影像、摄像机的抖动以及运动目标的遮挡现象等,都会影响车辆检测和分割的精度,必须在算法中考虑这些影响因素以及去除方法。3.1 基于视频的车辆检测方法基于视频图像的检测方法主要有基于帧间差分的方法、基于光流场的方法、基于背景差的方法等。3.1.1 基于帧间差分的方法帧间差分法是基于视频图像中,相邻两帧图像间具有强相关性而提出的检测方法。这种检测方法对光线等场景不敏感,能够适用于动态变化的环境,而且算法实现简单,检测速度快,定位准确,适用于快速提取运动目标的环境。它存在以下几个缺点:一是不能检测出静止或运动速度过慢的目标,对于高速运动的目标又会使得分割区域远远大于真实目标,其分割区域与目标运动速度相关;二是若目标内部的灰度较均匀,相邻帧差可能在目标重叠部分形成较大空洞,严重时造成分割不连通,不利于进一步的目标分析与识别。在现实应用中,帧间差分法是许多复杂检测算法的基础,通过改进算法将它与其它算法结合以提高检测效果。3.1.2 基于光流场的方法 光流场法的基本思想:运动在空间中可以用运动场描述,而图像平面上物体的运动是通过图像序列中灰度分布的不同体现的,从而,空间的运动场转移到图像上就为光流场(optical flow field)。光流场反映了图像上每一点灰度的变化趋势,可视为灰度像素点在图像平面上运动产生的瞬时速度场,为一种对真实运动场的近似估计6。 在理想的情况下,它能检测出独立运动对象,不需预先知道场景信息,能够精确地计算出运动目标速度,且用于摄像机运动情况。但光流法有以下缺点:有时即使没发生运动,外部照明发生变化也可观测到光流;另外,缺乏明显的灰度阶跃变化区域时,运动往往观测不到。三维物体的运动投影到二维图像的亮度变化,是因为部分信息丢失而使光流法存在孔径和遮挡问题,光流法估算二维运动场是不确定的,需要附加的假设模型来模拟二维运动场的结构;准确分割时光流法还需利用颜色、灰度、边缘等空域特征,从而提高分割精度;同时因光流法采用迭代的方法,计算复杂度高,若没有特殊的硬件支持,视频序列的实时检测很难达到。3.1.3 基于背景差的方法背景差法7首先选取背景中的一幅或几幅影像的平均作为背景影像,再把以后的序列影像当前

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论