1.3 本文主要研究内容
本文研究的主要内容是车道线检测识别与软件设计。车辆的自动或辅助驾驶、驾驶员预警系统是智能交通系统(Intelligent Transportation System)的重要研究内容,而道路边界的识别和跟踪是实现这一技术的首要问题。本文在借鉴国内外研究成果的基础上,致力于提高我国快速车道线识别技术。本文分为以下几个模块:图像的采集、图像预处理(图像灰度化、边缘检测等)、基于Hough变换的直线检测算法、提取车道线。
本文共分五章:
第一章主要介绍了课题研究的背景、意义和研究的国内外现状,结尾介绍了本文主要研究内容和章节安排。
第二章介绍编程工具MATLAB图像处理模块的使用。
第三章主要介绍了道路图像预处理当中的一些技术,首先是图像灰度化,然后介绍几种图像增强的方法,如邻域平均法、中值滤波法等,并对各算法进行对比分析;接着对几种常用的边缘检测算子如canny算子,prewitt算子,log算子的进行对比,并结合实践提出了一种新算法。
第四章介绍了进行车道线检测的主要算法,在这一章的开始简要介绍了本文需要使用的一些基本概念,然后详细介绍本文所使用的算法,给出了具体实现。
第五章对文章进行了简要的总结,指出本文的主要贡献和不足之处,对今后的车道线检测研究作了展望。
4
第二章 MATLAB简介
MATLAB语言是当今国际科学界最具影响力,最具活力的软件。它起源于矩阵运算,并已发展成一种高度集成的计算机语言。MATLAB语言具有很多优点,它提供了强大的科学运算,灵活的程序设计流程,并为加快程序运行速度和产生独立应用程序提供了编译器。基于以上原因,本课题采用MATLAB语言进行程序设计。
2.1 MATLAB的语言特点
MATLAB 是—种以矩阵为基本变量单元的可视化程序设计语言,语法结构简单,数据类型单一,命令表达方式接近于常用的数学公式。这使 MATLAB 用户在 短时间内就能快速掌握其主要内容和基本操作。MATLAB 不仅能免去大量的经常重复的基本数学运算,而且其编译和执行速度都远远超过了采用 C 和 Fortran 语言设 计的程序。可以说,MATLAB 在科学计算与工程应用方面的编程效率远远高于其他 高级语言。
MATLAB 语言有不同于其他高级语言的特点,被称为第四代计算机语言。正如 第三代计算机语言如 FORTRAN 与 C 等使人们摆脱了对计算机硬件的操作一样, MATLAB 语言使人们从繁琐的程序代码中解放出来。它的丰富的函数是开发者无需 重复编程,只要简单地调用和使用即可。MATLAB 语言最大的特点是简单和直接。 MATLAB 语言的主要特点有:
1.编程效率高
MATLAB 语言是一种面向科学与工程计算的高级语言,允许用数学形式的语言 编写程序,且比BASIC、FORTRAN 和C 等语言更加接近我们书写计算公式的思维方式,用 MATLAB 编写程序犹如在演算纸上排列公式与求解问题。因此,也可通 俗地称 MATLAB 语言为演算纸式科学算法语言。由于它编程简单,所以编程效率 高,易学易懂。
2.高效方便的矩阵和数组运算
MATLAB 语言像BASIC、FORTRAN 和C 语言一样规定了矩阵的算术运算符、关系运算符、逻辑运算符、条件运算符及赋值运算符,而且这些运算符大部分可以毫无改变的照搬到数组建的运算中。有些如算术运算符只要增加“.”就可以
5
用于数组建间的运算。另外,它不需定义数组的维数,并给出矩阵函数、特殊矩阵专门的库函数,使之在求解数字图像处理问题时显得大为简洁、高效、方便,这是其他高级语言所不能相比的。
3.用户使用方便
MATLAB 语言是一种解释执行的语言(在没有被专门的工具编译之前),它灵活、 方便,起跳时程序手段丰富,调试速度快,需要学习时间少。人们用任何一种语言 编程和调试一般都要经过四个步骤:编辑、编译、连接,以及执行和调试。各个步骤之间是顺序关系,编程的过程就是在他们之间作瀑布型的循环。MATLAB 语言与其它语言相比,较好的解决了上述问题,把编辑、编译、连接和执行融为一体。它能在同一画面上进行灵活操作,快速排除输入程序的书写错误、语法错误甚至语义错误,从而加快了用户编写、修改和调试程序的速度,可以说在编程和调试过程中 它是一种比VB 还要简单的语言,更不用谈C 和C++。
4.扩充性强,交互性好
MATLAB语言有丰富的库函数,在进行复杂的数学运算时可以直接调用,且这些库函数同用户文件在形式上一样,所以用户文件也可以作为 MATLAB 的库函数来调用。用户可以根据自己的需要方便的建立和扩充新的库函数,提高 MATLAB 使用效率和扩充它的功能。另外,为了充分利用 FORTRAN、C 等语言的资源,包括用户自己编好的FORTRAN、C语言程序,通过建立M文件的形式,混合编程, 方便地调用有关的FORTRAN、C语言子程序,还可以在C 语言和FORTRAN 语言中方便的使用MATLAB 的数值计算功能。良好的交互性增加了代码的重用性。 综上所述,MATLAB 最适用的范围是科学计算,对于本文需要实现图像处理算 法来说,MATLAB 再合适不过了。
2.2 MATLAB的技术特点:
1.运算符、库函数丰富
MATLAB的一个重要特色就是具有一套程序扩展系统和一组称之为工具箱的特殊应用子程序,每一个工具箱都是为某一类学科专业和应用而定制的。
MATLAB包含两个部分:核心部分和各种可选的工具箱。核心部分中有数百个核心内部函数。其工具箱又分为两类:功能性工具箱和学科性工具箱。功能性
6
工具箱主要用来扩充其符号计算功能,图示建模仿真功能,文字处理功能以及与硬件实时交互功能;而学科性工具箱是专业性比较强的,如control,toolbox,signal processing toolbox等。这些工具箱都是由该领域内学术水平很高的专家编写的,所以用户无需编写自己学科范围内的基础程序就可直接进行高、精、尖的研究。
2.强大的数值(矩阵)运算功能
MATLAB是一个包含大量计算算法的集合。其拥有600多个工程中要用到的数学运算函数,可以方便的实现用户所需的各种计算功能。函数中所使用的算法都是科研和工程计算中的最新研究成果,而前经过了各种优化和容错处理。在通常情况下,可以用它来代替底层编程语言,如C和C++。在计算要求相同的情况下,使用MATLAB的编程工作量会大大减少。MATLAB的这些函数集包括从最简单最基本的函数到诸如矩阵、特征向量、快速傅立叶变换的复杂函数。函数所能解决的问题其大致包括矩阵运算和线性方程组的求解、微分方程及偏微分方程组的求解、符号运算、傅立叶变换和数据的统计分析、工程中的优化问题、稀疏矩阵运算、复数的各种运算、三角函数和其他初等数学运算、多维数组操作以及建模动态仿真等。
3.界面友好、编程效率高
MATLAB程序书写形式自由,被称为“草稿式”语言,这是因为其函数名和表达更接近我们书写计算公式的思维表达方式,编写MATLAB程序犹如在草稿纸上排列公式与求解问题,因此可以快速地验证工程技术人员的算法。此外MATLAB还是一种解释性语言,不需要专门的编译器。具体地说,MATLAB运行时,可直接在命令行输入MATLAB语句,系统立即进行处理,完成编译、链接和运行的全过程。利用丰富的库函数避开繁杂的子程序编程任务,压缩了一切不必要的编程工作
4.图形功能强大
MATLAB具有非常强大的以图形化显示矩阵和数组的能力,同时它能给这些图形增加注释并且可以对图形进行标注和打印。MATLAB的图形技术包括二维和三维的可视化、图象处理、动画等高层次的专业图形的高级绘图函数(例如图形的光照处理、色度处理以及四维数据的表现等),又包括一些可以让用户灵活控
7
相关推荐: