毕业设计(论文)基于MATLAB的数字图像与边缘检测.doc

上传人:文库蛋蛋多 文档编号:3979488 上传时间:2023-03-30 格式:DOC 页数:37 大小:957.50KB
返回 下载 相关 举报
毕业设计(论文)基于MATLAB的数字图像与边缘检测.doc_第1页
第1页 / 共37页
毕业设计(论文)基于MATLAB的数字图像与边缘检测.doc_第2页
第2页 / 共37页
毕业设计(论文)基于MATLAB的数字图像与边缘检测.doc_第3页
第3页 / 共37页
毕业设计(论文)基于MATLAB的数字图像与边缘检测.doc_第4页
第4页 / 共37页
毕业设计(论文)基于MATLAB的数字图像与边缘检测.doc_第5页
第5页 / 共37页
点击查看更多>>
资源描述

《毕业设计(论文)基于MATLAB的数字图像与边缘检测.doc》由会员分享,可在线阅读,更多相关《毕业设计(论文)基于MATLAB的数字图像与边缘检测.doc(37页珍藏版)》请在三一办公上搜索。

1、基于MATLAB的数字图像分析与边缘检测 摘 要: 图像处理是用计算机对图像进行一系列的操作,一般操作是先将图像数字化,即易于获得某种预期结果的技术,其中边缘检测是图像处理中必不可少的一步,采用微分算子检测边缘是最常用的,也是处理效果比较好的一种。MATLAB图像处理工具箱提供了边缘检测(edge)函数,它能利用多种算子进行图像的边缘检测,语言结构简单,本文主要介绍了数字图像处理主要研究领域中边缘检测的方法,并利用MATLAB图像处理工具箱提供的函数处理图片,对图像进行边缘检测,给出了各种算子检测边缘的结果并进行相互比较。关键字: 图像处理,MatLab ,边缘检测ABSTRACTImage

2、processing is to analyze images by computers to achieve desired a series of results. Edge detection is an absolutely necessary step in image processing and the use of differential operators to detect edge is one of the most common and effective methods. Image processing Mat lab Toolbox Users Guide,

3、Has provided the edge function, It can use many kinds of operators to carry on the image the edge examination. Edge detection is one of the main methods in the research field of digital image processing. The image processing function provided by the Mat Lab image processing tool box is employed to p

4、erform edge detection for image so that the program and processing result are obtained.Key words: Image processing , MatLab, Edge detection 目 录基于MATLAB的数字图像分析与边缘检测11.1 课题概述11.2 课题背景知识21.2.1 MATLAB简介21.2.2 数字图像简介21.3 目的意义31.4 小结32. 数字图像处理42.1 基本概念42.2 图像增强52.2.1 直接灰度调整52.2.2 直方图处理62.2.3 图像滤波72.3 MATL

5、AB图像处理82.3.1 MATLAB中的图像文件格式92.3.2 图像类型92.3.3 图像的几何操作92.3.4 图像类型的转换122.4 MATLAB的二值图像操作132.4.1 态学简介132.4.2 二值数学形态学的运算函数142.5 图像变换152.5.1 快速傅立叶变换152.5.2 离散余弦变换162.6 小结173. 图像分析边缘检测183.1 边缘检测简介183.2 边缘检测方法183.3 常见的一阶边缘检测算子193.3.1 Roberts算子203.3.2 Sobel算子203.3.3 Prewitt算子223.3.4 Kirsch算子223.4常用的二阶边缘检测算子2

6、33.4.1 Laplacian算子233.4.2 LOG(Laplacian-Gauss)算子243.5 小结264总结27参考文献28附 录291. 绪 论1.1 课题概述图像是人类获取和交换信息的主要来源,因此,图像处理的应用邻域涉及到人类生活的方方面面。图像的研究方法和手段根据对图像作用域的不同,可以分为空余处理方法和变换域处理方法。空余处理方法有两大类:邻域处理法和点处理法。变换域处理法有:傅立叶变换、离散余弦变换。图像处理的目的是改善图像的质量,以人为对象以改善人的视觉效果为目的。图像处理是用计算机对图像进行一系列的操作,一般操作是先将图像数字化,即易于获得某种预期结果的技术。常用

7、的图像处理方法有图像增强、复原、编码、压缩、分割等。其中边缘检测是图像处理中必不可少的一步,采用微分算子检测边缘是最常用的,也是处理效果比较好的一种。MATLAB图像处理工具箱提供了边缘检测(edge)函数,它能利用多种算子进行图像的边缘检测,语言结构简单。本文主要介绍了数字图像处理主要研究领域中边缘检测的方法,并利用MATLAB图像处理工具箱提供的函数处理图片,对图像进行边缘检测,给出了各种算子检测边缘的结果并进行相互比较。在现阶段,图像的处理方法很多,其中,边缘检测是很重要的一种处理方法,它在图像处理领域中占有重要地位,图像的边缘是集中了图像大部分的信息,图像边缘的确定与提取对于整个图像场

8、景的识别与理解非常重要。在现实生活中,图像处理的问题一直是个焦点问题,在软件MATLAB处理图像的领域中,图像的各种处理易于实现,易于得到预期的结果。本课题阐述了数字图像在一些应用领域中的处理及处理前后的对比,包括各种算子的边缘检测,从而实现对图像的分析及处理。1.2 课题背景知识1.2.1 MATLAB简介MATLAB是MathWorks公司用C语言开发的软件,其中的矩阵算法来自Linpack和Eispack的课题研究成果。MATLAB是一种将数据结构、变成特征和图形用户界面完美的结合到一起的软件。其核心是数组和矩阵。MATLAB的特点有:高级科学计算语言,用于线性代数统计、的集成管理环境,

9、算法设计开发的交互式工具,创建自定义工程师图形界面的工具,2-D和3-D的数据可视化,与第三方算法开发工具C/C+、FORTRAN、Java、COM、Microsoft Excel集成开发基于MATLAB的算法。MATLAB的基本功能:语言编程功能、编译功能、自动代码生成功能、图像用户界面开发功能、数学计算功能、图形化显示功能、Simulink建模仿真功能。1.2.2 数字图像简介图像是对客观对象的一种相似性的、生动的描述或表示。按图像空间坐标和明暗程度的连续性可分为数字图像和模拟图像。数字图像计算机可以直接处理,其空间坐标和灰度都不连续,是用离散的数字来表示图像。而模拟图像的坐标和灰度都是连

10、续的,故模拟图像无法用计算机直接进行处理。图像处理的目的是改善图像的质量,它以人为对象,以改善人的视觉效果。图像处理中,输入的是质量低的图像,输出的是改善质量后的图像,常用的图像处理方法有图像变换、增强、重建、复原、编码、压缩等。1.3 目的意义图像是对客观对象的一种相似性的、生动的描述或表示。对图像进行一系列的操作以便达到预期的图像结果。现阶段数字图像处理技术的迅速发展为人类带来了巨大的经济社会效益,大到应用卫星遥感进行的全球环境气候监测,小到指纹识别技术在安全领域的应用。可以说,数字图像处理技术已经融入到科学研究的各个领域。边缘检测是数字图像处理中最重要的一种技术,图像物体中边缘表现为灰度

11、变化,边缘广泛存在于物体与背景之间、物体与物体之间。1.4 小结本章重点介绍了课题简介、MATLAB软件的特点与功能、数字图像简介和课题的目的意义。2. 数字图像处理2.1 基本概念二值图像:也叫黑白图像,就是图像像素只存在0,1两个值。一个二值图像是纯黑白的。每一个像素值将取0或1中的一个值,通常用0表示黑,用1表示白。灰度图像:灰度图像是包含灰度级的图像。与二值图像不同,灰度图像的像素并不是只有0、1两个量化级数,而是具有多个量化级数,如64级、256级等。当像素灰度级用8bit表示时,图像的灰度级就是,每个像素的取值就是256中灰度中的一种,即每个像素的灰度值为0255中的一个。通常,用

12、0表示黑,用255表示白,从到亮度逐渐增加。灰度图像只有亮度信息而没有色彩信息。通常所说的黑白图像,其实包含了黑白之间的所有灰度色调。彩色图像:图像中R代表红色,G代表绿色,B代表蓝色。RGB色彩模式是用RGB模型为图像中的每一个像素的RGB分量分配一个0255范围内的强度值。白色的都为255;黑色的都为0;这类图像不适用单独的调色板,每一个像素的颜色有存储在相应位置上的红,绿,蓝颜色共同决定。图像数字化:把连续的图像用一组数字来表示,便于计算机分析处理。图像增强:对图像的某些特征进行强调或尖锐化而不增加图像的相关数据。图像压缩:在满足一定的图像质量要求下对图像进行编码,可以压缩表示图像的数据

13、。图像分析:详细研究并描述一幅图像不同部分的特征和相互关系。图像恢复:把模糊或褪色的图像尽可能的复原。2.2 图像增强 图像增强是指按特定的需要突出一幅图像中的某些信息,同时消弱或去除某些不需要的信息的处理方法。其主要有两个目的:一是增强有用信息,抑制无用信息,从而改善图像的视觉效果;二是有利于人工和机器分析。2.2.1 直接灰度调整(1)增强对比度增强对比度实际是增强原图的各部分的反差。实际中经常是通过增强原图中某两个灰度值之间的动态范围来实现的。MATLAB图像处理工具箱中用函数进行灰度线性增强。其语法格式为:I1=imadjust(I,low high,bottom top,gamma)

14、对图像使用灰度线性增强,使原图因颜色灰暗不能体现细节的地方能够清晰的体现出来。 图1 亮度调节前后图像的显示效果比较(2) 图像求反对图像求反是将图像的灰度值反转,就是使原图像的黑变白,使白变黑。具体的变换就是图像中每个像素的灰度值根据变换曲线进行映射。(3)灰度切分 灰度切分的目的与增强对比度比较相似,即将某个灰度值范围变得比较突出;所不同的是,灰度切分将所要突出的是灰度范围变换成较高的灰度值,而将其余的灰度值变换成较低的灰度值。2.2.2 直方图处理为改变图像整体偏暗,或整体偏亮,或者灰度层次不丰富的情况,可将图像的直方图通过一定的函数处理为均衡的直方图,使直方图不再偏于低端,或者不再偏于

15、高端,而是变成比较均匀的分布,而这种技术就叫做直方图均衡化。直方图是对图像中每一灰度值出现频率的统计,可也描述为: (3-1)上式中,是图像f(x,y)的第k级灰度值,是中具有灰度值的像素的个数,n是图像中像素的总数。给出了对出现频率的一个估计,所以一幅图像的直方图基本上可以描述图像的概貌。直方图反应的是一幅图像的灰度值的概率统计特征,常用的方法有直方图均衡化技术和直方图规定化技术。(1) 直方图均衡化其基本思想是把原图的直方图变换成均匀分布的形式,这样增强了像素灰度值的动态范围,从而达到了增强图像整体对比度的效果。MATLAB图像处理工具箱提供了用于直方图均衡化的函数histeq,其语法格式

16、为:I2=histeq(I,n)I2,T=histeq(I,.)式中,表示输出图像的灰度级数目,是一个可选参数,默认值为64;J,T=histeq(I,.)表示返回将图像I的灰度直方图变换成图像J的直方图变换T。 图2 灰度调整后的图像与直方图(2)直方图规定化直方图均衡化的优点是能自动增强整个图像的对比度,但其具体的增强效果不容易控制,处理的结果总是得到全局均衡化的直方图。而在实际生活中,为了得到某种特定的形状,有时需要将直方图进行某种变换,从而有选择地增强某个灰度值范围的对比度。2.2.3 图像滤波图像的空间文理信息可以形象的反映出图像的大小、位置、和形状等特征,利用线性滤波技术可以对图像

17、的某些纹理信息进行一定程度的增强,而去除其他的特征。线性滤波是一种邻域操作,其结果由滤波器系数与滤波窗口扫描区域的相应像素值的乘积之和给出。滤波主要有两种:(1)线性滤波,它属于空余滤波平滑技术,主要采用邻域平均法,用于去除图像通过扫描得到的噪声颗粒。邻域平均法的主要思想是用几个像素灰度的平均值来代替某个像素。(2)中值滤波是一种常用的非线性平滑滤波器,其滤波原理是,中值滤波器的输出像素值是有邻域像素的中间值决定的,其滤波后产生的图像模糊较少,适合于消除图像的孤立噪声点。MATLAB图像处理工具箱提供了用于实现中值滤波的函数medifilt2,其语法格式为:J=medifilt2(I1,m,n

18、)其中,为指定滤波器窗口的大小,默认值为3*3,返回图像I1经滤波后的图像J。 图3 加入椒盐噪声后图像的均值滤波和中值滤波 图4 加入高斯噪声后图像的均值滤波和中值滤波2.3 MATLAB图像处理数字图像处理技术发展迅速,在实际上生活中起到了很大的作用,而MATLAB对数字图像的处理很是方便,用相应的函数便可实现。2.3.1 MATLAB中的图像文件格式(1)PCX格式:可处理1、4、8、16、24位等图像数据。(2)BMP格式:有1、4、8、24为非压缩图像,8位RLE图像。(3)DHF格式:有8、24位光栅图像数据集。(4)JPEG格式。是一种称为联合图像专家组的图像压缩格式。(5)TI

19、FF格式。处理1、4、8、24为非压缩图像,1、4、8、24为packbit压缩图像,1位CCITT压缩图像。(6)XWD格式。包括1、8位Zpixmaps,XYBitmaps,1位XYPixmaps。(7)PNG格式。2.3.2 图像类型(1)索引图像(2)灰度图像(3)RGB图像(4)二进制图像2.3.3 图像的几何操作在对数字图像进行操作时,在某些时候只需要对图像的某一部分进行相应的操作。而图像的几何操作主要包括3种。(1)图像的旋转imrorate函数可以通过一种特定的插补方法来改变显示图像,其语法格式为:B=imrorate(A,angle,method)其中,A是图像的数据矩阵,a

20、ngle是图像的旋转角度,method可以是nearest、bicubic或bilinear。Nearest(近邻插补运算):输入像素的赋值为当前点的像素点。Bicubic(双立方插补运算):输入像素的赋值为4*4矩阵所包含有效点的加权平均值。Bilinear(双线性插补运算):输入像素的赋值为2*2矩阵所包含有效点的加权平均值。图5 旋转图(2) 图像的剪切imcrop函数可以实现对图像的剪切操作。该操作剪切的是图像中的一个矩阵子图,用户可以通过参数指定这个矩形四个顶点的坐标,也可以交互的用鼠标选取这个操作。其语法格式为:X1=imcrop(X,map):对索引图像进行交互式的剪切。I1=i

21、mcrop(I):对灰度图像进行交互式的剪切。X2=imcrop(X,map,xmin ymin width height):对索引图像进行非交互式剪切。 图6 交互与非交互图像对比图(3) 调整图像的大小函数可以通过一种特定的插补方法来调整图像的大小,其语法格式为:B=imresize(A,m,methed):用methed指定的插补方法返回大小等于A的m倍的图像B。B=imresize(A,mrows ncols,methed)用指定的插补方法返回大小为mrows*ncols的图像。参数method有三种:nearest、bilinear和bicubic。图7 缩小图2.3.4 图像类型的

22、转换有时对图像进行图像类型转换以方便某些处理,提供了三种基本类型的图像转换。(1) RGB图像转换为灰度图像的函数rgb2gray(),其语法格式为:I=rgb2gray(RGB)前者表示将输入的RGB图像转换为灰度图I.图8 RGB图像转换为灰度图后的图(2) RGB图像转换为索引图像的函数rgb2ind(),其语法格式为:X,map=rgb2ind(RGB):直接将图像转换为具有颜色图map的矩阵X(3)转换为二值图像的函数im2bw()这一函数通过阈值化方法将索引、灰度和图像转化为二值图像。其语法格式主要:BW=im2bw(I,level):灰灰度图像I转换为二值图像BW=im2bw(R

23、GB,level):将RGB图像转换为二值图像 图9 将灰度图像和RGB图像转换为二值图像后的图(3)索引图像转换为灰度图像的函数ind2grap,其语法格式为:I=ind2grap(X,map)将具有颜色图map的索引图像X转换为转换为灰度图像I,X可以是双精度型或unit8型,I是双精度型.2.4 MATLAB的二值图像操作二值图像的处理过程相对简单,而数学形态学的处理主要是二值图像。2.4.1 态学简介数学形态学图像处理的基本思想是利用结构元素来收集图像的信息。当该结构元素在图像中不断移动时,便可以考察图像各个部分之间的相互关系,从而了解图像各个部分的结果特征。数学形态学的基本运算有腐蚀

24、、膨胀、开启和闭合。设为二维欧几里德空间,A为图像矩阵,B为结构元素矩阵,是欧式空间中的一点。数学形态学运算是用B对A进行操作。而实际上,结构元素本身也是一种图像矩阵。几种图像操作的定义:平移:定义为图像A被b平移后的结果,表示为,其中,中所有的元素是A中对应元素平移到以b点为原点的坐标系内的结果。反射:定义为图像A经图像原点反射的结果,表示为平移和反射着两个操作,可以定义数学形态学中的两个基本操作,即膨胀(Dilation)和腐蚀(Erosion),其数学表达式如下:膨胀运算的数字表达式: (3-2)腐蚀运算的数字表达式: (3-3) 开运算:A对B的开,即A被B进行开运算的结果定义为: (

25、3-4)即A先被B腐蚀,再被B膨胀的结果。闭运算:对的闭运算定义为: (3-5)即A先被B膨胀,后再被B腐蚀的结,通常,开运算用来删除图像中的小分支,可以使图像缩小;闭运算用来填补图像中的空穴,可以使图像放大;而腐蚀和膨胀运算具有平移不变形,对图像A的腐蚀和膨胀的运算结果只取决于A与B的结构,而与A的位置无关。2.4.2 二值数学形态学的运算函数dilate函数实现二值图像的膨胀运算,其语法格式为:BW=dilate(BW1,SE,.,N)返回图像BW1经过结构元素SE膨胀N次后的图像,这里SE为结构元素。 图10 二值图像与腐蚀图像Imerode函数实现二值图像的腐蚀运算,其语法格式为:IM

26、1=Imerode (IM,SE) 返回灰度、二值图像和压缩二值图像IM进行腐蚀的图像。 图11 灰度图像与腐蚀图像2.5 图像变换图像变换在图像处理和图像分析中占有重要地位。图像变换就是将图像转换到变换域,如频率域,进行图像处理和图像分析。这给图像数据压缩、特征提取、图像去噪等带来了很大的方便,从而使后面的处理运算变得简单。在数字图像处理中,输入图像和输出图像通常都是二维的,一般表示成二维数字矩阵,可以直接叫二维傅里叶变换、二维DFT、二维FFT。2.5.1 快速傅立叶变换离散傅立叶变换所需要的乘法和加法的操作次数N是2的幂的时候,其计算效率高,使用起来简单方便。其算法思想是:先对原图进行转

27、置,按行对转置后的图像矩阵作一维FFT,将此变换所得的中间矩阵在转置,在按行对转置后的中间矩阵作一维FFT,最后得到的就是二维FFT。MATLAB图像处理工具箱提供了以下处理图像的快速傅立叶变换的函数;Fft2用来计算二维快速傅立叶变换,其语法格式为:F=fft2(f)F=fft2(f,m,n)其中,F=fft2(f)返回图像f的二维变换矩阵,F与f的大小一致。F=fft2(f,m,n)截取或补充0元素,使图像的大小为m*n,然后对其进行二维fft,的大小没有改变。计算fft2所需要的时间与m,n=size(f)有关,如果m和n为2的幂,则计算速度最快。图12 快速傅立叶变换后的图2.5.2

28、离散余弦变换离散余弦变换(DCT)是图像压缩处理中应用较多的一种变换。它利用傅里叶变换的对称性,采用图像边界折叠操作将图像变换成为偶函数形式,然后对图像进行二维傅里叶变换,变换后的结果将仅包含余弦项。MATLAB图像处理工具箱提供了两种用于图像处理的DCT变换函数;dct2使用一个基于的算法来提高输入输出速度,特别适合于比较大的输入矩阵,其语法格式为:B=dct2(A)B=dct2(A,m,n)B=dct2(A,m,n)其中,B=dct2(A)用于计算图像的二维DCT,变换前后图像的大小一样;B=dct2(A,m,n)通过补0或截取元素,使得A成为m*n大小的矩阵,变换结果B与A的大小也是一样

29、的。idct2是dct2的反变换,其语法格式与dct2相同。2.6 小结本章主要介绍了数字图像处理的主要内容,主要有基本概念、图像增强、MATLAB图像处理、MATLAB的二值图像操作、图像变换。3. 图像分析边缘检测在某些情况下,为了辨别和分析图像,需要对图像进行分离提取的操作,在此基础上可进一步进行图像的识别与分析。3.1 边缘检测简介边缘检测是图像处理和计算机视觉中的基本问题,边缘是指其周围像素灰度变化不连续的那些像素的集合,边缘广泛从在于物体与背景之间、物体与物体之间,因此它是图像分割所依赖的重要特征。边缘检测的目的是标识数字图像中亮度变化明显的点。图像边缘有方向和幅值两个特征,通常沿

30、边缘的走向灰度变换平缓,垂直于边缘走向的像素灰度变换剧烈。根据灰度变换的特点,常见的边缘分为:凸缘型、阶跃型、房顶型。凸缘型:其边缘的灰度值上升与下降都比较缓慢。阶跃型:其边缘处于图像中两个具有不同灰度值的相邻区域之间。房顶型:其主要对应细线条的灰度值变换区域。3.2 边缘检测方法由于图像的边缘是以灰度变化出现的,因此,可以通过计算图像灰度的不连续性来增强图像和进行图像检测边缘。边缘检测的方法主要有以下4种。 (1)空域微风算子,即传统的边缘检测方法。图像的边缘是灰度变化最剧烈的地方,其对应的连续情况就是函数梯度较大的地方,所以研究图像的边缘的一种方法就是求导算子。对图像中的各个像素点进行一阶

31、或二阶微分来确定边缘像素点。一阶微分图像的阈值处对应着图像的边缘点;二阶微分图像的过零点对应着图像的边缘点。(2)拟合曲面 (3)小坡多尺度边缘检测 随着图像边缘检测技术的提高,小破分析得到迅速房展并开始用于边缘检测。作为研究非平稳信号的一种有利工具,小波分析在边缘检测方面起到了很大的作用。(4)基于数学形态学的边缘检测 数学形态学是一种对二值图像进行操作的一种非线性数学方法,其运算是物体形状集合与结构元素之间的相互作用,对边缘方向不敏感,在图像处理中得到了广泛的应用。同时在数字图像处理方面还具有简单性和严谨性,能很好的描述图像的形态特征。因此,将数学形态学用于边缘检测,还可以滤除噪声,能保留

32、图像中原有的细节信息,是边缘检测技术的一个重大突破。3.3 常见的一阶边缘检测算子梯度算子可以增强图像边缘信息,这对图像边缘检测起到了重要作用。梯度对应的是一阶导数,梯度算子是一阶导数算子。对一个图像f(x,y)函数,它在位置(x,y)处的梯度可定为梯度算子: Gf(x,y)= (3-6)梯度算子是图像处理中最常用的一阶微分算法,是(3-11)中f(x,y)表示图像的灰度值,图像梯度最重要的性质是梯度方向,是在图像灰度最大变化率上,它恰是可以反映出图像边缘上的灰度变化。其定义如下: (3-7)以上两式中偏导数需要对每个像素位置计算,而实际上数字图像中求导数是可以用一阶差分代替一阶微分。 =f(

33、i,j+1)-f(i,j) (3-8)=f(i,j)-f(i+1,j)求梯度时对于平方和运算及开方运算,可以用两个分量的绝对值表示为:G(i,j) (3-9) 上式中,j对应于x轴方向,i对应于y轴方向。f(x,y)表示处理前的点的灰度值,G(x,y)表示处理后的点的灰度值。求梯度幅值时对于平方和及开放运算,可以用两个分量的绝对值之和来表示。3.3.1 Roberts算子Roberts边缘算子又称为梯度交叉算子,其思想是利用局部差分算子寻找边缘的算子。梯度幅值计算近似方法如表1所示(i,j)(i,j+1)(i+1,j)(i+1,j+1)表1 Roberts算子梯度幅值计算示意图(i,j)为当前

34、像素的位置,其计算公式如下:G(i,j)= (3-10)它是由两个2*2模板组成。用卷积模板表示如下:G(i,j)= (3-11)式中,Gx=;Gy=;标注.的是当前像素的位置。3.3.2 Sobel算子Sobel算子边缘检测的效果不好很好。Sobel算子梯度幅值计算如表2所示。(i,j)为当前的位置点,梯度幅值计算公式如下:表2 Sobel算子中各个点的像素点的关系图(i-1,j-1)(i-1,j)(i-1,j+1)(i,j-1)(i,j) (i,j+1)(i+1,j-1)(i+1,j)(i+1,j+1)=+ (3-12)将其进行简化,表2中的坐标对应记为如表3所示的符号。表3 梯度幅值计算

35、示意图因此式(3-12)则可以简单记为: (3-13) 式中c=2。用卷积模板来实现: (3-14)式中, ;。Sx是水平模板,对水平边缘响应最大;Sy是垂直模板,对垂直边缘响应最大。图像中的每个点都用这两个模板做卷积,两个模板卷积的最大值作为该店的输出值。其运算结果是一副边缘幅度图像。这一算子把重点放在接近于模板中心的像素点。因此Sobel算子是边缘检测中最常用的算子之一。Sobe梯度算子是先做加成权平均,在求微分,最后求梯度,即用式(3-12)、式(3-13)和式(3-14)来实现的。3.3.3 Prewitt算子Prewitt算子用卷积模板来描述: (3-15)式中,前者为水平模板,后者

36、为垂直模板。图像中的每个点用这两个模板进行卷积,取最大值作为输出值,最终产生一副边缘幅度图像。3.3.4 Kirsch算子Kirsch算子使用8个模板来确定梯度的幅值和方向,故又称为方向算子,通过一组模板分别计算不同方向上的拆分值,取其中最大的值作为边缘强度,而将与之对应的方向作为边缘的方向。表4 3*3子图像示意图 (3-16)式中 (3-17)式(3-17)中的下标超过7就用8去除并取余数。3.4常用的二阶边缘检测算子3.4.1 Laplacian算子Laplacian算子是不依赖于边缘方向的二阶微分算子,是常用的二阶导数算子。对一个连续函数f(x,y),它在位置(x,y)上的Laplac

37、ian表式式为: (3-18)对于数字图像来说,计算函数的拉普拉斯值也可以借助各种模板来实现。拉普拉斯模板的基本要求是对应中心像素的系数应该是正的,而对应于中心像素邻近像素的系数应该是负的,且它们的和应该是零。其可以简单表示为: (3-19)或者 (3-20)也就是说,拉普拉斯算子常用两种模板来进行检测,其模板分别见图(a)和图(b). 模板(a) 模板(b).拉普拉斯算子是一个标量而不是向量,具有线性特性和旋转不变,即各向同性的性质,常常被用在图像处理的过程中。由于拉帕拉斯算子是一种二阶导数算子,可在边缘处产生一个零交叉。因此,经过拉普拉斯算子滤波过的图像对噪声相当敏感,也可产生双像素宽的边

38、缘,且不能提供边缘方向信息,拉普拉斯算子主要用于已知边缘像素后确定该像素是在图像的暗区或明区一边。3.4.2 LOG(Laplacian-Gauss)算子当使用一阶导数的边缘检测算子时,如果所求的一阶导数高于某一阈值,则确定该点为边缘点,这样便会导致检测的边缘的太多。一种更好的办法就是求梯度局部最大值对应的点,并认为他们是边缘点。对其去除一阶导数中的非局部最大值,可以检测到较为精确的边缘点。一阶导数的局部最大值对应着二阶导数的零交叉点,通过找图像增强的二阶导数的零交叉点就可以确定比较精确的边缘点。3.4.3 Canny算子Canny算子检测边缘的3个准则:(1) 信噪比准则信噪比越大,提取的边

39、缘质量越高。信噪比SNR的定义为: (3-21)式中,G(x)代表边缘函数;h(x)代表宽度为的滤波器的脉冲响应;代表高斯噪声的均方差。(2) 定位精度准则边缘定为精度L定义为: (3-22)式中,和分别表示和的导数,越大表明定为精度越高。(3)单边缘相应准则 (3-23)式中,为的二阶导数。将3个准则相结合可以获得最优的检测算子。图13 边缘检测的各种算法图例3.5 小结本章主要概述了边缘检测,介绍了边缘检测的方法。主要的有一阶边缘检测算子和二阶边缘检测算子。4总结本文应用了一些函数对数字图像进行了一些操作,相应的也获得了一定的处理结果。尤其对图像进行各种算子的边缘检测将得到不同的图像。在对

40、数字图像进行处理的过程中,并不是每一次处理都获得预期的效果,主要是对各个函数的功能和各种算子的算法掌握掌握不够,对一幅图像由模糊到清晰的处理过程不熟悉,同时,加之时间较紧的情况下,没有足够的时间去研究如何清晰的获得一幅图像的具体步骤,从而导致最终的图像效果不是很好。使得最终的图像与预期的结果相差较大。希望能够通过再学习,对图像处理的过程有一个比较完整的了解,能对边缘检测的各种算子有进一步的研究,使处理后的图像越来越接近预期的图像。参考文献1 龚声蓉,刘纯平,王强 数字图像处理与分析,北京:清华大学出版社,20062 赫文化 MATLAB图形图像处理应用教程,北京:中国水利水电出版社,20043

41、 陈扬,陈荣娟,郭颖辉MATLAB6.x图形编辑与图像处理,西安:西安电子科技大学,20024 刘慧颖 MATLABR2007基础教程 ,北京:清华大学出版社,20085 常巍,谢光军,黄朝峰MATLABR2007基础与提高,北京:电子工业大学出版社6 刘井元,李玉良,张传楷 基于MATLAB的数字图像边缘检测技术,中国科技论文在线附 录附录1.文件夹pictur4的程序及运行结果程序:I=imread(5.jpg);%读入图像figure,imshow(I),title(原图);I1=imresize(I,200,255,nearest);%图像缩小figure,imshow(I1),tit

42、le(缩小图);I2=imrotate(I1,40,nearest);%图像旋转figure,imshow(I2),title(40旋转图);figure;I3=imcrop(I1);%图像剪切I4=imcrop(I1,100 80,50,60);subplot(1,2,1),imshow(I3),title(交互式剪切图);%交互式剪切subplot(1,2,2),imshow(I4),title(非交互式剪切图);%非交互式剪切H=rgb2gray(I1);%将RGB图像转化了灰度图像figure,imshow(H),title(灰度图);I5=imadjust(H,0.4 0.8);%灰

43、度图像亮度调整figure,imshow(I5),title(亮度调整图);subplot(1,2,1),imshow(H),title(灰度图);subplot(1,2,2),imshow(I5),title(亮度调整图);figure;J=histeq(H);%均衡化subplot(2,2,1),imshow(H),title(灰度图);subplot(2,2,2),imshow(J),title(亮度均衡图);subplot(2,2,3),imhist(H),title(灰度直方图);subplot(2,2,4),imhist(J),title(亮度均衡直方图);figure;I6=im

44、noise(H,salt & pepper,0.04);%加入椒盐噪声subplot(1,2,1),imshow(H),title(灰度图);subplot(1,2,2),imshow(I6),title(加椒盐噪声后的图);figure;I7=imnoise(H,gaussian,0.04);%加入高斯噪声subplot(1,2,1),imshow(I6),title(加椒盐噪声后的图); subplot(1,2,2), imshow(I7),title(加高斯噪声后的图);figure;h=ones(3,3)/9;%产生滤波模板B=conv2(double(I6),h);%椒盐噪声图的均值滤波K=medfilt2(I6);%椒盐噪声图的中指滤波B1=conv2(double

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

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号