版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
PAGEPAGE34PAGE1基于MATLAB的数字图像分析与边缘检测摘要:图像处理是用计算机对图像进行一系列的操作,一般操作是先将图像数字化,即易于获得某种预期结果的技术,其中边缘检测是图像处理中必不可少的一步,采用微分算子检测边缘是最常用的,也是处理效果比较好的一种。MATLAB图像处理工具箱提供了边缘检测(edge)函数,它能利用多种算子进行图像的边缘检测,语言结构简单,本文主要介绍了数字图像处理主要研究领域中边缘检测的方法,并利用MATLAB图像处理工具箱提供的函数处理图片,对图像进行边缘检测,给出了各种算子检测边缘的结果并进行相互比较。关键字:图像处理,MatLab,边缘检测ABSTRACTImageprocessingistoanalyzeimagesbycomputerstoachievedesiredaseriesofresults.Edgedetectionisanabsolutelynecessarystepinimageprocessingandtheuseofdifferentialoperatorstodetectedgeisoneofthemostcommonandeffectivemethods.ImageprocessingMatlabToolboxUser’sGuide,Hasprovidedtheedgefunction,Itcanusemanykindsofoperatorstocarryontheimagetheedgeexamination.Edgedetectionisoneofthemainmethodsintheresearchfieldofdigitalimageprocessing.TheimageprocessingfunctionprovidedbytheMatLabimageprocessingtoolboxisemployedtoperformedgedetectionforimagesothattheprogramandprocessingresultareobtained.Keywords:Imageprocessing,MatLab,Edgedetection目录基于MATLAB的数字图像分析与边缘检测 11.1课题概述 11.2课题背景知识 21.2.1MATLAB简介 21.2.2数字图像简介 21.3目的意义 31.4小结 32.数字图像处理 42.1基本概念 42.2图像增强 52.2.1直接灰度调整 52.2.2直方图处理 62.2.3图像滤波 72.3MATLAB图像处理 82.3.1MATLAB中的图像文件格式 92.3.2图像类型 92.3.3图像的几何操作 92.3.4图像类型的转换 122.4MATLAB的二值图像操作 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.1Roberts算子 203.3.2Sobel算子 203.3.3Prewitt算子 223.3.4Kirsch算子 22常用的二阶边缘检测算子 233.4.1Laplacian算子 233.4.2LOG(Laplacian-Gauss)算子 243.5小结 264.总结 27参考文献 28附录 291.绪论1.1课题概述图像是人类获取和交换信息的主要来源,因此,图像处理的应用邻域涉及到人类生活的方方面面。图像的研究方法和手段根据对图像作用域的不同,可以分为空余处理方法和变换域处理方法。空余处理方法有两大类:邻域处理法和点处理法。变换域处理法有:傅立叶变换、离散余弦变换。图像处理的目的是改善图像的质量,以人为对象以改善人的视觉效果为目的。图像处理是用计算机对图像进行一系列的操作,一般操作是先将图像数字化,即易于获得某种预期结果的技术。常用的图像处理方法有图像增强、复原、编码、压缩、分割等。其中边缘检测是图像处理中必不可少的一步,采用微分算子检测边缘是最常用的,也是处理效果比较好的一种。MATLAB图像处理工具箱提供了边缘检测(edge)函数,它能利用多种算子进行图像的边缘检测,语言结构简单。本文主要介绍了数字图像处理主要研究领域中边缘检测的方法,并利用MATLAB图像处理工具箱提供的函数处理图片,对图像进行边缘检测,给出了各种算子检测边缘的结果并进行相互比较。在现阶段,图像的处理方法很多,其中,边缘检测是很重要的一种处理方法,它在图像处理领域中占有重要地位,图像的边缘是集中了图像大部分的信息,图像边缘的确定与提取对于整个图像场景的识别与理解非常重要。在现实生活中,图像处理的问题一直是个焦点问题,在软件MATLAB处理图像的领域中,图像的各种处理易于实现,易于得到预期的结果。本课题阐述了数字图像在一些应用领域中的处理及处理前后的对比,包括各种算子的边缘检测,从而实现对图像的分析及处理。1.2课题背景知识1.2.1MATLAB是MathWorks公司用C语言开发的软件,其中的矩阵算法来自Linpack和Eispack的课题研究成果。MATLAB是一种将数据结构、变成特征和图形用户界面完美的结合到一起的软件。其核心是数组和矩阵。MATLAB的特点有:高级科学计算语言,用于线性代数统计、的集成管理环境,算法设计开发的交互式工具,创建自定义工程师图形界面的工具,2-D和3-D的数据可视化,与第三方算法开发工具—C/C++、FORTRAN、Java、COM、MicrosoftExcel—集成开发基于MATLAB的算法。MATLAB的基本功能:语言编程功能、编译功能、自动代码生成功能、图像用户界面开发功能、数学计算功能、图形化显示功能、Simulink建模仿真功能。1.2.2数字图像简介图像是对客观对象的一种相似性的、生动的描述或表示。按图像空间坐标和明暗程度的连续性可分为数字图像和模拟图像。数字图像计算机可以直接处理,其空间坐标和灰度都不连续,是用离散的数字来表示图像。而模拟图像的坐标和灰度都是连续的,故模拟图像无法用计算机直接进行处理。图像处理的目的是改善图像的质量,它以人为对象,以改善人的视觉效果。图像处理中,输入的是质量低的图像,输出的是改善质量后的图像,常用的图像处理方法有图像变换、增强、重建、复原、编码、压缩等。1.3目的意义图像是对客观对象的一种相似性的、生动的描述或表示。对图像进行一系列的操作以便达到预期的图像结果。现阶段数字图像处理技术的迅速发展为人类带来了巨大的经济社会效益,大到应用卫星遥感进行的全球环境气候监测,小到指纹识别技术在安全领域的应用。可以说,数字图像处理技术已经融入到科学研究的各个领域。边缘检测是数字图像处理中最重要的一种技术,图像物体中边缘表现为灰度变化,边缘广泛存在于物体与背景之间、物体与物体之间。1.4小结本章重点介绍了课题简介、MATLAB软件的特点与功能、数字图像简介和课题的目的意义。2.数字图像处理2.1基本概念二值图像:也叫黑白图像,就是图像像素只存在0,1两个值。一个二值图像是纯黑白的。每一个像素值将取0或1中的一个值,通常用0表示黑,用1表示白。灰度图像:灰度图像是包含灰度级的图像。与二值图像不同,灰度图像的像素并不是只有0、1两个量化级数,而是具有多个量化级数,如64级、256级等。当像素灰度级用8bit表示时,图像的灰度级就是,每个像素的取值就是256中灰度中的一种,即每个像素的灰度值为0~255中的一个。通常,用0表示黑,用255表示白,从到亮度逐渐增加。灰度图像只有亮度信息而没有色彩信息。通常所说的黑白图像,其实包含了黑白之间的所有灰度色调。彩色图像:图像中R代表红色,G代表绿色,B代表蓝色。RGB色彩模式是用RGB模型为图像中的每一个像素的RGB分量分配一个0~255范围内的强度值。白色的都为255;黑色的都为0;这类图像不适用单独的调色板,每一个像素的颜色有存储在相应位置上的红,绿,蓝颜色共同决定。图像数字化:把连续的图像用一组数字来表示,便于计算机分析处理。图像增强:对图像的某些特征进行强调或尖锐化而不增加图像的相关数据。图像压缩:在满足一定的图像质量要求下对图像进行编码,可以压缩表示图像的数据。图像分析:详细研究并描述一幅图像不同部分的特征和相互关系。图像恢复:把模糊或褪色的图像尽可能的复原。2.2图像增强图像增强是指按特定的需要突出一幅图像中的某些信息,同时消弱或去除某些不需要的信息的处理方法。其主要有两个目的:一是增强有用信息,抑制无用信息,从而改善图像的视觉效果;二是有利于人工和机器分析。2直接灰度调整(1)增强对比度增强对比度实际是增强原图的各部分的反差。实际中经常是通过增强原图中某两个灰度值之间的动态范围来实现的。MATLAB图像处理工具箱中用函数进行灰度线性增强。其语法格式为:I1=imadjust(I,[lowhigh],[bottomtop],gamma)对图像使用灰度线性增强,使原图因颜色灰暗不能体现细节的地方能够清晰的体现出来。图1亮度调节前后图像的显示效果比较(2)图像求反对图像求反是将图像的灰度值反转,就是使原图像的黑变白,使白变黑。具体的变换就是图像中每个像素的灰度值根据变换曲线进行映射。(3)灰度切分灰度切分的目的与增强对比度比较相似,即将某个灰度值范围变得比较突出;所不同的是,灰度切分将所要突出的是灰度范围变换成较高的灰度值,而将其余的灰度值变换成较低的灰度值。2直方图处理为改变图像整体偏暗,或整体偏亮,或者灰度层次不丰富的情况,可将图像的直方图通过一定的函数处理为均衡的直方图,使直方图不再偏于低端,或者不再偏于高端,而是变成比较均匀的分布,而这种技术就叫做直方图均衡化。直方图是对图像中每一灰度值出现频率的统计,可也描述为:(3-1)上式中,是图像f(x,y)的第k级灰度值,是中具有灰度值的像素的个数,n是图像中像素的总数。给出了对出现频率的一个估计,所以一幅图像的直方图基本上可以描述图像的概貌。直方图反应的是一幅图像的灰度值的概率统计特征,常用的方法有直方图均衡化技术和直方图规定化技术。直方图均衡化其基本思想是把原图的直方图变换成均匀分布的形式,这样增强了像素灰度值的动态范围,从而达到了增强图像整体对比度的效果。MATLAB图像处理工具箱提供了用于直方图均衡化的函数histeq,其语法格式为:I2=histeq(I,n)[I2,T]=histeq(I,…..)式中,表示输出图像的灰度级数目,是一个可选参数,默认值为64;[J,T]=histeq(I,….)表示返回将图像I的灰度直方图变换成图像J的直方图变换T。图2灰度调整后的图像与直方图(2)直方图规定化直方图均衡化的优点是能自动增强整个图像的对比度,但其具体的增强效果不容易控制,处理的结果总是得到全局均衡化的直方图。而在实际生活中,为了得到某种特定的形状,有时需要将直方图进行某种变换,从而有选择地增强某个灰度值范围的对比度。2.2.3图像滤波图像的空间文理信息可以形象的反映出图像的大小、位置、和形状等特征,利用线性滤波技术可以对图像的某些纹理信息进行一定程度的增强,而去除其他的特征。线性滤波是一种邻域操作,其结果由滤波器系数与滤波窗口扫描区域的相应像素值的乘积之和给出。滤波主要有两种:(1)线性滤波,它属于空余滤波平滑技术,主要采用邻域平均法,用于去除图像通过扫描得到的噪声颗粒。邻域平均法的主要思想是用几个像素灰度的平均值来代替某个像素。(2)中值滤波是一种常用的非线性平滑滤波器,其滤波原理是,中值滤波器的输出像素值是有邻域像素的中间值决定的,其滤波后产生的图像模糊较少,适合于消除图像的孤立噪声点。MATLAB图像处理工具箱提供了用于实现中值滤波的函数medifilt2,其语法格式为:J=medifilt2(I1,[m,n])其中,为指定滤波器窗口的大小,默认值为3*3,返回图像I1经滤波后的图像J。图3加入椒盐噪声后图像的均值滤波和中值滤波图4加入高斯噪声后图像的均值滤波和中值滤波2.3MATLAB图像处理数字图像处理技术发展迅速,在实际上生活中起到了很大的作用,而MATLAB对数字图像的处理很是方便,用相应的函数便可实现。2MATLAB中的图像文件格式(1)PCX格式:可处理1、4、8、16、24位等图像数据。(2)BMP格式:有1、4、8、24为非压缩图像,8位RLE图像。(3)DHF格式:有8、24位光栅图像数据集。(4)JPEG格式。是一种称为联合图像专家组的图像压缩格式。(5)TIFF格式。处理1、4、8、24为非压缩图像,1、4、8、24为packbit压缩图像,1位CCITT压缩图像。(6)XWD格式。包括1、8位Zpixmaps,XYBitmaps,1位XYPixmaps。(7)PNG格式。2图像类型(1)索引图像(2)灰度图像(3)RGB图像(4)二进制图像2.3.3图像的几何操作在对数字图像进行操作时,在某些时候只需要对图像的某一部分进行相应的操作。而图像的几何操作主要包括3种。(1)图像的旋转imrorate函数可以通过一种特定的插补方法来改变显示图像,其语法格式为:B=imrorate(A,angle,method)其中,A是图像的数据矩阵,angle是图像的旋转角度,method可以是nearest、bicubic或bilinear。Nearest(近邻插补运算):输入像素的赋值为当前点的像素点。Bicubic(双立方插补运算):输入像素的赋值为4*4矩阵所包含有效点的加权平均值。Bilinear(双线性插补运算):输入像素的赋值为2*2矩阵所包含有效点的加权平均值。图5旋转图图像的剪切imcrop函数可以实现对图像的剪切操作。该操作剪切的是图像中的一个矩阵子图,用户可以通过参数指定这个矩形四个顶点的坐标,也可以交互的用鼠标选取这个操作。其语法格式为:X1=imcrop(X,map):对索引图像进行交互式的剪切。I1=imcrop(I):对灰度图像进行交互式的剪切。X2=imcrop(X,map,[xminyminwidthheight]):对索引图像进行非交互式剪切。图6交互与非交互图像对比图调整图像的大小函数可以通过一种特定的插补方法来调整图像的大小,其语法格式为:B=imresize(A,m,methed):用methed指定的插补方法返回大小等于A的m倍的图像B。B=imresize(A,[mrowsncols],methed)用指定的插补方法返回大小为mrows*ncols的图像。参数method有三种:nearest、bilinear和bicubic。图7缩小图2.3.4图像类型的转换有时对图像进行图像类型转换以方便某些处理,提供了三种基本类型的图像转换。RGB图像转换为灰度图像的函数rgb2gray(),其语法格式为:I=rgb2gray(RGB)前者表示将输入的RGB图像转换为灰度图I.图8RGB图像转换为灰度图后的图RGB图像转换为索引图像的函数rgb2ind(),其语法格式为:[X,map]=rgb2ind(RGB):直接将图像转换为具有颜色图map的矩阵X(3)转换为二值图像的函数im2bw()这一函数通过阈值化方法将索引、灰度和图像转化为二值图像。其语法格式主要:BW=im2bw(I,level):灰灰度图像I转换为二值图像BW=im2bw(RGB,level):将RGB图像转换为二值图像图9将灰度图像和RGB图像转换为二值图像后的图(3)索引图像转换为灰度图像的函数ind2grap,其语法格式为:I=ind2grap(X,map)将具有颜色图map的索引图像X转换为转换为灰度图像I,X可以是双精度型或unit8型,I是双精度型.2.4MATLAB的二值图像操作二值图像的处理过程相对简单,而数学形态学的处理主要是二值图像。2.4.1态学简介数学形态学图像处理的基本思想是利用结构元素来收集图像的信息。当该结构元素在图像中不断移动时,便可以考察图像各个部分之间的相互关系,从而了解图像各个部分的结果特征。数学形态学的基本运算有腐蚀、膨胀、开启和闭合。设为二维欧几里德空间,A为图像矩阵,B为结构元素矩阵,是欧式空间中的一点。数学形态学运算是用B对A进行操作。而实际上,结构元素本身也是一种图像矩阵。几种图像操作的定义:平移:定义为图像A被b平移后的结果,表示为,其中,中所有的元素是A中对应元素平移到以b点为原点的坐标系内的结果。反射:定义为图像A经图像原点反射的结果,表示为平移和反射着两个操作,可以定义数学形态学中的两个基本操作,即膨胀(Dilation)和腐蚀(Erosion),其数学表达式如下:膨胀运算的数字表达式:(3-2)腐蚀运算的数字表达式:(3-3)开运算:A对B的开,即A被B进行开运算的结果定义为:(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函数实现二值图像的腐蚀运算,其语法格式为:IM1=Imerode(IM,SE)返回灰度、二值图像和压缩二值图像IM进行腐蚀的图像。图11灰度图像与腐蚀图像2.5图像变换图像变换在图像处理和图像分析中占有重要地位。图像变换就是将图像转换到变换域,如频率域,进行图像处理和图像分析。这给图像数据压缩、特征提取、图像去噪等带来了很大的方便,从而使后面的处理运算变得简单。在数字图像处理中,输入图像和输出图像通常都是二维的,一般表示成二维数字矩阵,可以直接叫二维傅里叶变换、二维DFT、二维FFT。2.5.1快速傅立叶变换离散傅立叶变换所需要的乘法和加法的操作次数N是2的幂的时候,其计算效率高,使用起来简单方便。其算法思想是:先对原图进行转置,按行对转置后的图像矩阵作一维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离散余弦变换离散余弦变换(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的大小也是一样的。idct2是dct2的反变换,其语法格式与dct2相同。2.6小结本章主要介绍了数字图像处理的主要内容,主要有基本概念、图像增强、MATLAB图像处理、MATLAB的二值图像操作、图像变换。3.图像分析——边缘检测在某些情况下,为了辨别和分析图像,需要对图像进行分离提取的操作,在此基础上可进一步进行图像的识别与分析。3.1边缘检测简介边缘检测是图像处理和计算机视觉中的基本问题,边缘是指其周围像素灰度变化不连续的那些像素的集合,边缘广泛从在于物体与背景之间、物体与物体之间,因此它是图像分割所依赖的重要特征。边缘检测的目的是标识数字图像中亮度变化明显的点。图像边缘有方向和幅值两个特征,通常沿边缘的走向灰度变换平缓,垂直于边缘走向的像素灰度变换剧烈。根据灰度变换的特点,常见的边缘分为:凸缘型、阶跃型、房顶型。凸缘型:其边缘的灰度值上升与下降都比较缓慢。阶跃型:其边缘处于图像中两个具有不同灰度值的相邻区域之间。房顶型:其主要对应细线条的灰度值变换区域。3.2边缘检测方法由于图像的边缘是以灰度变化出现的,因此,可以通过计算图像灰度的不连续性来增强图像和进行图像检测边缘。边缘检测的方法主要有以下4种。(1)空域微风算子,即传统的边缘检测方法。图像的边缘是灰度变化最剧烈的地方,其对应的连续情况就是函数梯度较大的地方,所以研究图像的边缘的一种方法就是求导算子。对图像中的各个像素点进行一阶或二阶微分来确定边缘像素点。一阶微分图像的阈值处对应着图像的边缘点;二阶微分图像的过零点对应着图像的边缘点。(2)拟合曲面(3)小坡多尺度边缘检测随着图像边缘检测技术的提高,小破分析得到迅速房展并开始用于边缘检测。作为研究非平稳信号的一种有利工具,小波分析在边缘检测方面起到了很大的作用。(4)基于数学形态学的边缘检测数学形态学是一种对二值图像进行操作的一种非线性数学方法,其运算是物体形状集合与结构元素之间的相互作用,对边缘方向不敏感,在图像处理中得到了广泛的应用。同时在数字图像处理方面还具有简单性和严谨性,能很好的描述图像的形态特征。因此,将数学形态学用于边缘检测,还可以滤除噪声,能保留图像中原有的细节信息,是边缘检测技术的一个重大突破。3.3常见的一阶边缘检测算子梯度算子可以增强图像边缘信息,这对图像边缘检测起到了重要作用。梯度对应的是一阶导数,梯度算子是一阶导数算子。对一个图像f(x,y)函数,它在位置(x,y)处的梯度可定为梯度算子:G[f(x,y)]=(3-6)梯度算子是图像处理中最常用的一阶微分算法,是(3-11)中f(x,y)表示图像的灰度值,图像梯度最重要的性质是梯度方向,是在图像灰度最大变化率上,它恰是可以反映出图像边缘上的灰度变化。其定义如下:(3-7)以上两式中偏导数需要对每个像素位置计算,而实际上数字图像中求导数是可以用一阶差分代替一阶微分。=f(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)表示处理后的点的灰度值。求梯度幅值时对于平方和及开放运算,可以用两个分量的绝对值之和来表示。3Roberts算子Roberts边缘算子又称为梯度交叉算子,其思想是利用局部差分算子寻找边缘的算子。梯度幅值计算近似方法如表1所示(i,j)(i,j+1)(i+1,j)(i+1,j+1)表1Roberts算子梯度幅值计算示意图(i,j)为当前像素的位置,其计算公式如下:G(i,j)=(3-10)它是由两个2*2模板组成。用卷积模板表示如下:G(i,j)=(3-11)式中,Gx=;Gy=;标注.的是当前像素的位置。3.3.2Sobel算子Sobel算子边缘检测的效果不好很好。Sobel算子梯度幅值计算如表2所示。(i,j)为当前的位置点,梯度幅值计算公式如下:表2Sobel算子中各个点的像素点的关系图(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梯度幅值计算示意图因此式(3-12)则可以简单记为:(3-13)式中c=2。用卷积模板来实现:(3-14)式中,;。Sx是水平模板,对水平边缘响应最大;Sy是垂直模板,对垂直边缘响应最大。图像中的每个点都用这两个模板做卷积,两个模板卷积的最大值作为该店的输出值。其运算结果是一副边缘幅度图像。这一算子把重点放在接近于模板中心的像素点。因此Sobel算子是边缘检测中最常用的算子之一。Sobe梯度算子是先做加成权平均,在求微分,最后求梯度,即用式(3-12)、式(3-13)和式(3-14)来实现的。3.3.3Prewitt算子Prewitt算子用卷积模板来描述:(3-15)式中,前者为水平模板,后者为垂直模板。图像中的每个点用这两个模板进行卷积,取最大值作为输出值,最终产生一副边缘幅度图像。3Kirsch算子Kirsch算子使用8个模板来确定梯度的幅值和方向,故又称为方向算子,通过一组模板分别计算不同方向上的拆分值,取其中最大的值作为边缘强度,而将与之对应的方向作为边缘的方向。表43*3子图像示意图(3-16)式中(3-17)式(3-17)中的下标超过7就用8去除并取余数。3.4常用的二阶边缘检测算子3Laplacian算子Laplacian算子是不依赖于边缘方向的二阶微分算子,是常用的二阶导数算子。对一个连续函数f(x,y),它在位置(x,y)上的Laplacian表式式为:(3-18)对于数字图像来说,计算函数的拉普拉斯值也可以借助各种模板来实现。拉普拉斯模板的基本要求是对应中心像素的系数应该是正的,而对应于中心像素邻近像素的系数应该是负的,且它们的和应该是零。其可以简单表示为:(3-19)或者(3-20)也就是说,拉普拉斯算子常用两种模板来进行检测,其模板分别见图(a)和图(b).模板(a)模板(b).拉普拉斯算子是一个标量而不是向量,具有线性特性和旋转不变,即各向同性的性质,常常被用在图像处理的过程中。由于拉帕拉斯算子是一种二阶导数算子,可在边缘处产生一个零交叉。因此,经过拉普拉斯算子滤波过的图像对噪声相当敏感,也可产生双像素宽的边缘,且不能提供边缘方向信息,拉普拉斯算子主要用于已知边缘像素后确定该像素是在图像的暗区或明区一边。3LOG(Laplacian-Gauss)算子当使用一阶导数的边缘检测算子时,如果所求的一阶导数高于某一阈值,则确定该点为边缘点,这样便会导致检测的边缘的太多。一种更好的办法就是求梯度局部最大值对应的点,并认为他们是边缘点。对其去除一阶导数中的非局部最大值,可以检测到较为精确的边缘点。一阶导数的局部最大值对应着二阶导数的零交叉点,通过找图像增强的二阶导数的零交叉点就可以确定比较精确的边缘点。3Canny算子Canny算子检测边缘的3个准则:信噪比准则信噪比越大,提取的边缘质量越高。信噪比SNR的定义为:(3-21)式中,G(x)代表边缘函数;h(x)代表宽度为的滤波器的脉冲响应;代表高斯噪声的均方差。定位精度准则边缘定为精度L定义为:(3-22)式中,和分别表示和的导数,越大表明定为精度越高。(3)单边缘相应准则(3-23)式中,为的二阶导数。将3个准则相结合可以获得最优的检测算子。图13边缘检测的各种算法图例3.5小结本章主要概述了边缘检测,介绍了边缘检测的方法。主要的有一阶边缘检测算子和二阶边缘检测算子。4.总结本文应用了一些函数对数字图像进行了一些操作,相应的也获得了一定的处理结果。尤其对图像进行各种算子的边缘检测将得到不同的图像。在对数字图像进行处理的过程中,并不是每一次处理都获得预期的效果,主要是对各个函数的功能和各种算子的算法掌握掌握不够,对一幅图像由模糊到清晰的处理过程不熟悉,同时,加之时间较紧的情况下,没有足够的时间去研究如何清晰的获得一幅图像的具体步骤,从而导致最终的图像效果不是很好。使得最终的图像与预期的结果相差较大。希望能够通过再学习,对图像处理的过程有一个比较完整的了解,能对边缘检测的各种算子有进一步的研究,使处理后的图像越来越接近预期的图像。参考文献[1]龚声蓉,刘纯平,王强数字图像处理与分析,北京:清华大学出版社,2006[2]赫文化MATLAB图形图像处理应用教程,北京:中国水利水电出版社,2004[3]陈扬,陈荣娟,郭颖辉MATLAB6.x图形编辑与图像处理,西安:西安电子科技大学,2002[4]刘慧颖MATLABR2007基础教程,北京:清华大学出版社,2008[5]常巍,谢光军,黄朝峰MATLABR2007基础与提高,北京:电子工业大学出版社[6]刘井元,李玉良,张传楷《基于MATLAB的数字图像边缘检测技术》,[中国科技论文在线]附录附录1.文件夹pictur4的程序及运行结果程序:I=imread('5.jpg');%读入图像figure,imshow(I),title('原图');I1=imresize(I,[200,255],'nearest');%图像缩小figure,imshow(I1),title('缩小图');I2=imrotate(I1,40,'nearest');%图像旋转figure,imshow(I2),title('40°旋转图');figure;I3=imcrop(I1);%图像剪切I4=imcrop(I1,[10080,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.40.8]);%灰度图像亮度调整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=imnoise(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(I7),h);%高斯噪声图的均值滤波K1=medfilt2(I7);%高斯噪声图的中指滤波subplot(2,2,1),imshow(B,[]),title('加椒盐噪声均值滤波后的图');subplot(2,2,2),imshow(K),title('加椒盐噪声中指滤波后的图');subplot(2,2,3),imshow(B1,[]),title('加高斯噪声均值滤波后的图');subplot(2,2,4),imshow(K1),title('加高斯噪声中指滤波后的图');figure;BW1=edge(H,'sobel');%用"sobel"进行边缘检测BW2=edge(H,'roberts');%用“roberts”进行边缘检测BW3=edge(H,'prewitt');%用“prewitt”进行边缘检测BW4=edge(H,'log');%用“log”进行边缘检测BW5=edge(H,'canny');%用“canny”进行边缘检测h=fspecial('gaussian',5);BW6=edge(H,'canny');subplot(2,3,1),imshow(BW1),title('sobleedgecheck');subplot(2,3,2),imshow(BW2),title('robertsedgecheck');subplot(2,3,3),imshow(BW3),title('prewittedgecheck');subplot(2,3,4),imshow(BW4),title('logedgecheck');subplot(2,3,5),imshow(BW5),title('cannyedgecheck');subplot(2,3,6),imshow(BW6),title('gaussian&cannyedgecheck');I=imread('5.jpg');%读入图像figure,imshow(I),title('原图');I1=imresize(I,[200,255],'nearest');%图像缩小figure,imshow(I1),title('缩小图');I2=imrotate(I1,40,'nearest');%图像旋转figure,imshow(I2),title('40°旋转图');figure;I3=imcrop(I1);%图像剪切I4=imcrop(I1,[10080,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.40.8]);%灰度图像亮度调整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=imnoise(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);%椒盐噪声图
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《磨床操作知识》课件
- 工业机器人模拟题含参考答案
- 养老院老人生活娱乐活动组织人员管理制度
- 养老院老人家属沟通联系制度
- 《离散PID控制器》课件
- 2024年水电工程绿化养护合同范本3篇
- 授权委托书保证协议书(2篇)
- 《人力资源考核手册》课件
- 2025年齐齐哈尔货运从业资格仿真考题
- 2025年宣城道路货运驾驶员从业资格证考试题库完整
- 2024-2025学年上学期广州初中地理七年级期末模拟卷1
- 护理亮点工作展示
- 2024年河南省中考物理试题解析版
- 2024年非高危行业生产经营单位主要负责人及安全管理人员安全生产知识和管理能力试题及答案
- 《妇产科学》课件-15.3绝经综合征
- 《营销管理与分析》课件
- 挖机承包土地开挖合同2024年
- DB14-T 2862-2023 柿树容器大苗培育技术规程
- 2024年湖南省中考英语真题卷及答案解析
- 2024年山东省公务员录用考试《行测》真题及解析
- 储能科学与工程基础知识单选题100道及答案解析
评论
0/150
提交评论