数字图像课程设计
安徽工程大学课程设计报告课程名称:数字图像处理与分析课程设计题目:基于Matlab的图像边缘提取算法实现及应用姓 名:李晓学 院:电气工程学院专 业:电子信息科学与技术年 级:2010学 号:3100203120目 录一.课程设计目的…………………………………………………3二.提取图像边缘的背景与意义…………………………………3三.设计的主要内容与原理………………………………………43.1 什么是图像边缘……………………………………….43.2 图像边缘提取的基本原理与过程……………………53.3 对边缘检测与提取算法的介绍(以Canny与Log为例)坎尼(Canny)边缘算子…………………………………7 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为例)边缘检测的实质是采用某种算法来提取出图像中对象与背景间的交界线我们将边缘定义为图像中灰度发生急剧变化的区域边界图像灰度的变化情况可以用图像灰度分布的梯度来反映,因此我们可以用局部图像微分技术来获得边缘检测算子经典的边界提取技术大都基于微分运算首先通过平滑来滤除图像中的噪声,然后进行一阶微分或二阶微分运算,求得梯度最大值或二阶导数的过零点,最后选取适当的阈值来提取边界坎尼(Canny)边缘算子 检测阶跃边缘的基本思想是在图像中找出具有局部最大梯度幅值的像素点图像边缘检测必须满足两个条件:一是必须能有效地抑制噪声;二是必须尽量精确确定边缘的位置既要提高边缘检测算子对边缘的敏感性,同时也提高了对噪声的敏感1.Canny边缘检测基本原理:(1)具有既能滤去噪声又保持边缘特性的边缘检测最优滤波器,其采用一阶微分滤波器采用二维高斯函数的任意方向上的一阶方向导数为噪声滤波器,通过与图像卷积进行滤波;然后对滤波后的图像寻找图像梯度的局部最大值,以此来确定图像边缘根据对信噪比与定位乘积进行测度,得到最优化逼近算子。
这就是Canny边缘检测算子2)类似与Marr(LOG)边缘检测方法,也属于先平滑后求导数的方法2.Canny边缘检测算法:step1:用高斯滤波器平滑图象;step2:用一阶偏导的有限差分来计算梯度的幅值和方向;step3:对梯度幅值进行非极大值抑制;step4:用双阈值算法检测和连接边缘其数学描述如下:step1:二维为高斯函数为:= 在某一方向n上是的一阶方向导数为:== n▽n= =式中: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,且2τ1≈τ2,从而可以得到两个阈值边缘图像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算子检测方法的优点:①低误码率,很少把边缘点误认为非边缘点;②高定位精度,即精确地把边缘点定位在灰度变化最大的像素上;③抑制虚假边缘 Log边缘算子现在介绍一种利用图像强度二阶导数的零交叉点来求边缘点的算法对噪声十分敏感,所以在边缘增强前滤除噪声为此,马尔(Marr)和希尔得勒斯(Hildreth)根据人类视觉特性提出了一种边缘检测的方法,该方法将高斯滤波和拉普拉斯检测算子结合在一起进行边缘检测的方法,故称为Log(Laplacian of Gassian )算法也称之为拉普拉斯高斯算法该算法的主要思路和步骤如下:(1)滤波:首先对图像f(x,y)进行平滑滤波,其滤波函数根据人类视觉特性选为高斯函数,即: 其中,G(x,y)是一个圆对称函数,其平滑的作用是可通过来控制的将图像与进行卷积,可以得到一个平滑的图像,即:(2)增强:对平滑图像进行拉普拉斯运算,即:(3)检测:边缘检测判据是二阶导数的零交叉点(即 的点)并对应一阶导数的较大峰值 这种方法的特点是图像首先与高斯滤波器进行卷积,这样既平滑了图像又降低了噪声,孤立的噪声点和较小的结构组织将被滤除。
但是由于平滑会造成图像边缘的延伸,因此边缘检测器只考虑那些具有局部梯度最大值的点为边缘点这一点可以用二阶导数的零交叉点来实现拉普拉斯函数用二维二阶导数的近似,是因为它是一种无方向算子在实际应用中为了避免检测出非显著边缘,应选择一阶导数大于某一阈值的零交叉点作为边缘点由于对平滑图像进行拉普拉斯运算可等效为的拉普拉斯运算与的卷积,故上式变为: = 式中称为LOG滤波器,其为:= + = 这样就有两种方法求图像边缘:①先求图像与高斯滤波器的卷积,再求卷积的拉普拉斯的变换,然后再进行过零判断②求高斯滤波器的拉普拉斯的变换,再求与图像的卷积,然后再进行过零判断这两种方法在数学上是等价的上式就是马尔和希尔得勒斯提出的边缘检测算子(简称M-H算子),由于LOG滤波器在空间中的图形与墨西哥草帽形状相似,所以又称为墨西哥草帽算子拉普拉斯算子对图像中的嗓声相当敏感而且它常产生双像素宽的边缘,也不能提供边缘方向的信息高斯-拉普拉斯算子是效果较好的边沿检测器,常用的5×5模板的高斯--拉普拉斯算子如图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] 冈萨雷斯,《数字图像处理(第二版)》,电子工业出版社,2005年3月[2] 冈萨雷斯,《数字图像处理(MATLAB版)》,电子工业出版社,2005年9月[3] 陈天华,《数字图像处理》,清华大学出版社,2007年6月[4] 阮秋琦,数字图像处理学,电子工业出版社,2001[5] 魏弘博,基于粗糙集的图像增强和边缘检测[6] 郑慕之,MRI二维图像边缘检测及可视化研究,南京航空航天大学,2005[7] 郑翔、黄艺云,Kirsch边缘检测算子的快速算法,通信学报,1996[8] 王娜,李霞.一种新的改进Canny边缘检测算法.深圳大学学报,2005[9] 游素亚、杨静, 图像边缘检测技术的发展与现状,电子科技导报,1995[10] 杜辉强,高光谱遥感影像滤波和边缘提取方法研究,武汉大学,2004[11] K.R.Castleman著,朱志刚等译,数字图像处理,电子工业出版社,2001[12] 章毓晋,图像处理和分析(上、下册),清华大学出版社,2000[13] 王文丽,各种图像边缘提取算法的研究,北京交通大学,硕士学位论文,2010[14]季虎,孙即祥,邵晓芳,毛玲,图像边缘提取方法及展望,国防科技大学电子科学。




