课程设计机器视觉报告.docx

上传人:b****5 文档编号:6098014 上传时间:2023-01-03 格式:DOCX 页数:15 大小:379.61KB
下载 相关 举报
课程设计机器视觉报告.docx_第1页
第1页 / 共15页
课程设计机器视觉报告.docx_第2页
第2页 / 共15页
课程设计机器视觉报告.docx_第3页
第3页 / 共15页
课程设计机器视觉报告.docx_第4页
第4页 / 共15页
课程设计机器视觉报告.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

课程设计机器视觉报告.docx

《课程设计机器视觉报告.docx》由会员分享,可在线阅读,更多相关《课程设计机器视觉报告.docx(15页珍藏版)》请在冰豆网上搜索。

课程设计机器视觉报告.docx

课程设计机器视觉报告

摘要

机器视觉系统就是利用机器代替人眼来作各种测量和判断。

它是计算机学科的一个重要分支,它综合了光学、机械、电子、计算机软硬件等方面的技术,涉及到计算机、图像处理、模式识别、人工智能、信号处理、光机电一体化等多个领域。

图像处理和模式识别等技术的快速发展,也大大地推动了机器视觉的发展。

边缘检测是图像处理和计算机视觉中的基本问题,边缘检测的目的是标识数字图像中亮度变化明显的点。

图像属性中的显著变化通常反映了属性的重要事件和变化。

这些包括深度上的不连续、表面方向不连续、物质属性变化和场景照明变化。

边缘检测是图像处理和计算机视觉中,尤其是特征提取中的一个研究领域。

图像边缘是图像最基本的特征之一,往往携带着一幅图像的大部分信息。

而边缘存在于图像的不规则结构和不平稳现象中,也即存在于信号的突变点处,这些点给出了图像轮廓的位置,这些轮廓常常是我们在图像边缘检测时所需要的非常重要的一些特征条件,这就需要我们对一幅图像检测并提取出它的边缘。

本实验对机器视觉系统中的底层技术——边缘检测和轮廓提取算法进行设计和实验。

针对一幅图像,利用边缘检测算子(如Robert算子、Sobel算子、Prewitt算子、Laplace算子、Kirsch算子和Marr算子)检测出图像的边缘,然后采取轮廓提取算法得到封闭的二值图像轮廓。

关键词:

机器视觉、数字图像处理、边缘检测、轮廓提取

 

Abstract

Machinevisionsystemistousemachinesinsteadofhumaneyestomakeallkindsofmeasurementandjudgment.Itisanimportantbranchofcomputerscience,whichcombinesoptical,mechanical,electronic,computersoftwareandhardwaretechnology,involvesthecomputer,imageprocessing,patternrecognition,artificialintelligence,signalprocessing,optic-mechanicalintegration,andotherfields.Therapiddevelopmentofimageprocessingandpatternrecognitiontechniquessuchas,alsogreatlypromotethedevelopmentofmachinevision.

Edgedetectionisthebasicprobleminimageprocessingandcomputervision,edgedetectionistoidentifythepurposeofthedigitalimagebrightnesschangesintheobviouspoints.Significantchangesinimageattributesusuallyreflectthepropertiesoftheimportanteventsandchanges.Theseincludethedepthdirectionofthediscontinuous,surfacediscontinuity,materialpropertiesandsceneilluminationchanges.Edgedetectionisimageprocessingandcomputervision,especiallyaresearchfieldinfeatureextraction.

Imageedgeisoneofthemostbasiccharacteristicsoftheimage,oftencarryinganimagemostoftheinformation.Theimageedgeinirregularstructureandthenotsmoothphenomenon,whichexistsintheabruptchangepointofthesignal,thesepointsaregiventhelocationoftheimagecontour,thecontourisoftenwhatweneedinimageedgedetectionisveryimportanttosomeofthecharacteristicsoftheconditions,thisrequiresustotheedgeofanimagedetectionandextractit.

Theexperimentonthemachinevisionsystem,theunderlyingtechnologyinedgedetectionandcontourextractionalgorithmtocarryonthedesignandexperiment.Foranimage,usingedgedetectionoperator(suchasRobertoperator,Sobeloperator,Prewittoperator,Laplaceoperator,KirschoperatorandMarroperator)todetecttheimageedge,andthentogetclosedcontourextractionalgorithmofbinaryimagecontour.

Keywords:

machinevision,digitalimageprocessing,edgedetectionandcontourextraction

1.概述

1.1机器视觉

机器视觉就是用机器代替人眼来做测量和判断。

机器视觉系统是指通过机器视觉产品(即图像摄取装置,分CMOS和CCD两种)将被摄取目标转换成图像信号,传送给专用的图像处理系统,根据像素分布和亮度、颜色等信息,转变成数字化信号;图像系统对这些信号进行各种运算来抽取目标的特征,进而根据判别的结果来控制现场的设备动作。

1.2数字图像处理

数字图像处理(DigitalImageProcessing)是通过计算机对图像进行去除噪声、增强、复原、分割、提取特征等处理的方法和技术。

数字图像处理的产生和迅速发展主要受三个因素的影响:

一是计算机的发展;二是数学的发展(特别是离散数学理论的创立和完善);三是广泛的农牧业、林业、环境、军事、工业和医学等方面的应用需求的增长。

自从1986年JohnCanny提出了最优边缘检测算子的三条准则并推导出了一个近似实现。

但是在实际中,真正实现这一目标尚有较大的难度。

这是因为:

(1)实际图像一般都含有噪声,并且噪声的分布信息业是未知的,同时噪声和边缘都属于高频信息,在进行滤波的同时,虽然能够在一定程度上抑制噪声,却也丢失了边缘信息。

(2)由于场景、光照条件的边缘等原因,同一场景在不同光照条件下得到的边缘可能也是不同的,设置的阈值也可能是不同的。

针对这些问题,如何进行改进,并得到较理想的边缘检测算子是有必要的。

另一方面,轮廓提取技术是图像分割、目标区域识别区域行状提取等图像分析处理领域十分重要的基础。

寻求非接触、精度高、具有综合分析能力的识别方法来代替人工目测,解决图像表面的模式识别和测量问题,是图像加工行业面临的一大难题,也是值得我们长期探讨的科研课题

1.3MATLAB

MATLAB自产生之日起就具有方便的数据可视化功能,以将向量和矩阵用图形表现出来,并且可以对图形进行标注和打印。

高层次的作图包括二维和三维的可视化、图象处理、动画和表达式作图。

可用于科学计算和工程绘图。

新版本的MATLAB对整个图形处理功能作了很大的改进和完善,使它不仅在一般数据可视化软件都具有的功能(例如二维曲线和三维曲面的绘制和处理等)方面更加完善,而且对于一些其他软件所没有的功能(例如图形的光照处理、色度处理以及四维数据的表现等),MATLAB同样表现了出色的处理能力。

同时对一些特殊的可视化要求,例如图形对话等,MATLAB也有相应的功能函数,保证了用户不同层次的要求。

另外新版本的MATLAB还着重在图形用户界面(GUI)的制作上作了很大的改善,对这方面有特殊要求的用户也可以得到满足。

MATLAB对许多专门的领域都开发了功能强大的模块集和工具箱。

一般来说,它们都是由特定领域的专家开发的,用户可以直接使用工具箱学习、应用和评估不同的方法而不需要自己编写代码。

领域,诸如数据采集、数据库接口、概率统计、样条拟合、优化算法、偏微分方程求解、神经网络、小波分析、信号处理、图像处理、系统辨识、控制系统设计、LMI控制、鲁棒控制、模型预测、模糊逻辑、金融分析、地图工具、非线性控制设计、实时快速原型及半物理仿真、嵌入式系统开发、定点仿真、DSP与通讯、电力系统仿真等,都在工具箱(Toolbox)家族中有了自己的一席之地。

1.4课程设计任务

对机器视觉系统中的底层技术——边缘检测和轮廓提取算法进行设计和实验。

要求:

针对一幅图像,利用边缘检测算子(如Robert算子、Sobel算子、Prewitt算子、Laplace算子、Kirsch算子和Marr算子)检测出图像的边缘,然后采取轮廓提取算法得到封闭的二值图像轮廓。

 

2.边缘检测

2.1边缘检测简介

边缘检测是图像处理和计算机视觉中的基本问题,边缘检测的目的是标识数字图像中亮度变化明显的点。

图像属性中的显著变化通常反映了属性的重要事件和变化。

这些包括深度上的不连续、表面方向不连续、物质属性变化和场景照明变化。

边缘检测是图像处理和计算机视觉中,尤其是特征提取中的一个研究领域。

边缘可能与视角有关——也就是说边缘可能随着视角不同而变化,典型地反映在场景、物体的几何形状一个将另一个遮挡起来,也可能与视角无关——这通常反映被观察物体的属性如表面纹理和表面形状。

在二维乃至更高维空间中,需要考虑透视投影的影响。

2.2检测方法

一般图像边缘检测方法主要有如下四个步骤:

1)图像滤波:

传统边缘检测算法主要是基于图像强度的一阶和二阶导数,但导数的计算对噪声很敏感,因此必须使用滤波器来改善与噪声有关的边缘检测器的性能。

需要指出的是,大多数滤波器在降低噪声的同时也造成了了边缘强度的损失,因此,在增强边缘和降低噪声之间需要一个折中的选择。

2)图像增强:

增强边缘的基础是确定图像各点邻域强度的变化值。

增强算法可以将邻域(或局部)强度值有显著变化的点突显出来。

边缘增强一般是通过计算梯度的幅值来完成的。

3)图像检测:

在图像中有许多点的梯度幅值比较大,而这些点在特定的应用领域中并不都是边缘,所以应该用某种方法来确定哪些点是边缘点。

最简单的边缘检测判断依据是梯度幅值。

4)图像定位:

如果某一应用场合要求确定边缘位置,则边缘的位置可在子像素分辨率上来估计,边缘的方位也可以被估计出来。

2.3边缘检测算子

2.3.1Reborts算子

Reboerts算子是一种利用局部差分来寻找边缘的算子,Roberts梯度算子所采用的是对角方向相邻两像素值之差,算子形式如下:

(2.3.3

(2.3.4

(2.3.5)

Roberts梯度算子对应的卷积模版为:

(2.3.6)

用以上两个卷积算子与图像运算后,可求出图像的梯度幅值G(x,y),然后选择

适当的阈值τ,若G(x,y)>τ,则(i,j)为边缘点,否则,判断(i,j)为非边缘点。

由此得到一个二值图像{g(i,j)},即边缘图像。

Roberts算子采用的是用对角线方向上相邻两像素的差近似梯度幅值来检测边缘,它的定位精度高,对于水平和垂直方向的边缘,检测效果较好,而对于有一定倾角的斜边缘,检测效果则不理想,存在着许多的漏检。

另外,在含噪声的情况下,Roberts算子不能有效的抑制噪声,容易产生一些伪边缘。

因此,该算子适合于对低噪声且具有陡峭边缘的图像提取边缘。

 

2.3.2Sobel算子

Sobel算子在边缘检测算子扩大了其模版,在边缘检测的同时尽量削弱了噪声。

其模版大小为3×3,其将方向差分运算与局部加权平均相结合来提取边缘。

在求取图像梯度之前,先进行加权平均,然后进行微分,加强了对噪声的一致。

Sobel算子所对应的卷积模版为:

(2.3.7)

图像中的每个像素点和以上水平和垂直两个卷积算子做卷积运算后,再计算得到

梯度幅值G(x,y),然后选取适当的阈值τ,若G(x,y)>τ,则(i,j)为边缘点,否则,判断(i,j)为非边缘点。

由此得到一个二值图像{g(i,j)},即边缘图像。

Sobel算子在空间上比较容易实现,不但产生较好的边缘检测效果,同时,由于其引入了局部平均,使其受噪声的影响也较小。

若使用较大的邻域,抗噪性会更好,但也增加了计算量,并且得到的边缘比较粗。

在对精度要求不是很高的场合下,Sobel算子是一种较为常用的边缘检测算法。

2.3.3Prewitt算子

同Sobel算子相似,Prewitt算子也是一种将方向的差分运算和局部平均相结合的方法,也是取水平和垂直两个卷积核来分别对图像中各个像素点做卷积运算,所不同的是,Sobel算子是先做加权平均然后再微分,Prewitt算子是先平均后求微分,其对应的卷积模版为:

(2.3.8)

图像中的每个像素点和以上水平和垂直两个卷积算子做卷积运算后,再计算得到

梯度幅值G(x,y),然后选取适当的阈值τ,若G(x,y)>τ,则(i,j)为边缘点,否则,判断(i,j)为非边缘点。

由此得到一个二值图像{g(i,j)},即边缘图像。

在此基础上,有人提出了改进的Prewitt算子,将其扩展到八个方向,依次用这些边缘模板去检测图像,与被检测区域最为相似的样板给出最大值。

用这个最大值作为算子的输出值P[i,j],这样就可将边缘像素检测出来。

八个方向的Prewitt算子模板及其所对应的边缘方向如下所示:

0°方向45°方向90°方向135°方向

180°方向225°方向270°方向315°方向

Prewitt算子通过对图像上的每个像素点的八方向邻域的灰度加权差之和来进行检测边缘,对噪声有一定抑制作用,抗噪性较好,但由于采用了局部灰度平均,因此容易检测出伪边缘,并且边缘定位精度较低。

 

2.3.4Kirsch算子

Kirsch算子是一种3×3的非线性方向算子。

其基本思想是希望改进取平均值的过程,从而尽量使边缘两侧的像素各自与自己同类的像素取平均值,然后再求平均值之差,来减小由于取平均值所造成的边缘细节丢失。

通常采用八方向Kirsch模板的方法进行检测,取其中最大的值作为边缘强度,而将与之对应的方向作为边缘方向。

常用的八方向Kirsch模板如下所示:

0°方向45°方向90°方向135°方向

180°方向225°方向270°方向315°方向

实际的应用中,通常都是利用简单的卷积核来计算方向差分的,不同的算子对应着不同的卷积核。

它们在图像的像素点上所产生的两个方向的偏导数用均方值或者绝对值求和的形式来近似代替梯度幅值,然后选取一个合适的阈值,用所得到的梯度幅值和所设定的阈值进行比较来判断边缘点。

若大于所取的阈值,则判断为边缘点;否则,判断为非边缘点。

很显然,在提取边缘的过程中,阈值

的选取特别重要,尤其在含噪图像中,阈值的选择要折衷考虑噪声造成的伪边缘和有效边缘的丢失。

2.3.5Laplace算子

拉普拉斯算子是不依赖于边缘方向的二阶导数算子,它是一个标量而不是向

量,具有旋转不变即各向同性的性质。

若只关心边缘点的位置而不需要了解其周围的实际灰度差时,一般选择该算子提取图像的边缘。

Laplace算子的定义为:

(2.3.9)

用差分方程近似二阶偏倒数的结果如下:

(2.3.10)

(2.3.11)

将这两个式子合并,可以得到近似Laplace算子的模版:

(2.3.12)

当Laplace算子输出出现过零点时就表明有边缘存在,其中忽略无意义的过零点(均匀零区)。

原则上,过零点的位置精度可以通过线性内插方法精确到子像素分辨率。

但是拉普拉斯算子在图像边缘检测中并不常用。

主要原因有:

任何包含有二阶导数的算子比只包含有一阶导数的算子更易受噪声的影响,一阶导数很小的局部峰值也能导致二阶导数过零点,所以Laplace算子对噪声具有无法接受的敏感性;Laplace算子的幅值产生双边元,这是复杂的分割不希望有的结果;最后,Laplace算子不能检测边缘的方向。

为了避免噪声的影响,必须采用特别有效的滤波方法。

所以,人们提出了改进的功LOG算子。

2.3.6LOG算子

LOG算子基本思想是:

先在一定的范围内做平滑滤波,然后再利用差分算子来检测在相应尺度上的边缘。

滤波器的选择要考虑以下两个因素:

其一是滤波器在空间上要求平稳,即要求空间位置误差Δx要小;其二是平滑滤波器本身要求是带通滤波器,并且在有限的带通内是平稳的,即要求频域误差Δω要小。

根据信号处理中的测不准原理,Δx和Δω是相互矛盾的,而达到测不准下限的滤波器就是高斯滤波器。

Marr和Hildreth提出的这种差分算子是各向同性的拉普拉斯二阶差分算子。

该边缘检测器的基本特征是:

(1)所用的平滑滤波器是高斯滤波器

(2)增强步骤采用的是二阶导数(即二维拉普拉斯函数)

(3)边缘检测的判据是二阶导数过零点并且对应一阶导数的极大值

该方法的特点是先用高斯滤波器与图像进行卷积,既平滑了图像又降低了噪声,使孤立的噪声点和较小的结构组织被滤除。

然而由于对图像的平滑会导致边缘的延展,因此只考虑那些具有局部梯度极大值的点作为边缘点,这可以用二阶导数的零交叉来实现。

拉普拉斯函数可用作二维二阶导数的近似,因为它是一种标量算子。

为了避免检测出非显著的边缘,所以应该选择一阶导数大于某一阈值的零交叉点来作为边缘点。

实际应用中,常用的LOG算子的模版为:

说明,高斯平滑运算不但可以滤除噪声,还会导致图像中的边缘和其它尖锐不连续部分模糊,而模糊程度取决于空间尺度因子σ的大小。

σ越大,高斯滤波对噪声的滤除效果越好,但同时也会丢失重要的边缘信息,影响到边缘检测器的性能。

如果σ较小,又可能导致平滑作用不完全而留有较多的噪声。

因此在实际应用中,要根据情况选择适当的σ。

2.3.7Canny算子

1986年,Canny从边缘检测算子应该满足的三个准则出发,推导出了最优边缘检测算子Canny算子,该算子是目前理论上相对最完善的一种边缘检测算法。

Canny提出的评价边缘检测性能优劣的三个准则分别是:

(1)好的信噪比准则。

即将非边缘点判为边缘点的概率要低,将边缘点判为非边缘点的概率要低;

(2)好的定位性能准则。

即检测出的边缘点要尽可能在实际边缘的中心;

(3)单边缘响应准则。

即单一边缘具有唯一响应,单一边缘产生的多个响

应的概率要低,并且对虚假边缘的响应应得到最大抑制。

利用Canny算子检测边缘的主体算法如下:

(1)用式所示的高斯函数h(r)对图像进行平滑滤波,去除图像中的噪声。

(2)在每一点计算出局部梯度和边缘方向,可以利用Sobel算子、Roberts算子等来计算。

边缘点定义为梯度方向上其强度局部最大的点。

(3)对梯度进行“非极大值抑制”。

在第二步中确定的边缘点会导致梯度幅度图像中出现脊。

然后用算法追踪所有脊的顶部,并将所有不在脊的顶部的像素设为零,以便在输出中给出一条细线。

(4)双阈值化和边缘连接。

Canny算子是基于最优化思想推导出的边缘检测算子,采用高斯函数对图像作平滑处理,因此具有较强的抑制噪声能力,同样该算子也会将一些高频边缘平滑掉,造成边缘丢失。

Canny算子也存在不足之处,一是为了得到较好的边缘检测结果,它通常需要使用较大的滤波尺度,这样容易丢失一些细节;二是Canny算子的双阈值要人为的选取,不能够自适应。

 

2.4边缘检测仿真结果

图1边缘检测仿真结果

3.轮廓提取

图像的轮廓作为图像的一种基本特征,经常被应用到较高层次的图像应用中去。

它在图像识别,图像分割,图像增强以及图像压缩等的领域有广泛应用,也是图像处理的基础。

图像的轮廓往往携带着一幅图像的大部分信息。

而轮廓即在于图像的不规则结构和不稳定上,也存在于信号的突变点处,这些点给出了图像轮廓的位置,这些轮廓常常是我们在图像边缘检测时所需的非常重要的特征条件,因而这就需要我们对一幅图像检测并提取出它的轮廓。

经典的轮廓提取技术大都基于微分运算。

首先通过平滑来滤除图像中的噪声,然后进行一阶微分或二阶微分运算,求得梯度最大值或二阶导数的过零点,最后选取适当的阈值来提取边界。

3.1基于边缘检测的轮廓提取

源图像经过边缘检测之后不但留下了所需的图像轮廓还残留了许多的细节边缘,轮廓提取只需去除这些细小的边缘即可。

在MATLAB中使用其强大的图形处理函数可达到效果,将CANNY边缘检测后的图形膨胀、填充、查找二值图像边缘等处理后即可得出图形轮廓。

图2canny算子轮廓提取

3.2基于HSV空间H的参数图像的轮廓提取

HSV(Hue,Saturation,Value)是根据颜色的直观特性由A.R.Smith在1978年创建的一种颜色空间,也称六角锥体模型(HexconeModel)。

这个模型中颜色的参数分别是:

色调(H),饱和度(S),亮度(V)。

利用H参数能很有效的将图形与背景区分开来,方便之后的图像处理。

进一步把图像经过二值化、去杂、填充、查找二值图像边缘等处理后即可得出图形轮廓。

图3基于HSV空间H的参数轮廓提取

 

4.实验小结

这次课程设计我通过学习边缘检测、轮廓提取算法的理论知识,我初步的掌握了数字图像处理的原理和基本步骤。

并且通过仿真,使用各种算法实现了边缘检测和轮廓提取算法的设计和实验,结果还是比较理想的。

程序的编写需要有耐心,有些事情看起来很复杂,但问题需要一点一点去解决,分析问题,把问题一个一个划分,划分成小块以后就逐个去解决。

再总体解决大的问题。

这样做起来不仅有条理也使问题得到了轻松的解决。

 

 

参考文献

【1】刘敏魏玲编著.《MATLAB通信仿真与应用》.国防工业出版社.2007.12

【2】詹青龙、卢爱芹、李立宗等.《数字图像处理》.清华大学出版社.2010.6

【3】敬照明主编.《MATLAB教程与应用》.清华大学出版社.2011.05

【4】(美)冈萨雷斯等著.《数字图像处理》.电子工业出版社.2009.12

【5】蒋珉编著.《MATLAB程序设

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 求职职场 > 简历

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1