数字图像课程设计.doc_第1页
数字图像课程设计.doc_第2页
数字图像课程设计.doc_第3页
数字图像课程设计.doc_第4页
数字图像课程设计.doc_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

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

文档简介

安徽工程大学数字图像课程设计用纸安徽工程大学课程设计报告课程名称:数字图像处理与分析课程设计题目:基于Matlab的图像边缘提取算法实现及应用姓 名:李晓学 院:电气工程学院专 业:电子信息科学与技术年 级:2010学 号:3100203120目 录一课程设计目的3二提取图像边缘的背景与意义3三设计的主要内容与原理43.1 什么是图像边缘.43.2 图像边缘提取的基本原理与过程53.3 对边缘检测与提取算法的介绍(以Canny与Log为例)3.3.1坎尼(Canny)边缘算子73.3.2 Log边缘算子10四边缘提取算法的实现11五 对算子的稳定性的探讨13六 结束语17致谢.18参考文献.18一课程设计目的图像的边缘作为图像的一种基本特征,经常被应用到较高层次的图像应用中去。它在图像识别,图像分割,图像增强以及图像压缩等的领域中有较为广泛的应用,也是它们的基础。图像边缘是图像最基本的特征之一,往往携带着一幅图像的大部分信息。而边缘存在于图像的不规则结构和不平稳现象中,也即存在于信号的突变点处,这些点给出了图像轮廓的位置,这些轮廓常常是我们在图像边缘检测时所需要的非常重要的一些特征条件,这就需要我们对一幅图像检测并提取出它的边缘。而边缘检测算法则是图像边缘检测问题中经典技术难题之一,本文主要介绍两种经典的边缘提取算法,这两种都是用MATLAB语言编程实现,对提取结果进行比较和分析。二提取图像边缘的背景与意义数字图像边缘检测技术起源于20世纪20年代,当时受条件的限制一直没有取得较大进展,直到20世纪60年代后期电子技术、计算机技术有了相当的发展,数字图像边缘检测处理技术才开始进入了高速发展时期。经过几十年的发展,数字图像边缘检测处理技术目前己经广泛应用于工业、微生物领域、医学、航空航天以及国防等许多重要领域,多年来一直得到世界各科技强国的广泛关注。数字图像边缘检测处理技术在最近的10年发展尤为迅速,每年均有数以百计的新算法诞生,其中包括canny算法、小波变换等多种有相当影响的算法,这些算法在设计时大量运用数学、数字信号处理、信息论以及色度学的有关知识,而且不少新算法还充分吸取了神经网络、遗传算法、人工智能以及模糊逻辑等相关理论的一些思想,开阔了进行数字图像边缘检测处理的设计思路。现代数字图像边缘检测处理的目标有三:可视化、自动化和定量化:(1)可视化:当图像被采集并显示时,这些图像通常需要改善以便观察者更容易解释它们。感兴趣的目标必须突出或者图像各部位之间的对比度需要增强处理。自从像CT和MRI等三维成像手段问世以来,可视化,特别是三维结构的可视化受到极大的关注。(2)自动化:旨在使一些日常的或繁琐的工作自动化。例如,根据一个染色体分布的显微图像自动确定染色体核型的系统,从一个血液涂片自动生成白细胞分类计数报告的系统。这些应用的特征是要求最小的人工干预,全自动完成分析工作。关于白细胞分类计数应用,市售系统是在1970年开发成功的。但今天这项任务是以完全不同方式(采用流式白细胞计数技术)自动完成。(3)定量化:有关定量化的图像边缘检测的例子有:测量动脉狭窄的程序以及用电子显微镜观察组织切片中特殊成分的定位和定量(如血色素沉着症中的铁元素)。在这些应用中,人工介入是允许的,因为处理时间的长短在这些应用中并不是主要矛盾。数字图像边缘检测处理,即用计算机对图像的边缘进行处理,这一技术是随着计算机技术发展而开拓出来的一个新的应用领域,汇聚了光学、电子学、数学、摄影技术、计算机技术等学科的众多方面。图像边缘检测处理作为一门学科已经被美国数学学会列为应用数学的一个研究分支。在其短暂的发展历史中,已经被成功的应用在几乎所有与成像有关的领域。近年来,图像分析和处理紧紧围绕理论、实现、应用三方面迅速发展起来。它以众多的学科领域为理论基础,其成果又渗透到众多的学科中,成为理论实践并重,在高新技术领域中占有重要地位的新兴学科分支。三设计的主要内容与原理3.1 什么是图像边缘所谓图像边缘(Edlge)是指图像局部特性的不连续性,例如,灰度级的突变,颜色的突变,纹理结构的突变等。边缘广泛存在于目标与目标、物体与背景、区域与区域(含不同色彩)之间,它是图像分割所依赖的重要特征。本为主要讨论几种典型的图像灰度值突变的边缘检测方法,其原理也是用于其他特性突变的边缘检测。图像的边线通常与图像灰度的一阶导数的不连续性有关。图像灰度的不连续性可分为两类:阶跃不连续,即图像灰度再不连续出的两边的像素的灰度只有明显的差异,如图1.1所示,线条不连续,即图像灰度突然从一个值变化到另一个值,保持一个较小的行程又返回到原来的值。在实际中,阶跃和线条边缘图像是较少见的,由于空间分辨率(尺度空间)、图像传感器等原因会使阶跃边缘变成斜坡形边缘,线条边缘变成房顶形边缘。它们的灰度变化不是瞬间的而是跨越一定距离的。 阶跃型 房顶型 突圆型 图1.1 边缘灰度变化 在讨论边缘检测方法之前,首先介绍一些术语的定义。(1) 边缘点:图像中灰度显著变化的点。(2) 边缘段:边缘点坐标及方向的总和,边缘的方向可以是梯度角。(3) 轮廓:边缘列表,或者是一条边缘列表的曲线模型。(4) 边缘检测器:从图像抽取边缘(边缘点或边线段)集合的算法。(5) 边缘连接:从无序边缘形成有序边缘表的过程。(6) 边缘跟踪:一个用来确定轮廓图像(指滤波后的图像)的搜索过程。在实际中边缘点和边缘段都称为边缘。3.2 图像边缘提取的基本原理与过程边缘是图像最基本的特征,所谓边缘就是指周围灰度强度有反差变化的那些像素的集合,是图像分割所依赖的重要基础,也是纹理分析和图像识别的重要基础。理想的边缘检测应当正确解决边缘的有无、真假、和定向定位,长期以来,人们一直关心这一问题的研究,除了常用的局部算子及以后在此基础上发展起来的种种改进方法外,又提出了许多新的技术。要做好边缘检测初步准备条件如下:第一,清楚待检测的图像特性变化的形式,从而使用适应这种变化的检测方法。第二,要知道特性变化总是发生在一定的空间范围内,不能期望用一种检测算子就能最佳检测出发生在图像上的所有特性变化。当需要提取多空间范围内的变化特性时,要考虑多算子的综合应用。第三,要考虑噪声的影响,其中一个办法就是滤除噪声,这有一定的局限性;再就是考虑信号加噪声的条件检测,利用统计信号分析,或通过对图像区域的建模,而进一步使检测参数化。第四,可以考虑各种方法的组合,如先找出边缘,然后在其局部利用函数近似,通过内插等获得高精度定位。第五,在正确检测边缘的基础上,要考虑精确定位的问题。经典的边缘检测方法得到的往往是断续的、不完整的结构信息,噪声也较为敏感,为了有效抑制噪声,一般都首先对原图像进行平滑,再进行边缘检测就能成功地检测到真正的边缘。从人的直观感受来说,边缘对应于物体的几何边界。图像上灰度变化剧烈的区域比较符合这个要求,我们一般会以这个特征来提取图像的边缘。但在遇到包含纹理的图像上,这有点问题,比如说,图像中的人穿了黑白格子的衣服,我们往往不希望提取出来的边缘包括衣服上的方格。这就又涉及到纹理图像的处理等方法。但一般认为边缘提取是要保留图像的灰度变化剧烈的区域,这从数学上,最直观的方法就是微分(对于数字图像来说就是差分),在信号处理的角度来看,也可以说是用高通滤波器,即保留高频信号。用于图像识别的边缘提取往往需要输出的边缘是二值图像,即只有黑白两个灰度的图像,其中一个灰度代表边缘,另一个代表背景。此外,还需要把边缘细化成只有一个像素的宽度。图像边缘检测的基本步骤:(1)滤波。边缘检测主要基于导数计算,但受噪声影响。但滤波器在降低噪声的同时也导致边缘强度的损失。(2)增强。增强算法将邻域中灰度有显著变化的点突出显示。一般通过计算梯度幅值完成。(3)检测。但在有些图像中梯度幅值较大的并不是边缘点。最简单的边缘检测是梯度幅值阈值判定。(4)定位。精确确定边缘的位置。总的说来传统边缘检测的流程图如下:原始图像 平滑图像平滑图像得出边缘的二值化图像既检出边缘点阈值分割梯度算子边缘增强边缘检测边缘定位图像滤波图2.2 边缘检测的流程图特征提取作为图像边缘检测的一个重要内容,发展了众多的方法。这些方法经过实践的检验,成为了经典的内容。经典的边缘检测算子包括:Roberts算子,Prewitt算子,Sobel算子,Log (Laplacian of Gaussian)算子等。这些经典的边缘提取算子在使用时都是使用预定义好的边缘模型去匹配。3.3 对边缘检测与提取算法的介绍(以Canny与Log为例)边缘检测的实质是采用某种算法来提取出图像中对象与背景间的交界线。我们将边缘定义为图像中灰度发生急剧变化的区域边界。图像灰度的变化情况可以用图像灰度分布的梯度来反映,因此我们可以用局部图像微分技术来获得边缘检测算子。经典的边界提取技术大都基于微分运算。首先通过平滑来滤除图像中的噪声,然后进行一阶微分或二阶微分运算,求得梯度最大值或二阶导数的过零点,最后选取适当的阈值来提取边界。3.3.1坎尼(Canny)边缘算子 检测阶跃边缘的基本思想是在图像中找出具有局部最大梯度幅值的像素点。图像边缘检测必须满足两个条件:一是必须能有效地抑制噪声;二是必须尽量精确确定边缘的位置。既要提高边缘检测算子对边缘的敏感性,同时也提高了对噪声的敏感。1.Canny边缘检测基本原理:(1)具有既能滤去噪声又保持边缘特性的边缘检测最优滤波器,其采用一阶微分滤波器。采用二维高斯函数的任意方向上的一阶方向导数为噪声滤波器,通过与图像卷积进行滤波;然后对滤波后的图像寻找图像梯度的局部最大值,以此来确定图像边缘。根据对信噪比与定位乘积进行测度,得到最优化逼近算子。这就是Canny边缘检测算子。(2)类似与Marr(LOG)边缘检测方法,也属于先平滑后求导数的方法。2.Canny边缘检测算法:step1:用高斯滤波器平滑图象;step2:用一阶偏导的有限差分来计算梯度的幅值和方向;step3:对梯度幅值进行非极大值抑制;step4:用双阈值算法检测和连接边缘。其数学描述如下:step1:二维为高斯函数为:= 在某一方向n上是的一阶方向导数为:= nn= =式中:n式方向矢量,是梯度矢量。将图像与作卷积,同时改变n的方向,*取得最大值时的n就是正交于检测边缘的方向。step2: = , =*= 反映了图像(x,y)点处的边缘强度,是图像(x,y)点处的法向矢量。step3:仅仅得到全局的梯度并不足以确定边缘,因此为确定边缘,必须保留局部梯度最大的点,而抑制非极大值。(non-MaxiMa suppression,NMS)解决方法:利用梯度的方向。图示-非极大值抑制四个扇区的标号为0到3,对应3*3邻域的四种可能组合。在每一点上,邻域的中心像素M与沿着梯度线的两个像素相比。如果M的梯度值不比沿梯度线的两个相邻像素梯度值大,则令M=0。step4:减少假边缘段数量的典型方法是对G(x,y)使用一个阈值。将低于阈值的所有值赋零值。但问题是如何选取阈值?解决方法:双阈值算法进行边缘判别和连接边缘。首先是边缘判别: 凡是边缘强度大于高阈值的一定是边缘点;凡是边缘强度小于低阈值的一定不是边缘点;如果边缘强度大于低阈值又小于高阈值,则看这个像素的邻接像素中有没有超过高阈值的边缘点,如果有,它就是边缘点,如果没有,它就不是边缘点。其次是连接边缘: 双阈值算法对非极大值抑制图像作用两个阈值1和2,且212,从而可以得到两个阈值边缘图像G1(x,y)和G2(x,y)。由于G2(x,y)使用高阈值得到,因而含有很少的假边缘,但有间断(不闭合)。双阈值法要在G2(x,y)中把边缘连接成轮廓,当到达轮廓的端点时,该算法就在G1(x,y)的8邻点位置寻找可以连接到轮廓上的边缘,这样,算法不断地在G1(x,y)中收集边缘,直到将G1(x,y)连接起来为止。实际上,还有多种边缘点判别方法,如:将边缘的梯度分为四种:水平、竖直、45度方向、135度方向。各个方向用不同的邻接像素进行比较,以决定局部极大值。若某个像素的灰度值与其梯度方向上前后两个像素的灰度值相比并不是最大的,那么将该像素置为零,即不是边缘。此外,在实际应用中,检测效果还与滤波模板大小有关,当时有较好的检测效果。Canny算子检测方法的优点:低误码率,很少把边缘点误认为非边缘点;高定位精度,即精确地把边缘点定位在灰度变化最大的像素上;抑制虚假边缘。3.3.2 Log边缘算子现在介绍一种利用图像强度二阶导数的零交叉点来求边缘点的算法对噪声十分敏感,所以在边缘增强前滤除噪声。为此,马尔(Marr)和希尔得勒斯(Hildreth)根据人类视觉特性提出了一种边缘检测的方法,该方法将高斯滤波和拉普拉斯检测算子结合在一起进行边缘检测的方法,故称为Log(Laplacian of Gassian )算法。也称之为拉普拉斯高斯算法。该算法的主要思路和步骤如下:(1)滤波:首先对图像f(x,y)进行平滑滤波,其滤波函数根据人类视觉特性选为高斯函数,即: 其中,G(x,y)是一个圆对称函数,其平滑的作用是可通过来控制的。将图像与进行卷积,可以得到一个平滑的图像,即:(2)增强:对平滑图像进行拉普拉斯运算,即:(3)检测:边缘检测判据是二阶导数的零交叉点(即 的点)并对应一阶导数的较大峰值。 这种方法的特点是图像首先与高斯滤波器进行卷积,这样既平滑了图像又降低了噪声,孤立的噪声点和较小的结构组织将被滤除。但是由于平滑会造成图像边缘的延伸,因此边缘检测器只考虑那些具有局部梯度最大值的点为边缘点。这一点可以用二阶导数的零交叉点来实现。拉普拉斯函数用二维二阶导数的近似,是因为它是一种无方向算子。在实际应用中为了避免检测出非显著边缘,应选择一阶导数大于某一阈值的零交叉点作为边缘点。由于对平滑图像进行拉普拉斯运算可等效为的拉普拉斯运算与的卷积,故上式变为: = 式中称为LOG滤波器,其为:= + = 这样就有两种方法求图像边缘:先求图像与高斯滤波器的卷积,再求卷积的拉普拉斯的变换,然后再进行过零判断。求高斯滤波器的拉普拉斯的变换,再求与图像的卷积,然后再进行过零判断。这两种方法在数学上是等价的。上式就是马尔和希尔得勒斯提出的边缘检测算子(简称M-H算子),由于LOG滤波器在空间中的图形与墨西哥草帽形状相似,所以又称为墨西哥草帽算子。拉普拉斯算子对图像中的嗓声相当敏感。而且它常产生双像素宽的边缘,也不能提供边缘方向的信息。高斯-拉普拉斯算子是效果较好的边沿检测器,常用的55模板的高斯-拉普拉斯算子如图2.7所示:00-100-1-20-1-216-10-1-2000-10-2-4-4-2-408-4-482-4-408-4-2-4-4-2图2.7 高斯拉普拉斯算子高斯-拉普拉斯算子把高斯平滑滤波器和拉普拉斯锐化滤波器结合起来,先平化掉噪声,再进行边缘检测,所以效果更好。四边缘提取算法的实现f = imread(lixiao.bmp); %读入图像f = rgb2gray(f); %将彩色图像转换为灰度图像f = im2double(f); %转换为双精度,便于后面的计算subplot(231), imshow(f), title(Original Image);PF = edge(f,prewitt); %边缘探测,算子为prewittsubplot(232), imshow(PF), title(Prewitt Filter);RF = edge(f,roberts); %边缘探测,算子为robertssubplot(233), imshow(RF), title(Roberts Filter);LF = edge(f,log); %边缘探测,算子为logsubplot(234), imshow(LF), title(Laplacian of Gaussian of Gaussian (LoG) Filter);CF = edge(f,canny); %边缘探测,算子为cannysubplot(235), imshow(CF), title(Canny Filter);MF = edge(f,sobel); %边缘探测,算子为sobelsubplot(236), imshow(MF), title(Sobel Filter);图1 原图像图2 原图与各算子的边缘检测图像通过仔细的对比我们可以发现Log和Canny算子生成的边缘线较多,图像较为复杂,而Prewitt,Sobel和Roberts算子生成的边缘线较少,图像较为简单。事实上,在工程中所需要处理的图像没有想象中的那么好,总是受到某些因素的影响。如光照、温度等等因素,所以,仅看一个算子的定位性的好坏是不够的。下面介绍下各算子的稳定性。五 对算子的稳定性的探讨由于在工程应用中,所获取的图片总是会受到环境因素的影响。在这一节中将详细的分析各算子的稳定性。由于篇幅限制,只在图片中加入了椒盐噪声。为了能够更好地看出这些算子的稳定性,特将未加入噪声的图片的边缘处理和加入噪声的边缘处理图片放在一个界面上。代码如下:f = imread(lixiao.bmp); %读入图像p = imnoise(f,salt & pepper,0.02);%加入噪声密度D为0.02的椒盐噪声f = rgb2gray(f); %将彩色图像转换为灰度图像f = im2double(f); %转换为双精度,便于后面的计算subplot(1,2,1) , imshow(f); %显示原始图像title(Original Filter); %设置图像标题p = rgb2gray(p); %将彩色图像转换为灰度图像p = im2double(p); %转换为双精度,便于后面的计算subplot(1,2,2) , imshow(p); %显示处理后的图像title(Nose Filter); %设置图像标题运行后便得到图3:图 3 原图与加入椒盐噪声后的图像f = imread(D:SYSTEM桌面新建文件夹30.jpg); %读入图像p = imnoise(f,salt & pepper,0.02); %加入噪声密度D为0.02的椒盐噪声f = rgb2gray(f); %将彩色图像转换为灰度图像f = im2double(f); %转换为双精度,便于后面的计算PP = edge(f, prewitt); %边缘探测,算子为prewittsubplot(1,2,1) , imshow(PP); %显示原始图像title(Prewitt Filter); %设置图像标题p = rgb2gray(p); %将彩色图像转换为灰度图像p = im2double(p); %转换为双精度,便于后面的计算PF = edge(p, prewitt); %边缘探测,算子为prewittsubplot(1,2,2) , imshow(PF); %显示处理后的图title(Prewitt Filter); %设置图像标题运行结果如图4所示:图 4 Prewitt算子边缘检测原图与加噪图将上述程序中的PP=edge(f,prewitt)改为PP=edge(f,sobel),并将标题做相应的调整即可实现Sobel算子。保存并运行即可得到图5所示的效果: 图 5 Sobel算子边缘检测原图与加噪图将上述程序中的PP=edge(f,prewitt)改为PP=edge(f,roberts),并将标题做相应的调整即可实现Robert算子。保存并运行即可得到图6:图 6 Roberts算子边缘检测原图与加噪图将上述程序中的PP=edge(f,prewitt)改为PP=edge(f,log),并将标题做相应的调整即可实现LOG算子。保存并运行即可得到图7:图 7 Log算子边缘检测原图与加噪图将上述程序中的PP=edge(f,prewitt)改为PP=edge(f,canny),并将标题做相应的调整即可实现Canny算子。保存并运行即可得到图8:图 8 Canny算子边缘检测原图与加噪图通过对以这五幅图片的仔细比较发现,加入了噪声之后,各种算子边缘检测的结果都受到了影响,其中,Roberts算子受噪声影响最为明显,Sobel算子和Prewitt算子对噪声具有较好的平滑作用,Canny和Log仍然能很准确的将原图像的边缘检测出来。六 结束语数着计算机视觉和图像边缘检测技术地发展,迫切需要视觉早期阶段的突破即边缘检测技术的突破,努力寻求算法较简单、能较好解决边缘测精度与抗噪声性能协调问题的边缘检测算法。相对于以上所说的种种经典的边缘检测方法,许多学者基于对理想边缘检测的分析和对边缘特性某一方面的改进,提出了很多卓有成效的新的边缘检测方法,取得了较好的效果。数字图像的边缘提取技术未来的发展空间还很广阔,应该继续努力寻求适应性更广、局限性更小的方法。在程序的编译过程中,产生了找不到工具箱函数、句法错误等错误,经仔细检查和运行,才顺利通过。调试运行过程不顺利,对MATLAB语言仍旧不够精通。上面所述几种方法存在有边缘像素单元宽、噪声干扰较严重等缺点,即使采用一些辅助的方法去噪,也相应的会带来边缘模糊等难以克服的缺陷。经典的边缘检测方法由于引入了各种形式的微分运算,从而必然引起对噪声的极度敏感,执行边缘检测的结果常常是把噪声当作边缘点检测出来,而真正的边缘也由于受到噪声干扰而没有检测出来。因而对于有噪声图像来说,一种好的边缘检测方法应该具有良好的噪声抑制能力,同时又有完备的边缘保持特性,而这些优点正式Canny算子所具备的。边缘检测作为数字图像分割的一个重要内容一直是人们研究的热点。在实际应用中有许多成功的例子,已将一些专用领域的成熟算法嵌入单片机,制成便携式设备,如

温馨提示

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

评论

0/150

提交评论