1、前 言机器人技术综合了多学科的发展成果,集成了智能控制、人工智能、信息处理、图像处理、检测与转换等专业为一体,跨机械、电子、自动控制、计算机等多学科,代表了高技术的发展前沿,在工业制造、军事、航天等方面都得到了广泛的应用。它在人类生活应用领域中已经不断扩大。人类从外界获取信息,一般是通过视觉、触觉、听觉、嗅觉等感觉器官来实现的。其中,60-80的信息是由人的眼睛,即视觉来获得。让机器人具有视觉是人类的一个梦想。长期以来,人类的视觉系统一直是学者们非常感兴趣的领域。人们进行了大量的研究,希望通过某种人工的手段来实现人类的视觉功能。计算机视觉正是在这些研究的基础上逐渐形成的一门新的学科。它包括所有
2、由人类设计并在计算机环境下实现的模拟人的某些视觉功能的技术。计算机视觉是一个相当新且发展于分迅速的研究领域,并成为计算机科学和人工智能的重要研究领域之一。计算机视觉是在20世纪50年代开始的,当时的工作主要集中在二维图像分析和识别上,如光学字符识别、工件表面、显微图片和航空图片的分析和解释等。此时的视觉研究都是基于二维的,而且多数是采用模式识别的方法完成分类工作。 总之,视觉是一种感知周围环境最复杂的手段,也是最有效的手段,随着科学技术的发展,计算机视觉的应用范围日益扩大,无论是生物视觉系统,其最终的目的都是要帮助较大的系统来完成它的职责或生命的生存,这是非常重要的任务。因此视觉系统必须能够从
3、景物图像中提取对完成这些任务十分有用的信息。 机器人视觉的目的,是使用机器人能够像人眼一样对环境进行感知、解释和理解。现代信息社会的发展方向是数字化、网络化和智能化。信息技术的创立和发展的轨迹就是人脑信息处理过程的模仿。我们需要计算机与人之间可以没有障碍的交流沟通,这样才是信息智能化的最大的体现。但是目前人机对话的问题是妨碍信息智能化最大的障碍。计算机的图像识别,语音识别,文字识别等都难以尽如人意。 机器人在对目标进行识别时,首先要对目标进行分割。目标分割对于机器人视觉处理来说有着至关重要的作用。他处于处理系统的最底层,是其他高级应用如目标跟踪、目标识别的基础。只有正确地检测并分割出运动目标才
4、能进行后面的工作,否则就会产生很大的偏差和错误,以致后面的工作无法开展。运动目标的图像分割是当前国内外研究的热门课题,国外许多重要的期刊如optical Engineering,IEEE Transaction on Pattern Analysis and Machine Intelligence以及AD报告等,经常刊登有关该领域的学术论文。国内一些学者也在该领域做了大量的工作,并取得了一些成果,有的己经得到实际应用。图像分割自20世纪70年代起一直受到人们的高度重视,至今已提出上千种分割算法.但因尚无通用的分割理论,现提出的分割算法大都是针对具体问题的,并没有一种适合所有图像的通用分割算法
5、。因此对机器人图像分割研究具有很大的研究价值。第1章 视觉机器人概况1.1 机器人视觉的概念机器人视觉系统是指用计算机来实现人的视觉功能,也就是用计算机来实现对客观的三维世界的识别。机器人视觉主要研究用计算机来模拟人的视觉功能从客观事物的图像中提取信息,进行处理并加以理解,最终用于实际检测、测量和控制。 人类视觉系统的感受部分是视网膜,它是一个三维采样系统。三维物体的可见部分投影到视网膜上,人们按照投影到视网膜上的二维成像来对该物体进行三维理解。如果把三维客观世界到二维投影像看作是一种正变换的话,则机器人视觉系统所要做的是从这种二维投影图像(灰度阵列)到三维客观世界的逆变换,也就是根据这种二维
6、投影图像去重建三维的客观世界。1.2 机器人视觉的发展及应用机器人视觉系统按其发展可分为三代。第一代机器人视觉的功能一般是按规定流程对图像进行处理并输出结果。这种系统一般由普通数字电路搭成,主要用于平板材料的缺陷检测。第二代机器人视觉系统一般由一台计算机,一个图像输入设备和结果输出硬件构成。视觉信息在机内以串行方式流动,有一定学习能力以适应各种新情况。第三代机器人视觉系统是目前国际上正在开发使用的系统。采用高速图像处理芯片,并行算法,具有高度的智能和普通的适应性,能模拟人的高度视觉功能。 国外机器人视觉系统应用于很多方面,如用于海洋石油开采,海底勘查的水下机器人;用于医疗外科手术及研究的医用机
7、器人;帮助人类了解宇宙的空间机器人;完成特殊任务的核工业机器人等。虽然我国在机器视觉方面的发展与世界先进水平相比还有一定差距,但机器视觉系统的研制工作也取得了一定的成果。我国视觉机器人应用主要有以下目的:用以代替人类从事危险、有害和恶劣环境、超净环境下的工作;把人从肮脏、繁重的劳动中解放出来;提高劳动生产率,改善产品质量,快速响应市场要求,加强在国际市场的竞争能力。1.3 机器人视觉目前存在的主要问题目前的机器人视觉存在以下一些问题: 1. 如何准确、高速(实时)地识别出目标。 2.如何有效地构造和组织出可靠的识别算法,并且顺利地实现。这期待着高速的阵列处理单元,以及算法(如神经网络法、小波变
8、换等算法)的新突破,这样就可以用极少的计算量高度地并行实现功能。 3.实时性是一个难以解决的重要问题图像采集速度较低以及图像处理需要较长时间给系统带来明显的时滞,此外视觉信息的引入也明显增大了系统的计算量,例如计算图像雅可比矩阵、估计深度信息等等图像处理速度是影响视觉系统实时性的主要瓶颈之一。 4.稳定性是所有控制系统首先考虑的问题,对于视觉控制系统,无论是基于位置、基于图像或者混合的视觉伺服方法都面临着如下问题:当初始点远离目标点时,如何保证系统的稳定性,即增大稳定区域和保证全局收敛;为了避免伺服失败,如何保证特征点始终处在视场内。第2章 运动目标的图像分割原理图像分割是一种重要的图像技术,
9、在理论研究和实际应用中都得到了人们的广泛重视。图像分割的方法和种类有很多,有些分割运算可直接应用于任何图像,而另一些只能适用于特殊类别的图像。有些算法需要先对图像进行粗分割,因为他们需要从图像中提取信息。值得提出的是,没有唯一的标准的分割方法,不同类型的图像,有相对应的分割方法对其分割,同时,某些分割方法也只是适合于某些特殊类型的图像分割。分割结果的好坏需要根据具体的场合及要求衡量。图像分割是从图像处理到图像分析的关键步骤,可以说,图像分割结果的好坏直接影响对图像的理解。2.1图像的二值化二值化是最常用的图像阈值分割处理,图像分割是一种特殊的图像技术,也是一种重要而关键的图像分析技术。图像分割
10、是进行图像分析关键步骤,也是进一步理解图像的基础。图像二值化是数字图像处理技术中的一项最基本的变换方法,即选择一个阈值,将图像转换为黑白二值图像,将所需要的目标部分从图像的背景中分离出来,用于图像分割及边缘跟踪等预处理。假设一幅灰度图像的灰度值为,设有一阈值为,则 (2-1)通常,用二值图像中的1来表示目标予图,用0来表示背景子图。如果图像中某个像素的灰度值小于该阈值,则该像素的灰度值置为0,否则将其灰度值置为1。其变换函数曲线如图2-1所示图 2-1 二值化曲线示意图二值化的方法很多,关键在于阈值T的选取,而T的取值方法又取决于二值化的技术,T的选择有基于由点的像素灰度值单独决定的、有由像素
11、的局部特征决定的、也有基于全局像素决定的。阈值可以分为两类:全局阂值和局部阈值。全局阂值是对整个图像采用一个阈值进行划分,例如非零像素置l化、固定阈值二值化、判断分析二值化、基于灰度直方图的阈值法等。局部阈值法是将图像分成一些子块,对于每一块选定一个阂值,如动态阈值法,如果已知正确的图像的一些特征,那么阈值确定只要试验不同的值,看是否满足特征即可,如果前景物体的内部具有均匀一致的灰度值,并分布在另一个灰度值的均匀背景上,那么图像的灰度直方图有明显双峰。这种情况下可选择两峰之间的谷点作为门限值。该方法的优点是比较简单,但不适用于两峰值相差比较大、有宽且平的谷底的图像。二值化的关键是寻找一个分割阈
12、值,选用不同的阈值其处理结果差异很大。在确定阈值时,如果阈值定的过高,偶然出现的物体点就被认作背景,丢失所需的部分;反之,如果阈值定的过低,则会提取多余的部分(注意:当前背景为白色,目标对象为黑色时刚好相反)。精确阈值的选取一般是在多次试验的结果下完成的。2.2边缘检测图像的边缘是图像最基本的特征。所谓边缘(或边沿),是指其周围像素灰度有阶跃变化或屋顶变化的那些像素的集合。边缘广泛存在与物体与背景之间、物体与物体之间、基元与基元之间。因此,它是图像分割所依赖的重要特征。图像的边缘有方向和幅度两个特性。通常,沿边缘走向的像素变化平缓,而垂直于边缘走向的像素变化强烈。这种变换可能呈现阶跃型、屋顶性
13、、和凸缘型,如图2-2所示。这些变化分别对应景物中不同的物理状态。例如,阶跃型变化常常对应目标的深度或反射边界,而后两者则常常反映表面法线方向的不连续。图 2-2 灰度变化的几种类型2.2.1边缘检测的概述边缘检测(Edge detection)是图像处理中的一个重要的环节。经典的边缘检测方法是对原始图像按像素的某个邻域构造边缘检测算子。边缘检测算子(Edge detector)是一组用于在亮度函数中定位变化的非常重要的局部图像预处理方法,边缘是亮度发生急剧变化的位置。在微积分学中是用导数来描述连续函数的变化的,图像函数依赖于两个变量,即图像平面坐标,因此,描述边缘的检测算子使用偏导数。我们给
14、出一个模板 和一幅图象 。不难发现原图中左边暗,右边亮,中间存在着一条明显的边界。进行模板操作后的结果如下: 。可以看出,第3、4列比其他列的灰度值高很多,人眼观察时,就能发现一条很明显的亮边,其它区域都很暗,这样就起到了边沿检测的作用。为什么会这样呢?仔细看看那个模板就明白了,它的意思是将右邻点的灰度值减左邻点的灰度值作为该点的灰度值。在灰度相近的区域内,这么做的结果使得该点的灰度值接近于0;而在边界附近,灰度值有明显的跳变,这么做的结果使得该点的灰度值很大,这样就出现了上面的结果。这种模板就是一种边沿检测器,它在数学上的涵义是一种基于梯度的滤波器,又称边沿算子,你没有必要知道梯度的确切涵义
15、,只要有这个概念就可以了。梯度是有方向的,和边沿的方向总是正交(垂直)的,例如,对于上面那幅图象的转置图象,边是水平方向的,我们可以用梯度是垂直方向的模板 检测它的边沿。例如,一个梯度为45度方向模板 ,可以检测出135度方向的边沿。边缘检测技术对于数字图像是非常重要的,提取出边缘是将目标和背景区分开来的基础。2.2.2索贝尔算子索贝尔算子(Sobel operator)是图像处理中的算子之一,主要用作边缘检测。在技术上,它是一离散性差分算子,用来运算图像亮度函数的梯度之近似值。在图像的任何一点使用此算子,将会产生对应的梯度矢量或是其法矢量。核心公式:该算子包含两组3x3的矩阵,分别为横向及纵
16、向,将之与图像作平面卷积,即可分别得出横向及纵向的亮度差分近似值。如果以A代表原始图像,Gx及Gy分别代表经横向及纵向边缘检测的图像,其公式如下: and (2-2) 图像的每一个像素的横向及纵向梯度近似值可用以下的公式结合,来计算梯度的大小。 (2-3) 然后可用以下公式计算梯度方向。 (2-4)在以上例子中,如果以上的角度等于零,即代表图像该处拥有纵向边缘,左方较右方暗。Sobel 算子有两个,一个是检测水平边沿的 ;另一个是检测垂直平边沿的 。与 和 相比,Sobel算子对于象素的位置的影响做了加权,因此效果更好。Sobel算子另一种形式是各向同性Sobel(Isotropic Sobe
17、l)算子,也有两个,一个是检测水平边沿的 ,另一个是检测垂直平边沿的 。各向同性Sobel算子和普通Sobel算子相比,它的位置加权系数更为准确,在检测不同方向的边沿时梯度的幅度一致。下面的几幅图中,图2-3为原图;图2-4为普通Sobel算子处理后的结果图;图2-5为各向同性Sobel算子处理后的结果图。可以看出Sobel算子确实把图象中的边沿提取了出来。图2-3 原图图2-4 普通Sobel算子处理后的结果图 图2-5 各向同性Sobel算子处理后的结果图由于Sobel算子是滤波算子的形式,用于提取边缘,可以利用快速卷积函数, 简单有效,因此应用广泛。2.3图像的膨胀操作在获取的视频中,由
18、于光照、背景与目标像素相近等的原因,在进行边缘检测,轮廓提取时,往往会出现断线的问题。本文在进行边缘检测后增加一步膨胀操作,可以防止轮廓边缘断线的问题。2.3.1膨胀的基本原理膨胀是数学形态学的一个基本运算。数学形态学是一门建立在集论基础上的学科,是几何形态学分析和描述的有力工具。由于其并行快速、易于硬件实现,已引起了人们的广泛关注。目前,数学形态学己在计算机视觉、信号处理与图像分析、模式识别、计算方法与数据处理等方面得到了极为广泛的应用。数学形态学可以用来解决抑制噪声、特征提取、边缘检测、图像分割、形状识别、纹理分析、图像恢复与重建、图像压缩等。数学形态学是以形态结构元素为基础对图像进行分析
19、的数学工具。它的基本思想是用具有一定形态的结构元素去度量和提取图像中的对应形状,以达到对图像分析和识别的目的。数学形态学的应用可以简化图像数据、保持它们基本的形状特征、并除去不相干的结构。数学形态学的基本运算有4个:膨胀、腐蚀、开启和闭合。它们在二值图像中和灰度图像中各有特点,基于这些基本运算还可以推导和组合成各种数学形态学实用算法。数学形态学的基本思想及方法适用于与图像处理有关的各个方面,如基于击中,击不中变换的目标识别,基于流域概念的图像分割,基于腐蚀和开运算的骨架抽取及图像编码压缩,基于测地距离的图像重建,基于形态学滤波器的颗粒分析等。迄今为止还没有一种方法能像数学形态学那样既有坚实的理
20、论基础,简洁、朴素、统一的基本思想,又有如此广泛的实用价值。本文主要利用数学形态学中的膨胀的思想,实现目标区域的饱和,从而可以解决可能出现的轮廓断线问题。膨胀可以看作是将图像X中的每一个点x扩大为B+x(其中B为结构元素),记作XB。若用集合语言,它的定义为 (2-5)2.3.2 结构单元的选取在作形态变换运算时,首先必须选取结构单元(structure element)。结构单元实际上是一个小窗口内的灰度“形态”,也就是当窗口大小一定时,只需要确定窗口内各点的数值大小。一般来讲,结构单元的中心作为非边缘处的灰度差允许的值,而中心周围的元素主要在决定图像增强边缘运算时当前点与它周围的点之间“是
21、否有边缘存在”起决定作用。数值的确定一般根据特定的目的结合试验效果来进行。利用大小不同的结构单元进行膨胀变换时,大尺度的结构单元会将一些错误的噪声信息并入到变换结果中,小尺度的结构单元又不能够完美的得到变换结果,使得膨胀变换失去意义,因此,结构单元大小的选取要恰到好处。2.4填充操作虽然膨胀的二值图像可以比较精确地显示汽车的轮廓,但是在膨胀后的图像中,汽车内部仍有孔洞。为了除去这些孔洞,我们需要对图像进行填充操作。填充操作的一个用途就是对图像中的孔洞进行填充。例如,对于一幅二值或者灰度图像,前景对象代表球体。在图像中,这些对象应该是实心的,但是由于原始照片中存在反射现象而呈现圆环状态。在对这幅
22、图像作进一步的处理之前,可以先对其进行填充操作。MATLAB中使用imfill函数进行此操作。对于二值图像和灰度图像,imfill函数规定的连通性决定了其处理过程中的边界。Imfill函数与其他基于目标对象操作的函数不同,它对背景像素进行操作。当用imfill函数指定连通性的时候,指定的是背景像素的连通性,而不是前景像素的连通性。2.5图像腐蚀为了使分割后的图像看上去更自然,一般使用图像腐蚀操作使图像看上去更加光滑。图像腐蚀是指删除图像中对象的边缘,删除的像素数码依赖于处理过程中使用的结构元素的大小和和形状腐蚀对Z中的集合A和B,B对A进行腐蚀的整个过程如下: 用结构元素B,扫描图像A的每一个
23、像素 用结构元素与其覆盖的二值图像做“与”操作 如果都为1,结果图像的该像素为1。否则为0腐蚀处理的结果是使原来的二值图像减小一圈。 与图像膨胀类似,图像腐蚀的关键因素也是结构单元的选取,方法与原理与图像膨胀相同。2.6 MATLAB循环计算由于视频文件是由一帧一帧的图像按一定顺序连接而成,对图像的处理方法同样适用于对视频文件的处理,只不过是逐帧选取图像,然后对每一帧图像进行处理,最后再将处理后的每帧图像按原来的顺序连接成视频。因此就要用到循环计算的方法。循环计算可按给定的条件,重复执行指定的语句。Matlab用于实现循环计算的语句有for语句和while语句。对于循环的使用需要注意,为了最快
24、得到执行速度,在for循环被执行前,应预先分配数组。否则,在for循环内每执行一次命令,就对数组重新分配一次内存,这样会降低matlab的执行效率。2.7本章小结 本章主要介绍了本设计中运动目标分割的各个步骤的基本原理,首先介绍了边缘检测以及边缘检测中的sobel算子,然后介绍形态学中的图像膨胀,图像腐蚀以及图像填充的原理以及功能。最后介绍了基于MATLAB的循环处理的方法。第3章 软件设计与实现软件设计与实现本设计的灵魂。说得具体一点软件设计就是用编写程序的方法来满足实际工作的需要。而程序是算法与语言的融合在前一章中已经详细叙述了本文在实现运动目标分割时所研究和应用的算法本章的主要内容就是用
25、程序语言实现算法的结果,进而满足设计要求3.1 软件概述本设计是结合视觉机器人平台,在Windows XP平台上采用MATLAB语言开发。MATLAB语言是一种高级的矩阵语言,它包含控制语句、函数、数据结构、输入和输出和面向对象编程特点。MATLAB语言语言是基于流行的C+语言基础上的,因此语法特征与C+语言极为相似,而且更加简单,更加符合科技人员对数学表达式的书写格式。而且这种语言可移植性好、可拓展性强,这也是MATLAB能够深入到科学研究及工程计算各个领域的重要原因。MATLAB具有出色的图形处理功能,能够将向量和矩阵用图形的形式表现出来,它对整个图形处理功能进行了很大的改进和完善,使它不
26、仅在一般数据可视化软件都具有的功能方面更加完善,而且对于一些其他软件所没有的功能,MATLAB同样表现了出色的处理能力。 3.2 基于本设计的MATLAB处理方法3.2.1关于matlab的边缘检测Matlab图像处理工具箱使用edge函数来检测边界,这个函数寻找像素值剧烈变化的像素点。Edge函数用来求边界的方法很多,其中有sobel、prewitt、roberts、log、zeroscross和canny方法。在边沿检测中,常用的一种模板是Sobel 算子。Sobel 算子有两个,一个是检测水平边沿的 ;另一个是检测垂直平边沿的 。由于Sobel算子对于象素的位置的影响做了加权,因此检测效
27、果较好。故本文采用sobel方法,在matlab中其常见用法为:BW=edge(I, sobel)BW=edge(I, sobel,thresh)BW=edge(I, sobel,thresh,direction)BW=edge(I, sobel,thresh,direction,options)其中,I是输入的图像;sobel指所用的边缘检测方法为sobel;thresh指阈值,低于该阈值的像素值将被忽略;direction是指sobel方法的检测方向,可取值horizontal,vertical或者both;options是一个可选的输入,默认情况下为thinning,即边缘细化,当取no
28、thinning的时候,边缘不细化,因此可以加快算法的速度;BW是返回的图像的边缘,像素值为1的像素构成了图像的边缘。如图 所示为Sobel 边缘检测效果,左边为原始图像,右边为sobel边缘检测后的图像。 原始图像 sobel边缘检测后的图像图 3-13.2.2关于matlab的图像形态学操作对图像进行膨胀可以使用matlab图像处理工具箱中的imdilate函数,imdilate函数主要接收两个输入参数,一个是要处理的图像(灰度或二值图像),另一个是strel函数返回的结构元素图像,或者是定义了结构元素领域的二值矩阵。Imdilate函数常见调用方法如下:IM2=imdialate(IM,
29、se)IM2=imdialate(IM,NHOOD)IM2=imdialate(,shape)其中:IM是输入的要处理的二值图像或灰度图像;SE是strel函数返回的结构元素;NHOOD是一个元素值只有0或1的矩阵,规定了结构元素的领域;shape规定了输出图像的形状,有两种选择,一种为same,即跟输入图像相同大小;一种为full,是全膨胀后的结果;IM2是返回的膨胀后的图像。图3-2所示是二值图像膨胀后的结果,图3-3所示是灰度图像膨胀后的结果。其中,左边为原始图像,右边为膨胀后图像。 原始图像 膨胀后图像 图 3-2 原始图像 膨胀后图像 图 3-3使用imerode函数进行图像腐蚀。i
30、merode函数与imdilate函数的用法类似,它主要接收两个基本输入参数:待处理的输入图像以及strel结构元素对象。此外,imerode函数还可以接受3个可选参数:PADOPT(padopt) 影响输出图片的大小、PACKOPT(packopt).说明输入图像是否为打包的二值图像(二进制图像)。M指定原始图像的行数。Imerode函数常用调用方法如下:IM2=imerode(IM,SE)IM2=imerode(IM,NHOOD)IM2=imerode(,shape)其中:IM是输入的要处理的二值图像或灰度图像;SE是strel函数返回的结构元素;NHOOD是一个元素值只有0或者1的矩阵,
31、规定了结构元素的领域;shape规定了输出图像的形状,有两种选择,一种为same,即跟输入图像相同大小;一种为full,是全腐蚀后的结果;IM2是返回的腐蚀后的图像图3-4是二值图像腐蚀后的的图像,左边图为原始图像,右边图为腐蚀后图像,可以看到腐蚀后的图像中圆形目标变小,也就是说腐蚀是指使目标对象被“腐蚀”,从而使目标对象变小,这与膨胀结果正好相反。 原始图像 腐蚀后图像 图 3-4图3-5是灰度图像腐蚀后的图像,左边图为原始图像,右边图为腐蚀后图像 原始图像 腐蚀后图像图 3-5膨胀和腐蚀操作经常被一起使用来对图像进行处理。如图3-6可以看到,腐蚀后的图像中去除了小的线性结构同时矩形块形状也
32、变小,而膨胀使图像中的矩形块变大了。左边图为原始图像,中间图为腐蚀后图像,右边图为先腐蚀后膨胀的图像。 原始图像 腐蚀后的图像 先腐蚀后膨胀的图像 图3-6 MATLAB图像处理工具箱中使用imfill函数对二值图像或者灰度图像进行填充操作。它的常见调用方法如下 BW2=imfill(BW,locations) BW2=imfill(BW,hole) I2=imfill(I) BW2=imfill(BW,locations,conn) 其中BW是指二值图像;locations规定了填充操作的起始点;holes规定了填充二值图像中的孔洞;I是指灰度图像,即此函数可以填充灰度图像;conn规定了连
33、通性,其值对于二维图像来说可以为4或8。图3-7所示为对图像进行填充的图像,左边图为原始图像,右边图为填充后图像。 原始图像 填充后图像图3-73.3 程序设计3.3.1 设计流程这里以高速公路上行驶的汽车为例,对该方法进行介绍。图3-16是本设计流程的流程图。图3-8 设计流程图首先用mmreader函数读取素材视频,得到视频如图3-8所示。 图 3-9 素材视频图选取素材视频中的一桢图像,用rgb2gray函数把该彩色图像转换成灰度图像,如图3-9所示。其中,左边为视频中选取的一帧原图,右边为转换为灰度图像后的图片。 原始图像 灰度图像图 3-10 使用sobel算子来计算图像的边缘和阈值
34、,然后在原阈值的基础上修改阈值使检测到的边缘更合理,以获得更精确的图像边缘。获得边缘的图像如图3-10所示图 3-11 边缘分割图二值梯度图像的线条显示了图像中汽车目标边缘比较高的对比度,但这些线条还不能精确的描述我们感兴趣的轮廓。与原始图像相比,可以看到目标的线条并不联系,含有缝隙。如果使用线性结构元素对二值图像进行膨胀,这些不连续的线条将会消失。首先使用垂直方向的线性结构元素对二值图像进行膨胀,然后使用水平方向的结构元素对二值图像进行膨胀,使用strel函数生成结构元素,用函数imdiate对图像进行膨胀。结果如图3-11所示。图 3-12 膨胀后图像虽然膨胀的二值图像可以比较精确地显示出
35、目标轮廓,但是在膨胀后的图像中,目标内部仍有孔洞。为了去除这些孔洞,需要使用imfill函数对图像进行填充,填充后的图像如图3-12所示。图 3-13 填充后图像虽然目标已经分割出来,但是周围还有很多其它目标。为了去除周围的目标,这里使用imclearborder函数进行操作,结果如图3-13所示。在imclearborder函数中,设置连接性为4来去除其余目标。图 3-14 去除目标后图像 清除边缘目标后的图像看上去并不光滑,为了使分割后的图像看上去更自然,这里使用菱形结构元素对图像进行腐蚀,以使图像看上去更加光滑。腐蚀后的图像如图3-14所示。图 3-15 腐蚀后图像再用bwperim函数
36、获取目标边界,如图3-15所示。 图 3-16 目标边界图 最后再给边界赋色为红色,这样就完成了对一帧图像的处理。由于视频是由一系列图像连接而成,在处理是需要使用循环逐帧对数据进行处理,这里调用for函数,完成此项操作。循环结束后,就顺利实现了运动目标的分割。 3.3.2 实验结果如下是实验前后的对比图像,其中,图3-17为处理前的视频截取图像,图3-18为处理后的视频截取图像。 图3-17 实验对比图例:处理前 图3-18实验对比图例:处理后 3.4 本章小结 本章主要讲述了与本设计有关的各个步骤的MATLAB处理方法,首先介绍了边缘检测中的sobel算子用法,形态学中的图像膨胀,图像腐蚀以
37、及图像填充的的实现方法。然后对整个设计流程做了分析,同时对处理的各个步骤进行了试验,试验结果表明:这些处理方法能够很好地分割出运动目标。结 论本论文分析了视频运动汽车检测、分割的研究背景、发展状况和应用领域,详细讨论视觉机器人基于固定场景中运动目标的检测。由于时间有限本文的工作重点在于工程应用,尝试了各种算法,比较各个算法的优缺点和适用场合,详细叙述了在运动目标检测及分割方面所涉及的相关内容,并给出了一个基于实验目的的算法演示系统。论文完成的主要工作和研究成果有:1.在进行边缘检测方法的基础上,加入了膨胀操作,填充操作,使得能够获取精确的边缘。2.采用图像腐蚀操作,使清楚边缘目标后看上去不光滑
38、的图像变得更为自然。本文在视频运动目标分割方面做了一些研究,但鉴于该研究领域的应用背景和所涉及的知识内容极其广泛,作者认为在以下几方面有待做进一步研究:1.本文的工作都是基于单摄像机和静止背景的,摄像机和背景发生相对运动的情况本文没有涉及,对于后一种情况的运动目标分割研究,则需进一步研究。2.本文仅限于对目标的分割研究,没有涉及到对目标进一步地跟踪和识别。参考文献1罗宇华.计算机视觉M.北京:人民邮电出版社,20042章毓晋.图像理解与计算机视觉M.北京:清华大学出版社,20003段峰,王耀南,雷晓峰,等.机器视觉技术及其应用综述J.自动化博览,2002(3):59-614FRANCI L,R
39、OK B,et Al.Machine vision system for inspecting electric plates.Computers in Industry, 2002(47):113-1225PFEIFER T,WIEGERS L.Reliable tool wear monitoring by optimized image and illumination control in machine vision.Measurement, 2000(28):209-1286COKAL E,ERDEN A.Development of an image processing sys
40、tem for special purpose mobile robot navigation Proceedings of Fourth Annual Conference on Mechatronics and Machine vision in Practice. 1997:246-2527Rafael C. Gonzalez、Richard E. Woods. Digital Image Processing Second Edition. Publishing House of Electronics Industry. 20038余成波.数字图像处理及Matlab实现M.重庆大学出
41、版社,20039Welsey E. Snyder、Hairong Qi著.机器人视觉教程 J.机械工业出版社,200510王东署,李光彦,徐心和.打磨机器人误差建模与参数辨识J.控制工程,2006.72(5):22011Marr D.Vision-A Computational Investigation into the Human Representation and Processing of Visual Information, WH.Freeman, San Francisco, 200312Elias N.Malamas,Euripides G.M.Petrakis,Michal
42、is Zervakis.et al.A survey on industrial vision system,applications and tools. Image and Vision Computing, 2003, 21:171-18813刘瑞扬.货车运行故障动态图像检测系统(TFDS)的原理与应用J.中国铁路,2005,(5):26-2714胡小峰,赵辉编著. ViusalC+/MATLAB图像处理与识别实用M.人民邮电出版社,200415马颂德,张正友.计算机视觉M . 北京: 科学出版社,2002,52-7016余松煜等.数字图像处理M. 北京: 电子工业出版社. 200317
43、朱枫.像平面与空间平面的变换及其在移动机器人中的应用J.机器人,2002 ,20 (2):98-10318苏建波.机器人视觉系统非标定的平面运动跟踪J.系统工程与电子技术,2000,21 (6) :50-5319张贞子.机器人视觉定位及跟踪D .哈尔滨:哈尔滨工业大学,200320KenethR C.数字图像处理M.北京:电子工业出版社,200121崔屹.图像处理与分析一数学形态学方法及应用M,科学出版社,2000.422王春平,朱元昌等.电视跟踪系统中图像目标的预测跟踪算法研究J.测控技术.1999,18(3):45-4723张英琦,何洪涛.一种基于数学形态学的灰度图像边缘检测方法J,西南交
44、通大学学报,2000,31(5) 24张思芳,李正明.一种实时成像跟踪系统的研究J.光学精密工程.2002,10(6):573-57725王晓明,顾晓东,刘健.基于张量的图像边缘检测及滤波J.中国图形图像学报, 2002(8) 780-78226章毓晋,图像处理和分析M,清华大学出版社,200027陶霖密,徐光佑.机器视觉中颜色的问题及应用J.科学通报,2001,46(3):178-19028梁吉,蒋式勤等.视觉检测系统及其应用J,微计算机信息2003,12(1):12-15致谢在完成大学本科学业期间,我得到了许多人的关心、支持和帮助,没有他们的帮助,我是不可能顺利完成学业的。首先要对我的毕业设计指导老师王老师表示衷心的感谢。从论文的选题到撰写,都凝聚了导师的心血与汗水,王老师宽阔的视野、渊博的知识、敏锐的洞察力和严谨的科学作风,给我留下了深刻印象,并将使我受益终身。正是由于导师在学习和生活上无微不至的关怀,才使得我的论文得以顺利完成。同时,我还要感谢大学四年来教育过我的所有老师们,你们教给我的不光是专业理论知识,还有对待工作、对待学术的严谨的态度,我在以后的工作生活中会谨记这些教诲。我还要感谢我同组的两个同学,在毕业设计期间,我们互借资料,互相分享每一步的研究结果,不会的问题互相探讨,才是我的设计能够顺利完成。最后,我还要感谢一直在背后默默支持我的家人。
©2010-2024 宁波自信网络信息技术有限公司 版权所有
客服电话:4008-655-100 投诉/维权电话:4009-655-100