版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1 基于 matlab 的数字图像分析与边缘检测摘 要:图像处理是用计算机对图像进行一系列的操作,一般操作是先将图像数字化,即易于获得某种预期结果的技术,其中边缘检测是图像处理中必不可少的一步,采用微分算子检测边缘是最常用的,也是处理效果比较好的一种。 matlab 图像处理工具箱提供了边缘检测(edge)函数,它能利用多种算子进行图像的边缘检测,语言结构简单,本文主要介绍了数字图像处理主要研究领域中边缘检测的方法,并利用matlab 图像处理工具箱提供的函数处理图片,对图像进行边缘检测,给出了各种算子检测边缘的结果并进行相互比较。关键字:图像处理, matlab ,边缘检测abstracti
2、mage 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 user s g
3、uide, 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 employe
4、d to perform edge detection for image so that the program and processing result are obtained. 2 key words: image processing , matlab , edge detection 目 录基于 matlab的数字图像分析与边缘检测 . 11.1 课题概述 . 11.2 课题背景知识 . 21.2.1 ma tlab简介 . 21.2.2 数字图像简介. 21.3 目的意义 . 31.4 小结 . 32. 数字图像处理 . 42.1 基本概念 . 42.2 图像增强 . 52.2
5、.1 直接灰度调整. 52.2.2 直方图处理. 62.2.3 图像滤波 . 72.3 matlab图像处理 . 82.3.1 ma tlab中的图像文件格式. 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 常见的一阶
6、边缘检测算子. 193.3.1 roberts 算子 . 203.3.2 sobel 算子 . 203.3.3 prewitt 算子 . 223.3.4 kirsch 算子 . 223.4 常用的二阶边缘检测算子 . 233.4.1 laplacian 算子 . 233.4.2 log (laplacian-gauss )算子 . 243 3.5 小结 . 264总结 . 27参考文献 . 28附录 . 291 1. 绪论1.1 课题概述图像是人类获取和交换信息的主要来源,因此,图像处理的应用邻域涉及到人类生活的方方面面。图像的研究方法和手段根据对图像作用域的不同,可以分为空余处理方法和变换域
7、处理方法。空余处理方法有两大类:邻域处理法和点处理法。变换域处理法有:傅立叶变换、离散余弦变换。图像处理的目的是改善图像的质量,以人为对象以改善人的视觉效果为目的。图像处理是用计算机对图像进行一系列的操作,一般操作是先将图像数字化,即易于获得某种预期结果的技术。常用的图像处理方法有图像增强、复原、编码、压缩、分割等。其中边缘检测是图像处理中必不可少的一步,采用微分算子检测边缘是最常用的, 也是处理效果比较好的一种。 matlab 图像处理工具箱提供了边缘检测( edge)函数,它能利用多种算子进行图像的边缘检测,语言结构简单。本文主要介绍了数字图像处理主要研究领域中边缘检测的方法,并利用mat
8、lab 图像处理工具箱提供的函数处理图片,对图像进行边缘检测, 给出了各种算子检测边缘的结果并进行相互比较。在现阶段,图像的处理方法很多,其中,边缘检测是很重要的一种处理方法,它在图像处理领域中占有重要地位,图像的边缘是集中了图像大部分的信息,图像边缘的确定与提取对于整个图像场景的识别与理解非常重要。在现实生活中,图像处理的问题一直是个焦点问题,在软件matlab 处理图像的领域中,图像的各种处理易于实现,易于得到预期的结果。本课题阐述2 了数字图像在一些应用领域中的处理及处理前后的对比,包括各种算子的边缘检测,从而实现对图像的分析及处理。1.2 课题背景知识1.2.1 matlab 简介ma
9、tlab 是 mathworks 公司用 c 语言开发的软件,其中的矩阵算法来自 linpack 和 eispack 的课题研究成果。 matlab 是一种将数据结构、变成特征和图形用户界面完美的结合到一起的软件。其核心是数组和矩阵。matlab的特点有:高级科学计算语言,用于线性代数统计、的集成管理环境,算法设计开发的交互式工具, 创建自定义工程师图形界面的工具,2-d 和 3-d 的数据可视化, 与第三方算法开发工具c/c+、fortran、java、com 、microsoft excel集成开发基于matlab 的算法。matlab 的基本功能:语言编程功能、编译功能、自动代码生成功能
10、、图像用户界面开发功能、数学计算功能、图形化显示功能、simulink 建模仿真功能。1.2.2 数字图像简介图像是对客观对象的一种相似性的、生动的描述或表示。按图像空间坐标和明暗程度的连续性可分为数字图像和模拟图像。数字图像计算机可以直接处理,其空间坐标和灰度都不连续,是用离散的数字来表示图像。而模拟图像的坐标和灰度都是连续的,故模拟图像无法用计算机直接进行处理。图像处理的目的是改善图像的质量,它以人为对象,以改善人的视觉效果。图像处理中,输入的是质量低的图像,输出的是改善质量后的图像,常用的图像处理方法有图像变换、增强、重建、复原、编码、压缩等。3 1.3 目的意义图像是对客观对象的一种相
11、似性的、生动的描述或表示。对图像进行一系列的操作以便达到预期的图像结果。现阶段数字图像处理技术的迅速发展为人类带来了巨大的经济社会效益,大到应用卫星遥感进行的全球环境气候监测,小到指纹识别技术在安全领域的应用。可以说,数字图像处理技术已经融入到科学研究的各个领域。边缘检测是数字图像处理中最重要的一种技术,图像物体中边缘表现为灰度变化,边缘广泛存在于物体与背景之间、物体与物体之间。1.4 小结本章重点介绍了课题简介、matlab软件的特点与功能、数字图像简介和课题的目的意义。4 2. 数字图像处理2.1 基本概念二值图像:也叫黑白图像,就是图像像素只存在0,1 两个值。一个二值图像是纯黑白的。
12、每一个像素值将取0 或 1 中的一个值,通常用 0 表示黑,用 1 表示白。灰度图像 :灰度图像是包含灰度级的图像。与二值图像不同,灰度图像的像素并不是只有0、1 两个量化级数,而是具有多个量化级数,如64 级、256 级等。当像素灰度级用8bit 表示时,图像的灰度级就是,每个像素的取值就是 256 中灰度中的一种,即每个像素的灰度值为0255 中的一个。通常,用 0 表示黑,用 255 表示白,从到亮度逐渐增加。灰度图像只有亮度信息而没有色彩信息。通常所说的黑白图像,其实包含了黑白之间的所有灰度色调。彩色图像:图像中r 代表红色, g 代表绿色, b 代表蓝色。 rgb 色彩模式是用 rg
13、b 模型为图像中的每一个像素的rgb 分量分配一个 0255 范围内的强度值。白色的都为255;黑色的都为0;这类图像不适用单独的调色板,每一个像素的颜色有存储在相应位置上的红,绿,蓝颜色共同决定。图像数字化:把连续的图像用一组数字来表示,便于计算机分析处理。图像增强:对图像的某些特征进行强调或尖锐化而不增加图像的相关数据。图像压缩:在满足一定的图像质量要求下对图像进行编码,可以压缩表示图像的数据。图像分析:详细研究并描述一幅图像不同部分的特征和相互关系。5 图像恢复:把模糊或褪色的图像尽可能的复原。2.2 图像增强图像增强是指按特定的需要突出一幅图像中的某些信息,同时消弱或去除某些不需要的信
14、息的处理方法。其主要有两个目的:一是增强有用信息,抑制无用信息,从而改善图像的视觉效果;二是有利于人工和机器分析。2.2.1 直接灰度调整(1)增强对比度增强对比度实际是增强原图的各部分的反差。实际中经常是通过增强原图中某两个灰度值之间的动态范围来实现的。matlab 图像处理工具箱中用函数进行灰度线性增强。其语法格式为:i1=imadjust(i,low high,bottom top,gamma )对图像使用灰度线性增强, 使原图因颜色灰暗不能体现细节的地方能够清晰的体现出来。图 1 亮度调节前后图像的显示效果比较(2) 图像求反对图像求反是将图像的灰度值反转, 就是使原图像的黑变白, 使
15、白变黑。具体的变换就是图像中每个像素的灰度值根据变换曲线进行映射。(3)灰度切分6 灰度切分的目的与增强对比度比较相似,即将某个灰度值范围变得比较突出;所不同的是,灰度切分将所要突出的是灰度范围变换成较高的灰度值,而将其余的灰度值变换成较低的灰度值。2.2.2 直方图处理为改变图像整体偏暗,或整体偏亮,或者灰度层次不丰富的情况,可将图像的直方图通过一定的函数处理为均衡的直方图,使直方图不再偏于低端,或者不再偏于高端,而是变成比较均匀的分布,而这种技术就叫做直方图均衡化。直方图是对图像中每一灰度值出现频率的统计,可也描述为:()/kkp snn0,1,1kl(3-1)上式中,ks是图像 f(x,
16、y)的第 k 级灰度值,kn是中具有灰度值ks的像素的个数,n 是图像中像素的总数。()kp s给出了对ks出现频率的一个估计,所以一幅图像的直方图基本上可以描述图像的概貌。直方图反应的是一幅图像的灰度值的概率统计特征, 常用的方法有直方图均衡化技术和直方图规定化技术。(1)直方图均衡化其基本思想是把原图的直方图变换成均匀分布的形式,这样增强了像素灰度值的动态范围,从而达到了增强图像整体对比度的效果。matlab 图像处理工具箱提供了用于直方图均衡化的函数histeq,其语法格式为 : i2=histeq(i,n) i2,t=histeq(i, .) 7 式中,表示输出图像的灰度级数目,是一个
17、可选参数,默认值为64;j,t=histeq(i,.)表示返回将图像 i 的灰度直方图变换成图像j的直方图变换t。图 2 灰度调整后的图像与直方图(2)直方图规定化直方图均衡化的优点是能自动增强整个图像的对比度,但其具体的增强效果不容易控制,处理的结果总是得到全局均衡化的直方图。而在实际生活中,为了得到某种特定的形状,有时需要将直方图进行某种变换,从而有选择地增强某个灰度值范围的对比度。2.2.3 图像滤波图像的空间文理信息可以形象的反映出图像的大小、位置、和形状等特征,利用线性滤波技术可以对图像的某些纹理信息进行一定程度的增强,而去除其他的特征。线性滤波是一种邻域操作,其结果由滤波器系数与滤
18、波窗口扫描区域的相应像素值的乘积之和给出。滤波主要有两种:(1)线性滤波 ,它属于空余滤波平滑技术,主要采用邻域平均法,用于去除图像通过扫描得到的噪声颗粒。邻域平均法的主要思想是用几个像素灰8 度的平均值来代替某个像素。(2)中值滤波是一种常用的非线性平滑滤波器,其滤波原理是,中值滤波器的输出像素值是有邻域像素的中间值决定的,其滤波后产生的图像模糊较少,适合于消除图像的孤立噪声点。matlab图像处理工具箱提供了用于实现中值滤波的函数medifilt2 ,其语法格式为 : j=medifilt2(i1,m,n)其中,为指定滤波器窗口的大小,默认值为3*3,返回图像 i1 经滤波后的图像 j。图
19、 3 加入椒盐噪声后图像的均值滤波和中值滤波图 4 加入高斯噪声后图像的均值滤波和中值滤波2.3 matlab图像处理数字图像处理技术发展迅速,在实际上生活中起到了很大的作用,而matlab 对数字图像的处理很是方便,用相应的函数便可实现。9 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)tiff 格式。处理 1、4、 8、24 为非压缩图像,1
20、、 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 是图像的数据矩阵,
21、angle 是图像的旋转角度, method可以是10 nearest 、bicubic 或 bilinear。nearest (近邻插补运算):输入像素的赋值为当前点的像素点。bicubic(双立方插补运算):输入像素的赋值为4*4 矩阵所包含有效点的加权平均值。bilinear(双线性插补运算):输入像素的赋值为2*2 矩阵所包含有效点的加权平均值。图 5 旋转图(2)图像的剪切imcrop 函数可以实现对图像的剪切操作。 该操作剪切的是图像中的一个矩阵子图,用户可以通过参数指定这个矩形四个顶点的坐标,也可以交互的用鼠标选取这个操作。其语法格式为: x1=imcrop(x,map): 对索
22、引图像进行交互式的剪切。i1=imcrop(i): 对灰度图像进行交互式的剪切。11 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有三种: near
23、est 、bilinear 和 bicubic。图 7 缩小图12 2.3.4 图像类型的转换有时对图像进行图像类型转换以方便某些处理,提供了三种基本类型的图像转换。(1) rgb 图像转换为灰度图像的函数rgb2gray(),其语法格式为:i=rgb2gray(rgb)前者表示将输入的rgb 图像转换为灰度图i. 图 8 rgb 图像转换为灰度图后的图(2) rgb 图像转换为索引图像的函数rgb2ind(),其语法格式为:x,map=rgb2ind(rgb):直接将图像转换为具有颜色图map的矩阵 x(3)转换为二值图像的函数im2bw() 这一函数通过阈值化方法将索引、灰度和图像转化为二
24、值图像。其语法格式主要:bw=im2bw(i,level): 灰 灰 度 图 像i转 换 为 二 值 图 像bw=im2bw(rgb,level) :将 rgb 图像转换为二值图像13 图 9 将灰度图像和 rgb 图像转换为二值图像后的图(3)索引图像转换为灰度图像的函数ind2grap,其语法格式为:i=ind2grap(x,map) 将具有颜色图 map的索引图像 x 转换为转换为灰度图像i,x 可以是双精度型或 unit8 型,i 是双精度型 . 2.4 matlab的二值图像操作二值图像的处理过程相对简单,而数学形态学的处理主要是二值图像。2.4.1 态学简介数学形态学图像处理的基本
25、思想是利用结构元素来收集图像的信息。当该结构元素在图像中不断移动时,便可以考察图像各个部分之间的相互关系,从而了解图像各个部分的结果特征。数学形态学的基本运算有腐蚀、膨胀、开启和闭合。设为二维欧几里德空间, a 为图像矩阵, b 为结构元素矩阵,b是欧式空间中的一点。数学形态学运算是用b 对 a 进行操作。而实际上,结构元素本身也是一种图像矩阵。几种图像操作的定义:平移:ba定义为图像 a 被 b 平移后的结果,表示为baab aa,其14 中,中ba所有的元素是a 中对应元素平移到以b 点为原点的坐标系内的结果。反射:a定义为图像 a 经图像原点反射的结果,表示为aa aa平移和反射着两个操
26、作,可以定义数学形态学中的两个基本操作,即膨胀(dilation) 和腐蚀(erosion),其数学表达式如下:膨胀运算的数字表达式:,xabab aa bbxbaa(3-2)腐蚀运算的数字表达式 : zbabzbaa(3-3)开运算: a 对 b 的开,即 a 被 b 进行开运算的结果定义为:a ba bb(3-4)即 a 先被 b 腐蚀,再被 b 膨胀的结果。闭运算:对的闭运算定义为:a babb?(3-5)即 a 先被 b 膨胀,后再被 b 腐蚀的结,通常,开运算用来删除图像中的小分支,可以使图像缩小;闭运算用来填补图像中的空穴,可以使图像放大;而腐蚀和膨胀运算具有平移不变形,对图像 a
27、 的腐蚀和膨胀的运算结果只取决于 a 与 b 的结构,而与 a 的位置无关。2.4.2 二值数学形态学的运算函数dilate 函数实现二值图像的膨胀运算,其语法格式为:bw=dilate(bw1,se,.,n)返回图像 bw1 经过结构元素 se 膨胀 n次后的图像,这里se为结构元素。15 图 10 二值图像与腐蚀图像imerode函数实现二值图像的腐蚀运算,其语法格式为:im1=imerode (im,se) 返回灰度、二值图像和压缩二值图像im 进行腐蚀的图像。图 11 灰度图像与腐蚀图像2.5 图像变换图像变换在图像处理和图像分析中占有重要地位。图像变换就是将图像转换到变换域,如频率域
28、,进行图像处理和图像分析。这给图像数据压缩、特征提取、图像去噪等带来了很大的方便, 从而使后面的处理运算变得简单。在数字图像处理中,输入图像和输出图像通常都是二维的,一般表示成二维数字矩阵,可以直接叫二维傅里叶变换、二维dft、二维 fft。2.5.1 快速傅立叶变换16 离散傅立叶变换所需要的乘法和加法的操作次数n 是 2 的幂的时候,其计算效率高,使用起来简单方便。其算法思想是:先对原图进行转置,按行对转置后的图像矩阵作一维fft,将此变换所得的中间矩阵在转置,在按行对转置后的中间矩阵作一维fft,最后得到的就是二维fft。matlab图像处理工具箱提供了以下处理图像的快速傅立叶变换的函数
29、;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)是图像压缩处理中应用较多的一种变换。它利用傅里叶变换的对称性,采用图像边界折叠操作将图像变换成为偶函数形式,17 然后对图像进行二
30、维傅里叶变换,变换后的结果将仅包含余弦项。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 小结本章主要介绍了数字图像处理的主要内容,主要有
31、基本概念、图像增强、matlab 图像处理、 matlab 的二值图像操作、图像变换。18 3. 图像分析边缘检测在某些情况下,为了辨别和分析图像, 需要对图像进行分离提取的操作,在此基础上可进一步进行图像的识别与分析。3.1 边缘检测简介边缘检测是图像处理和计算机视觉中的基本问题,边缘是指其周围像素灰度变化不连续的那些像素的集合,边缘广泛从在于物体与背景之间、物体与物体之间,因此它是图像分割所依赖的重要特征。边缘检测的目的是标识数字图像中亮度变化明显的点。图像边缘有方向和幅值两个特征,通常沿边缘的走向灰度变换平缓,垂直于边缘走向的像素灰度变换剧烈。根据灰度变换的特点,常见的边缘分为:凸缘型、
32、阶跃型、房顶型。凸缘型:其边缘的灰度值上升与下降都比较缓慢。阶跃型:其边缘处于图像中两个具有不同灰度值的相邻区域之间。房顶型:其主要对应细线条的灰度值变换区域。3.2 边缘检测方法由于图像的边缘是以灰度变化出现的,因此,可以通过计算图像灰度的不连续性来增强图像和进行图像检测边缘。边缘检测的方法主要有以下4种。(1)空域微风算子,即传统的边缘检测方法。图像的边缘是灰度变化最剧烈的地方,其对应的连续情况就是函数梯度较大的地方,所以研究图像的边缘的一种方法就是求导算子。对图像中的各个像素点进行一阶或二阶微分来确定边缘像素点。一阶微分图像的阈值处对应着图像的边缘点;二阶微分图像的过零点对应着图像的边缘
33、点。(2)拟合曲面19 (3)小坡多尺度边缘检测随着图像边缘检测技术的提高,小破分析得到迅速房展并开始用于边缘检测。作为研究非平稳信号的一种有利工具,小波分析在边缘检测方面起到了很大的作用。(4)基于数学形态学的边缘检测数学形态学是一种对二值图像进行操作的一种非线性数学方法, 其运算是物体形状集合与结构元素之间的相互作用,对边缘方向不敏感,在图像处理中得到了广泛的应用。同时在数字图像处理方面还具有简单性和严谨性,能很好的描述图像的形态特征。因此,将数学形态学用于边缘检测,还可以滤除噪声,能保留图像中原有的细节信息,是边缘检测技术的一个重大突破。3.3 常见的一阶边缘检测算子梯度算子可以增强图像
34、边缘信息,这对图像边缘检测起到了重要作用。梯度对应的是一阶导数,梯度算子是一阶导数算子。对一个图像f(x,y)函数,它在位置( x,y)处的梯度可定为梯度算子:gf(x,y)= 22(/)fy( f/x)(3-6) 梯度算子是图像处理中最常用的一阶微分算法,是(3-11)中 f(x,y) 表示图像的灰度值,图像梯度最重要的性质是梯度方向,是在图像灰度最大变化率上,它恰是可以反映出图像边缘上的灰度变化。其定义如下:( , )arctanfyfxx y(3-7) 以上两式中偏导数需要对每个像素位置计算,而实际上数字图像中求导数是可以用一阶差分代替一阶微分。fx=f(i,j+1)-f(i,j) (3
35、-8) fy=f(i,j)-f(i+1,j) 20 求梯度时对于平方和运算及开方运算,可以用两个分量的绝对值表示为:g(i,j)22(/)/fyfxfy( f/x)(3-9) 上式中, j 对应于 x 轴方向, i 对应于 y 轴方向。 f(x,y) 表示处理前的点的灰度值, g(x,y)表示处理后的点的灰度值。求梯度幅值时对于平方和及开放运算,可以用两个分量的绝对值之和来表示。3.3.1 roberts算子roberts 边缘算子又称为梯度交叉算子,其思想是利用局部差分算子寻找边缘的算子。梯度幅值计算近似方法如表1 所示表 1 roberts算子梯度幅值计算示意图(i,j)为当前像素的位置,
36、其计算公式如下:g(i,j)=( , )1,11,f i jfijfijf i ji(3-10)它是由两个 2*2 模板组成。用卷积模板表示如下:g(i,j)=gxgy(3-11)式中, gx=1.001;gy=0.110;标注.的是当前像素的位置。3.3.2 sobel算子sobel算子边缘检测的效果不好很好。 sobel算子梯度幅值计算如表2 所示。 (i,j)为当前的位置点,梯度幅值计算公式如下:(i,j) (i,j+1) (i+1,j) (i+1,j+1) 21 表 2 sobel算子中各个点的像素点的关系图(i-1,j-1)(i-1,j) (i-1,j+1) (i,j-1) (i,j
37、) (i,j+1) (i+1,j-1) (i+1,j) (i+1,j+1) ,g i j= i1,j12i, j1i1,j1i1,j12i, j1i1,j1ffffff+i1,j12 i1,j)i1,j1i1, j12i1,ji1,j1ffffff(3-12)将其进行简化,表2 中的坐标对应记为如表3 所示的符号。表 3 梯度幅值计算示意图0a1a2a3a, i j4a5a6a7a因此式( 3-12)则可以简单记为:( , )234078012654g i jacaaacaaacaaacaa(3-13)22 式中 c=2。用卷积模板来实现:( , )g i jsxsy(3-14)式中,1012
38、0.2101sx;12100.0121sy。sx 是水平模板,对水平边缘响应最大 ;sy 是垂直模板,对垂直边缘响应最大。图像中的每个点都用这两个模板做卷积,两个模板卷积的最大值作为该店的输出值。其运算结果是一副边缘幅度图像。这一算子把重点放在接近于模板中心的像素点。因此 sobel算子是边缘检测中最常用的算子之一。sobe 梯度算子是先做加成权平均,在求微分,最后求梯度,即用式(3-12) 、式( 3-13)和式( 3-14)来实现的。3.3.3 prewitt算子prewitt 算子用卷积模板来描述:( , )g i jpxpy(3-15)式中,101101101px前者为水平模板,111
39、000111py后者为垂直模板。图像中的每个点用这两个模板进行卷积,取最大值作为输出值,最终产生一副边缘幅度图像。3.3.4 kirsch算子kirsch 算子使用 8个模板来确定梯度的幅值和方向, 故又称为方向算子,通过一组模板分别计算不同方向上的拆分值,取其中最大的值作为边缘强度,而将与之对应的方向作为边缘的方向。23 表 4 3*3 子图像示意图,max 54:0,1.,7kkgistk(i,j)=max(3-16)式中12347.kkkkkkkksaaataaa(3-17)式(3-17)中的下标超过7 就用 8 去除并取余数。3.4 常用的二阶边缘检测算子3.4.1 laplacian
40、算子laplacian 算子是不依赖于边缘方向的二阶微分算子,是常用的二阶导数算子。对一个连续函数f(x,y),它在位置 (x,y)上的 laplacian 表式式为 : 22222,( , ),fx yf x yfx yxy(3-18 )对于 数 字 图像来 说,计 算函 数 的 拉普 拉 斯 值也 可 以 借助 各 种 模板 来 实现 。拉 普 拉 斯模 板 的 基本 要 求 是对 应 中 心像 素 的 系数 应 该 是正 的 ,而 对 应于 中 心 像素 邻 近 像素 的 系 数应 该是 负的 ,且 它 们 的 和应 该 是零 。其 可 以简 单 表示 为 :0a1a2a3a, i j4
41、a5a6a7a24 ( , )4,1,1,1,1g i jfi jfijfijf i jfi j(3-19 )或者8,1,11,1( , )1,1,1,111,1,1fi jfijfijg i jfijfijfijfijf i jfi j,(3-20 )也就 是 说 ,拉 普 拉斯 算 子 常用 两 种 模板 来 进 行检 测 ,其 模 板 分别 见 图(a) 和图 (b). 010141010111181111模 板 (a)模板 (b). 拉普 拉 斯 算子是 一个标 量 而 不是 向 量 ,具 有线 性 特 性和 旋 转 不变 ,即 各 向 同性 的 性 质,常 常 被用 在图像 处 理
42、的过 程 中 。由 于 拉 帕拉 斯 算子 是一 种 二阶 导 数算 子 , 可 在边 缘处 产生一 个零交 叉 。 因 此,经 过 拉普 拉斯 算 子滤 波 过的 图 像 对噪 声 相 当敏 感 ,也 可 产生 双 像 素宽 的 边缘 ,且 不 能 提 供边 缘 方 向信 息 ,拉 普 拉 斯算 子 主 要用 于 已 知边 缘 像素 后确 定 该像 素 是在 图 像 的暗 区 或 明区 一 边 。3.4.2 log (laplacian-gauss )算子当使用一阶导数的边缘检测算子时,如果所求的一阶导数高于某一阈值,则确定该点为边缘点,这样便会导致检测的边缘的太多。一种更好的办法就是求梯度
43、局部最大值对应的点,并认为他们是边缘点。对其去除 一 阶导 数 中的 非局 部 最大 值 ,可 以 检测 到 较 为精 确的 边缘 点 。一 阶 导 数的 局 部最 大值 对 应着 二 阶导 数 的 零交 叉 点 ,通 过找 图 像 增强 的 二 阶25 导 数 的零 交叉 点 就可 以 确定 比 较 精确 的 边 缘点 。3.4.3 canny算子canny 算子 检 测 边缘 的 3 个准 则 :(1)信噪 比 准 则信噪 比 越 大,提 取的边 缘 质 量越 高 。 信噪 比 snr 的 定义 为 :2() ( )( )wwwwgx h x dxsnrhx dx(3-21 )式中 ,g(
44、 x)代 表 边缘 函 数 ;h(x) 代 表宽 度为 的 滤 波器 的 脉 冲响 应 ;代表 高斯 噪声 的 均 方差 。(2)定位 精 度 准则边缘 定 为 精度 l 定 义 为:2()( )( )wwwwgx h x dxlhx dx(3-22 )式中 ,( )g x和( )h x分 别表 示( )g x和( )h x的 导 数,越 大表明 定为 精 度越 高。(3) 单 边 缘相 应 准 则122( )()( )wwhx dxd fhx dx(3-23 )式中 ,( )hx为( )h x的二 阶 导 数。将 3 个 准 则相结 合 可以 获 得 最优 的 检 测算 子 。26 图 13
45、 边 缘检 测 的 各种 算 法 图例3.5 小结本章 主 要 概述了 边缘检 测 ,介 绍 了 边缘 检 测 的方 法 。主 要 的 有一 阶 边缘 检测 算 子和 二 阶边 缘 检 测算 子 。27 4总结本文应用了一些函数对数字图像进行了一些操作,相应的也获得了一定的处理结果。尤其对图像进行各种算子的边缘检测将得到不同的图像。在对数字图像进行处理的过程中,并不是每一次处理都获得预期的效果,主要是对各个函数的功能和各种算子的算法掌握掌握不够,对一幅图像由模糊到清晰的处理过程不熟悉,同时,加之时间较紧的情况下,没有足够的时间去研究如何清晰的获得一幅图像的具体步骤,从而导致最终的图像效果不是很
46、好。使得最终的图像与预期的结果相差较大。希望能够通过再学习,对图像处理的过程有一个比较完整的了解,能对边缘检测的各种算子有进一步的研究,使处理后的图像越来越接近预期的图像。28 参考文献1 龚声蓉,刘纯平,王强数字图像处理与分析,北京:清华大学出版社,2006 2 赫文化 matlab 图形图像处理应用教程,北京:中国水利水电出版社,2004 3 陈扬,陈荣娟,郭颖辉matlab6.x 图形编辑与图像处理,西安:西安电子科技大学,2002 4 刘慧颖 matlabr2007 基础教程,北京:清华大学出版社,2008 5 常巍,谢光军,黄朝峰matlabr2007 基础与提高,北京:电子工业大学
47、出版社6 刘井元,李玉良,张传楷基于 matlab 的数字图像边缘检测技术, 中国科技论文在线 29 附录附录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(i
48、1,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);%灰度图像亮度调整figure,imshow(i5),title(亮度调整图 ); subplot(1,2,1),imshow(h),title(灰度图 ); subplot(1,2,2),imshow(
49、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(灰度图 ); 30 sub
50、plot(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=m
51、edfilt2(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
52、(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(soble edge check); subplot(2,3,2),imshow(bw2),title(roberts edge check); subplot(2,3,3),imshow(bw3),title(prewitt edge check); sub
53、plot(2,3,4),imshow(bw4),title(log edge check); subplot(2,3,5),imshow(bw5),title(canny edge check); subplot(2,3,6),imshow(bw6),title(gaussian&canny edge check); i=imread(5.jpg);%读入图像31 figure,imshow(i),title(原图); i1=imresize(i,200,255,nearest);%图像缩小figure,imshow(i1),title(缩小图 ); i2=imrotate(i1,40
54、,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);%灰度图像亮度调整figure,
55、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
56、=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(加高斯噪声后的图 ); 32 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(
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 护理实践中的健康教育与患者教育
- 护理风险利益相关者管理
- 招贤纳士高校宣讲会邀请函7篇范本
- 项目交接进展汇报函(3篇)
- 6-O-DMTr-2-O-Me-5-homo-A-Bz-3-CE-phosphoramidite-生命科学试剂-MCE
- 能源行业能源管理与节能减排实施方案
- 老年人护理营养评估方法
- 企业文化传播管理规范承诺书5篇
- 潮流产业成长承诺函(6篇)
- 6-9-Dichloro-2-methoxyacridine-生命科学试剂-MCE
- 政策研究报告-以循环经济促进高质量发展
- 2026年及未来5年中国UPS电池行业市场全景监测及投资战略咨询报告
- 2025年新《煤矿安全规程》知识竞赛试题及答案
- 2026年通信安全员ABC证考试题库及答案
- 2026年药品经营质量管理规范培训试题及答案
- (2026春)部编版八年级语文下册全册教案(新版本)
- 2026年伊犁职业技术学院单招职业技能测试题库及答案详解(考点梳理)
- 中建施工升降机安拆专项施工投标方案技术标-含检查表(2025年)
- csco非小细胞肺癌诊疗指南(2025版)
- 2026春人教版(新教材)小学美术二年级下册《设计小名师》教学设计
- 国新控股(雄安)有限公司相关岗位招聘11人笔试参考题库及答案解析
评论
0/150
提交评论