数字图像课设边缘检测_第1页
数字图像课设边缘检测_第2页
数字图像课设边缘检测_第3页
数字图像课设边缘检测_第4页
数字图像课设边缘检测_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

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

文档简介

1、燕山大学课程设计说明书目录摘要.2第一章、概述.31.1 课题概述.31.2课题目的.31.3课题意义.4第二章 、边缘检测.42.1 边缘检测算法.42.2 边缘检测步骤.4第三章、经典边缘检测算法分析.53.1 Roberts算子.53.2 Sobel边缘算子和Prewitt边缘算子.63.3 Canny边缘检测. .7第四章、边缘检测算法调试与实现.8 4.1 程序编写与调试.8 4.2 运行结果演示.12第5章 、各种算子处理噪声试验比较.14第6章 、总结与体会.16参考文献.16摘要图像处理就是对图像信息加工以满足人的视觉心理或应用需求的方法。图像处理方法有光学方法和电子学方法。从

2、20世纪60年代起随着电子计算机和计算技术的不断提高和普及,数字图像处理进入了高速发展时期,而数字图像处理就是利用数字计算机或其它的硬件设备对图像信息转换而得到的电信号进行某些数学处理以提高图像的实用性。图像处理在遥感技术,医学领域,安全领域,工业生产中有着广泛的应用,其中在医学应用中的超声、核磁共振和CT等技术,安全领域的模式识别技术,工业中的无损检测技术尤其引人注目。 边缘检测是数字图像处理中的一项重要内容。本文对图像边缘检测的几种经典算法(Roberts算子、Sobel算子、Prewitt算子、Canny算子)进行了分析和比较,并用matlab实现这几个算法。最后通过实例图像对不同边缘检

3、测算法的效果进行分析,比较了不同算法的特点和适用范围。关键词:图像处理;边缘检测;Roberts算子;Sobel算子;Prewitt 算子;canny算子; 第一章 课题概述1.1课题概述计算机进行图像处理一般有两个目的:(1)产生更适合人观察和识别的图像。(2)希望能由计算机自动识别和理解图像。数字图像的边缘检测是图像分割、目标区域的识别、区域形状提取等图像分析领域的重要基础,图像处理和分析的第一步往往就是边缘检测。物体的边缘是以图像的局部特征不连续的形式出现的,也就是指图像局部亮度变化最显著的部分,例如灰度值的突变、颜色的突变、纹理结构的突变等,同时物体的边缘也是不同区域的分界处。图像边缘

4、有方向和幅度两个特性,通常沿边缘的走向灰度变化平缓,垂直于边缘走向的像素灰度变化剧烈。根据灰度变化的特点,图像边缘可分为阶跃型、房顶型和凸缘型。边缘是图像上灰度变化最剧烈的地方,传统的边缘检测就是利用了这个特点,对图像各个像素点进行微分或求二阶微分来确定边缘像素点。一阶微分图像的峰值处对应着图像的边缘点;二阶微分图像的过零点处对应着图像的边缘点。根据数字图像的特点,处理图像过程中常采用差分来代替导数运算,对于图像的简单一阶导数运算,由于具有固定的方向性,只能检测特定方向的边缘,所以不具有普遍性。为了克服一阶导数的缺点,我们定义图像的梯度为梯度算子,它是图像处理中最常用的一阶微分算法。图像梯度的

5、最重要性质是梯度的方向是在图像灰度最大变化率上,它恰好可以反映出图像边缘上的灰度变化。12 课题目的本课题的目的是从理论上对几种经典的边缘检测算法(Roberts算子、Sobel算子、Prewitt算子、Krisch算子、高斯-拉普拉斯算子)进行分析,并用VC+实现这些算法。最后,通过实例图像对不同边缘检测算法的效果进行分析,找出各种算法的适用范围。通过本课题的研究可以为以后进一步学习数字图像处理打好基础,提高学生的独立工作能力和编程能力。13 课题意义数字图像的边缘检测是图像分割、目标区域的识别、区域形状提取等图像分析领域十分重要的基础,是图像识别中提取图像特征的一个重要属性。图像理解和分析

6、的第一步往往就是边缘检测。目前它已成为机器视觉研究领域最活跃的课题之一,在工程应用中占有十分重要的地位。第二章 边缘检测边缘检测是图像特征提取的重要技术之一, 边缘常常意味着一个区域的终结和另一个区域的开始. 图像的边缘包含了物体形状的重要信息,它不仅在分析图像时大幅度地减少了要处理的信息量,而且还保护了目标的边界结构. 因此,边缘检测可以看做是处理许多复杂问题的关键.2.1边缘检测算法对于边缘的检测常常借助于空域微分算子进行,通过将其模板与图像卷积完成. 两个具有不同灰度值的相邻区域之间总存在灰度边缘. 灰度边缘是灰度值不连续(或突变) 的结果,这种不连续常可利用求一阶和二阶导数方便地检测到

7、. 已有的局部技术边缘检测方法,主要有一次微分(Sobel 算子、Robert s 算子等) 、二次微分(拉普拉斯算子等). 这些边缘检测器对边缘灰度值过渡比较尖锐且噪声较小等不太复杂的图像,大多数提取算法均可以取得较好的效果 . 但对于边缘复杂、采光不均匀的图像来说,则效果不太理想. 主要表现为边缘模糊、边缘非单像素宽、弱边缘丢失和整体边缘的不连续等方面.用算子检测图像边缘的方法是用小区域模板对图像进行处理,即采用卷积核作为掩模模板在图像中依次移动,完成图像中每个像素点同模板的卷积运算,最终输出的边缘幅度结果可以检测出图像的边缘. 卷积运算是一种邻域运算. 图像处理认为:某一点像素的结果不但

8、和本像素灰度有关,而且和其邻域点值有关. 运用模板在图像上依此对每一个像素进行卷积, 即模板上每一个点的值与其在图像上当前位置对应的像素点值相乘后再相加,得出的值就是该点处理后的新值.2.2边缘检测算法有如下四个步骤:滤波:边缘检测算法主要是基于图像强度的一阶和二阶导数,但导数的计算对噪声很敏感,因此必须使用滤波器来改善与噪声有关的边缘检测器的性能需要指出,大多数滤波器在降低噪声的同时也导致了边缘强度的损失,因此,增强边缘和降低噪声之间需要折衷增强:增强边缘的基础是确定图像各点邻域强度的变化值增强算法可以将邻域(或局部)强度值有显著变化的点突显出来边缘增强一般是通过计算梯度幅值来完成的检测:在

9、图像中有许多点的梯度幅值比较大,而这些点在特定的应用领域中并不都是边缘,所以应该用某种方法来确定哪些点是边缘点最简单的边缘检测判据是梯度幅值阈值判据定位:如果某一应用场合要求确定边缘位置,则边缘的位置可在子像素分辨率上来估计,边缘的方位也可以被估计出来 在边缘检测算法中,前三个步骤用得十分普遍。这是因为大多数场合下,仅仅需要边缘检测器指出边缘出现在图像某一像素点的附近,而没有必要指出边缘的精确位置或方向边缘检测误差通常是指边缘误分类误差,即把假边缘判别成边缘而保留,而把真边缘判别成假边缘而去掉边缘估计误差是用概率统计模型来描述边缘的位置和方向误差的我们将边缘检测误差和边缘估计误差区分开,是因为

10、它们的计算方法完全不同,其误差模型也完全不同第三章 经典边缘检测算法分析3.1Roberts算子 边缘,是指周围像素灰度有阶跃变化或屋顶等变化的那些像素的集合。图像的边缘对应着图像灰度的不连续性。显然图像的边缘很少是从一个灰度跳到另一个灰度这样的理想状况。真实图像的边缘通常都具有有限的宽度呈现出陡峭的斜坡状。 边缘的锐利程度由图像灰度的梯度决定。梯度是一个向量,f指出灰度变化最快的方向和变化量。 (2.1.1) (2.1.2) (2.1.3)梯度大小由确定。而梯度方向则由确定,因此最简单的边缘检测算子是用图像的垂直和水平差分来逼近梯度算子: (2.1.4)因此当我们寻找边缘的时候,最简单的方法

11、是对每一个像素计算出(2.1.4)的向量,然后求出它的绝对值。利用这种思想就得到了Roberts算子: (2.1.5)其中f(x,y)是具有整数像素坐标的输入图像。3.2 Sobel边缘算子和Prewitt边缘算子 Roberts算子是直观的也是简单的,但是对噪声多的情况显然效果不好。实践中人们做了大量的实践,总结出了一些经验。 Prewitt和Sobel分别提出了一个算子,这就是Prewitt算子和Sobel算子。 Prewitt边缘检测算子使用两个有向算子(一个水平的,一个是垂直的,一般称为模板),每一个逼近一个偏导数: (Prewitt模板)如果我们用Prewitt算子检测图像 M 的边

12、缘的话,我们可以先分别用水平算子和垂直算子对图像进行卷积,得到的是两个矩阵,在不考虑边界的情形下也是和原图像同样大小的 M1,M2,他们分别表示图像M中相同位置处的两个偏导数。然后把M1,M2 对应位置的两个数平方后相加得到一个新的矩阵G,G表示M中各个像素的灰度的梯度值(一个逼近)。然后就可以通过阀值处理得到边缘图像。Sobel算子和Prewitt算子的不同就在于使用的模板不一样: (Sobel模板)这些模板是怎么来的呢? 我们假设图像的灰度满足下面这个关系: (2.5)则梯度是(,) 。 显然,当前像素 33 邻域内像素值为: (2.6)定义垂直算子和水平算子形如: (2.7)利用这两个模

13、板对当前像素进行卷积,得到的方向导数为 : (2.8)因此当前像素处的梯度的大小为 : (2.9)显然要有: 2(2a+b)=1 (2.10) 如果我们取 a=b=1/6则得到的模板就是1/6乘Prewitt算子; 如果我们取a=1/8,b=1/4则得到的就是1/8乘Sobel算子。 3.3Canny边缘检测检测阶跃边缘的基本思想是在图像中找出具有局部最大梯度幅值的像素点检测阶跃边缘的大部分工作集中在寻找 Canny边缘检测器是高斯函数的一阶导数,是对信噪比与定位之乘积的最优化逼近算子Canny 1986我们将通过下面的符号对Canny边缘检测器算法作一概括说明用表示图像使用可分离滤波方法求图

14、像与高斯平滑滤波器卷积,得到的结果是一个已平滑数据阵列 , 其中是高斯函数的散布参数,它控制着平滑程度 已平滑数据阵列的梯度可以使用一阶有限差分近似来计算与偏导数的两个阵列与: (115)在这个正方形内求有限差分的均值,以便在图像中的同一点计算x和y的偏导数梯度幅值和方位角可用直角坐标到极坐标的坐标转化公式来计算: (116) (139) 其中,反正切函数包含了两个参量,它表示一个角度,其取值范围是整个圆周范围内为高效率地计算这些函数,尽量不用浮点运算梯度的幅度和方向也可以通过查找表由偏导数计算第四章 边缘检测算法的调试与实现4.1程序编写与调试 用算子处理可以分为四步:首先设计高斯平滑滤波模

15、板;其次读入图片并进行高斯滤波;第三用sobel算子对图像进行处理;最后进行阈值分割细化图像。第一种方法:设计程序如下clcclose allclear all%生成高斯平滑滤波模板%hg=zeros(3,3); %设定高斯平滑滤波模板的大小为3*3delta=0.5;for x=1:1:3 for y=1:1:3 u=x-2; v=y-2; hg(x,y)=exp(-(u2+v2)/(2*pi*delta2);hg=double(hg); endendh=hg/sum(hg(:);%读入图像%g = imread(121.jpg); % 读入图像文件f=rgb2gray(im2double(

16、g);subplot(2,2,1),imshow(f)title(原始图像);m,n=size(f);ftemp=zeros(m,n);rowhigh=m-1;colhigh=n-1;%高斯滤波%for x=2:1:rowhigh-1 for y=2:1:colhigh-1 mod=f(x-1,y-1) f(x-1,y) f(x-1,y+1); f(x,y-1) f(x,y) f(x,y+1);f(x+1,y-1) f(x+1,y) f(x+1,y+1);mod=double(mod); A=h.*mod; ftemp(x,y)=sum(A(:); endendf=ftempsubplot(2

17、,2,2),imshow(f)title(高斯滤波器后的图像); %利用第一种算法进行边缘检测%3*3的prewitt算子%sx=-1 0 1;-1 0 1;-1 0 1;sy=-1 -1 -1;0 0 0;1 1 1;for x=2:1:rowhigh-1 for y=2:1:colhigh-1 mod=f(x-1,y-1) f(x-1,y) f(x-1,y+1); f(x,y-1) f(x,y) f(x,y+1);f(x+1,y-1) f(x+1,y) f(x+1,y+1);mod=double(mod); fsx=sx.*mod; fsy=sy.*mod;sx=double(sx);sy

18、=double(sy); ftemp(x,y)=sqrt(sum(fsx(:)2+(sum(fsy(:)2); endendfs=im2uint8(ftemp);subplot(2,2,3),imshow(fs)title(用prewitt检测的原始图像);%域值分割%TH2=90; %设定阈值for x=2:1:rowhigh-1 for y=2:1:colhigh-1 if (fs(x,y)=TH2)&(fs(x,y-1) fs(x,y+1) ) fs(x,y)=200; elseif(fs(x,y)=TH2)&( (fs(x-1,y) fs(x+1,y) fs(x,y)=200; els

19、e fs(x,y)=50; end endendsubplot(2,2,4),imshow(fs)title(用prewitt检测并细化后的图像);4.2运行结果与演示 prewitt对滤波后的图像处理结果:第一种方法第二种方法程序基本与第一种方法相同,只是在sobel算子处理图像核心处将“ftemp(x,y)=sqrt(sum(fsx(:)2+(sum(fsy(:)2);”换成“ftemp(x,y)=max(abs(sum(fsx(:),abs(sum(fsy(:);”。第三种类似的将ftemp(x,y)=sqrt(sum(fsx(:)2+(sum(fsy(:)2)换成 “ftemp(x,y

20、)=abs(sum(fsx(:)+abs(sum(fsy(:);”。第二种方法第三种方法第5章 各种算子处理噪声实验比较Prewitt算子与roberts算子比较:sobel算子与canny算子比较:任何边缘检测算法都不可能在未经处理的原始数据上很好地处理,所以第一步是对原始数据与高斯平滑模板作卷积,得到的图像与原始图像相比有些轻微的模糊。这样,单独的一个像素噪声在经过高斯平滑的图像上变得几乎没有影响。Prewitt算子:凡灰度新值大于或等于阈值的像素点都是边缘点。即选择适当的阈值T,若P(i,j)T,则(i,j)为边缘点,P(i,j)为边缘图像。这种判定是欠合理的,会造成边缘点的误判,因为许

21、多噪声点的灰度值也很大,而且对于幅值较小的边缘点,其边缘反而丢失了。Roberts算子:采用对角线方向相邻两像素之差近似梯度幅值检测边缘。检测水平和垂直边缘的效果好于斜向边缘,定位精度高,对噪声敏感Sobel算子:根据像素点上下、左右邻点灰度加权差,在边缘处达到极值这一现象检测边缘。对噪声具有平滑作用,提供较为精确的边缘方向信息,边缘定位精度不够高。当对精度要求不是很高时,是一种较为常用的边缘检测方法,对噪声具有平滑作用,定位精度不够高。 Canny算子:使用 4 个 mask 检测水平、垂直以及对角线方向的边缘。原始图像与每个 mask 所作的卷积都存储起来。对于每个点我们都标识在这个点上的最大值以及生成的边缘的方向。这样我们就从原始图像生成了图像中每个点亮度梯度图以及亮度梯度的方向。较高的亮度梯度比较有可能是边缘,但是没有一个确切的值来限

温馨提示

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

评论

0/150

提交评论