毕业设计(论文)-基于MATLAB的数字图像与边缘检测.doc_第1页
毕业设计(论文)-基于MATLAB的数字图像与边缘检测.doc_第2页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

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

文档简介

1 基于 matlab 的数字图像分析与边缘检测 摘摘 要要: 图像处理是用计算机对图像进行一系列的操作,一般操作是 先将图像数字化,即易于获得某种预期结果的技术,其中边缘检测是图像处 理中必不可少的一步,采用微分算子检测边缘是最常用的,也是处理效果比 较好的一种。matlab 图像处理工具箱提供了边缘检测(edge)函数,它能利 用多种算子进行图像的边缘检测,语言结构简单,本文主要介绍了数字图像 处理主要研究领域中边缘检测的方法,并利用 matlab 图像处理工具箱提 供的函数处理图片,对图像进行边缘检测,给出了各种算子检测边缘的结果 并进行相互比较。 关键字关键字: 图像处理,matlab ,边缘检测 abstract image 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, 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 perform edge detection for image so that the program and processing result are obtained. 2 key words: image processing , matlab, edge detection 3 目目 录录 基于 matlab 的数字图像分析与边缘检测1 1.1 课题概述1 1.2 课题背景知识2 1.2.1 matlab 简介2 1.2.2 数字图像简介.2 1.3 目的意义3 1.4 小结3 2. 数字图像处理4 2.1 基本概念4 2.2 图像增强5 2.2.1 直接灰度调整.5 2.2.2 直方图处理.6 2.2.3 图像滤波.7 2.3 matlab 图像处理.8 2.3.1 matlab 中的图像文件格式9 2.3.2 图像类型.9 2.3.3 图像的几何操作.9 2.3.4 图像类型的转换.12 2.4 matlab 的二值图像操作.13 2.4.1 态学简介.13 2.4.2 二值数学形态学的运算函数.14 2.5 图像变换15 2.5.1 快速傅立叶变换.15 2.5.2 离散余弦变换.16 2.6 小结17 3. 图像分析边缘检测18 3.1 边缘检测简介18 3.2 边缘检测方法18 3.3 常见的一阶边缘检测算子19 3.3.1 roberts 算子.20 3.3.2 sobel 算子 .20 3.3.3 prewitt 算子22 3.3.4 kirsch 算子.22 3.4 常用的二阶边缘检测算子.23 3.4.1 laplacian 算子.23 3.4.2 log(laplacian-gauss)算子 24 3.5 小结26 4总结.27 参考文献.28 附 录.29 1 1. 绪 论 1.1 课题概述 图像是人类获取和交换信息的主要来源,因此,图像处理的应用邻域 涉及到人类生活的方方面面。图像的研究方法和手段根据对图像作用域的 不同,可以分为空余处理方法和变换域处理方法。空余处理方法有两大类: 邻域处理法和点处理法。变换域处理法有:傅立叶变换、离散余弦变换。 图像处理的目的是改善图像的质量,以人为对象以改善人的视觉效果为目 的。图像处理是用计算机对图像进行一系列的操作,一般操作是先将图像 数字化,即易于获得某种预期结果的技术。常用的图像处理方法有图像增 强、复原、编码、压缩、分割等。其中边缘检测是图像处理中必不可少的 一步,采用微分算子检测边缘是最常用的,也是处理效果比较好的一种。 matlab 图像处理工具箱提供了边缘检测(edge)函数,它能利用多种算子 进行图像的边缘检测,语言结构简单。 本文主要介绍了数字图像处理主要研究领域中边缘检测的方法,并利 用 matlab 图像处理工具箱提供的函数处理图片,对图像进行边缘检测,给 出了各种算子检测边缘的结果并进行相互比较。 在现阶段,图像的处理方法很多,其中,边缘检测是很重要的一种处 理方法,它在图像处理领域中占有重要地位,图像的边缘是集中了图像大 部分的信息,图像边缘的确定与提取对于整个图像场景的识别与理解非常 重要。在现实生活中,图像处理的问题一直是个焦点问题,在软件 matlab 处理图像的领域中,图像的各种处理易于实现,易于得到预期的结果。本 2 课题阐述了数字图像在一些应用领域中的处理及处理前后的对比,包括各 种算子的边缘检测,从而实现对图像的分析及处理。 1.2 课题背景知识 1.2.11.2.1 matlabmatlab 简介简介 matlab 是 mathworks 公司用 c 语言开发的软件,其中的矩阵算法 来自 linpack 和 eispack 的课题研究成果。matlab 是一种将数据结构、 变成特征和图形用户界面完美的结合到一起的软件。其核心是数组和矩阵。 matlab 的特点有:高级科学计算语言,用于线性代数统计、的集成 管理环境,算法设计开发的交互式工具,创建自定义工程师图形界面的工 具,2-d 和 3-d 的数据可视化,与第三方算法开发工具 c/c+、fortran、java、com、microsoft excel集成开发基于 matlab 的算法。 matlab 的基本功能:语言编程功能、编译功能、自动代码生成功能、 图像用户界面开发功能、数学计算功能、图形化显示功能、simulink 建模 仿真功能。 1.2.21.2.2 数字图像简介数字图像简介 图像是对客观对象的一种相似性的、生动的描述或表示。按图像空间 坐标和明暗程度的连续性可分为数字图像和模拟图像。数字图像计算机可 以直接处理,其空间坐标和灰度都不连续,是用离散的数字来表示图像。 而模拟图像的坐标和灰度都是连续的,故模拟图像无法用计算机直接进行 处理。图像处理的目的是改善图像的质量,它以人为对象,以改善人的视 3 觉效果。图像处理中,输入的是质量低的图像,输出的是改善质量后的图 像,常用的图像处理方法有图像变换、增强、重建、复原、编码、压缩等。 1.3 目的意义 图像是对客观对象的一种相似性的、生动的描述或表示。对图像进行 一系列的操作以便达到预期的图像结果。现阶段数字图像处理技术的迅速 发展为人类带来了巨大的经济社会效益,大到应用卫星遥感进行的全球环 境气候监测,小到指纹识别技术在安全领域的应用。可以说,数字图像处 理技术已经融入到科学研究的各个领域。 边缘检测是数字图像处理中最重要的一种技术,图像物体中边缘表现 为灰度变化,边缘广泛存在于物体与背景之间、物体与物体之间。 1.4 小结 本章重点介绍了课题简介、matlab 软件的特点与功能、数字图像简 介和课题的目的意义。 4 2. 数字图像处理 2.1 基本概念 二值图像:也叫黑白图像,就是图像像素只存在 0,1 两个值。一个二 值图像是纯黑白的。每一个像素值将取 0 或 1 中的一个值,通常用 0 表示 黑,用 1 表示白。 灰度图像:灰度图像是包含灰度级的图像。与二值图像不同,灰度图 像的像素并不是只有 0、1 两个量化级数,而是具有多个量化级数,如 64 级、256 级等。当像素灰度级用 8bit 表示时,图像的灰度级就是,每个像 素的取值就是 256 中灰度中的一种,即每个像素的灰度值为 0255 中的一 个。通常,用 0 表示黑,用 255 表示白,从到亮度逐渐增加。灰度图像只 有亮度信息而没有色彩信息。通常所说的黑白图像,其实包含了黑白之间 的所有灰度色调。 彩色图像:图像中 r 代表红色,g 代表绿色,b 代表蓝色。rgb 色彩 模式是用 rgb 模型为图像中的每一个像素的 rgb 分量分配一个 0255 范 围内的强度值。白色的都为 255;黑色的都为 0;这类图像不适用单独的调 色板,每一个像素的颜色有存储在相应位置上的红,绿,蓝颜色共同决定。 图像数字化:把连续的图像用一组数字来表示,便于计算机分析处理。 图像增强:对图像的某些特征进行强调或尖锐化而不增加图像的相关 5 数 据。 图像压缩:在满足一定的图像质量要求下对图像进行编码,可以压缩 表 示图像的数据。 图像分析:详细研究并描述一幅图像不同部分的特征和相互关系。 图像恢复:把模糊或褪色的图像尽可能的复原。 2.2 图像增强 图像增强是指按特定的需要突出一幅图像中的某些信息,同时消弱或 去除某些不需要的信息的处理方法。其主要有两个目的:一是增强有用信 息,抑制无用信息,从而改善图像的视觉效果;二是有利于人工和机器分 析。 2.2.12.2.1 直接灰度调整直接灰度调整 (1)增强对比度 增强对比度实际是增强原图的各部分的反差。实际中经常是通过增强 原图中某两个灰度值之间的动态范围来实现的。 matlab 图像处理工具箱中用函数进行灰度线性增强。其语法格式为: i1=imadjust(i,low high,bottom top,gamma) 对图像使用灰度线性增强,使原图因颜色灰暗不能体现细节的地方能 够清晰的体现出来。 6 图 1 亮度调节前后图像的显示效果比较 (2) 图像求反 对图像求反是将图像的灰度值反转,就是使原图像的黑变白,使白变 黑。具体的变换就是图像中每个像素的灰度值根据变换曲线进行映射。 (3)灰度切分 灰度切分的目的与增强对比度比较相似,即将某个灰度值范围变得比 较突出;所不同的是,灰度切分将所要突出的是灰度范围变换成较高的灰 度值,而将其余的灰度值变换成较低的灰度值。 2.2.22.2.2 直方图直方图处理处理 为改变图像整体偏暗,或整体偏亮,或者灰度层次不丰富的情况,可 将图像的直方图通过一定的函数处理为均衡的直方图,使直方图不再偏于 低端,或者不再偏于高端,而是变成比较均匀的分布,而这种技术就叫做 直方图均衡化。 直方图是对图像中每一灰度值出现频率的统计,可也描述为: (3-()/ kk p snn0,1,1kl 1) 上式中,是图像 f(x,y)的第 k 级灰度值,是中具有灰度值的像 k s k n k s 素的个数,n 是图像中像素的总数。给出了对出现频率的一个估计,() k p s k s 所以一幅图像的直方图基本上可以描述图像的概貌。直方图反应的是一幅 7 图像的灰度值的概率统计特征,常用的方法有直方图均衡化技术和直方图 规定化技术。 (1)直方图均衡化 其基本思想是把原图的直方图变换成均匀分布的形式,这样增强了像 素灰度值的动态范围,从而达到了增强图像整体对比度的效果。 matlab 图像处理工具箱提供了用于直方图均衡化的函数 histeq,其 语法格式为: i2=histeq(i,n) i2,t=histeq(i,) 式中,表示输出图像的灰度级数目,是一个可选参数,默认值为 64;j,t=histeq(i,.)表示返回将图像 i 的灰度直方图变换成图像 j 的直方 图变换 t。 图 2 灰度调整后的图像与直方图 (2)直方图规定化 直方图均衡化的优点是能自动增强整个图像的对比度,但其具体的增强 效果不容易控制,处理的结果总是得到全局均衡化的直方图。而在实际生活 中,为了得到某种特定的形状,有时需要将直方图进行某种变换,从而有选 8 择地增强某个灰度值范围的对比度。 2.2.32.2.3 图像滤波图像滤波 图像的空间文理信息可以形象的反映出图像的大小、位置、和形状等 特征,利用线性滤波技术可以对图像的某些纹理信息进行一定程度的增强, 而去除其他的特征。线性滤波是一种邻域操作,其结果由滤波器系数与滤 波窗口扫描区域的相应像素值的乘积之和给出。 滤波主要有两种: (1)线性滤波,它属于空余滤波平滑技术,主要采用邻域平均法,用于 去除图像通过扫描得到的噪声颗粒。邻域平均法的主要思想是用几个像素 灰度的平均值来代替某个像素。 (2)中值滤波是一种常用的非线性平滑滤波器,其滤波原理是,中值 滤波器的输出像素值是有邻域像素的中间值决定的,其滤波后产生的图像 模糊较少,适合于消除图像的孤立噪声点。matlab 图像处理工具箱提供 了用于实现中值滤波的函数 medifilt2,其语法格式为: j=medifilt2(i1,m,n) 其中,为指定滤波器窗口的大小,默认值为 3*3,返回图像 i1 经滤波 后的图像 j。 9 图 3 加入椒盐噪声后图像的均值滤波和中值滤波 图 4 加入高斯噪声后图像的均值滤波和中值滤波 2.3 matlab 图像处理 数字图像处理技术发展迅速,在实际上生活中起到了很大的作用,而 matlab 对数字图像的处理很是方便,用相应的函数便可实现。 2.3.12.3.1 matlabmatlab 中的图像文件格式中的图像文件格式 (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.3.22.3.2 图像类型图像类型 (1)索引图像 (2)灰度图像 10 (3)rgb 图像 (4)二进制图像 2.3.32.3.3 图像的几何操作图像的几何操作 在对数字图像进行操作时,在某些时候只需要对图像的某一部分进行 相应的操作。而图像的几何操作主要包括 3 种。 (1)图像的旋转 imrorate 函数可以通过一种特定的插补方法来改变显示图像,其语法格 式为: b=imrorate(a,angle,method) 其中,a 是图像的数据矩阵,angle 是图像的旋转角度,method 可以是 nearest、bicubic 或 bilinear。 nearest(近邻插补运算):输入像素的赋值为当前点的像素点。 bicubic(双立方插补运算):输入像素的赋值为 4*4 矩阵所包含有效 点的加权平均值。 bilinear(双线性插补运算):输入像素的赋值为 2*2 矩阵所包含有效 点的加权平均值。 11 图 5 旋转图 (2)图像的剪切 imcrop 函数可以实现对图像的剪切操作。该操作剪切的是图像中的一 个矩阵子图,用户可以通过参数指定这个矩形四个顶点的坐标,也可以交 互的用鼠标选取这个操作。其语法格式为: x1=imcrop(x,map):对索引图像进行交互式的剪切。 i1=imcrop(i):对灰度图像进行交互式的剪切。 x2=imcrop(x,map,xmin ymin width height):对索引图像进行非交互 式剪切。 12 图 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.42.3.4 图像类型的转换图像类型的转换 13 有时对图像进行图像类型转换以方便某些处理,提供了三种基本类型 的图像转换。 (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(rgb,level):将 rgb 图像转换为二值图像 14 图 9 将灰度图像和 rgb 图像转换为二值图像后的图 (3)索引图像转换为灰度图像的函数 ind2grap,其语法格式为: i=ind2grap(x,map) 将具有颜色图 map 的索引图像 x 转换为转换为灰度图像 i,x 可以是 双精度型或 unit8 型,i 是双精度型. 2.4 matlab 的二值图像操作 二值图像的处理过程相对简单,而数学形态学的处理主要是二值图像。 2.4.12.4.1 态学简介态学简介 数学形态学图像处理的基本思想是利用结构元素来收集图像的信息。 当该结构元素在图像中不断移动时,便可以考察图像各个部分之间的相互 关系,从而了解图像各个部分的结果特征。 数学形态学的基本运算有腐蚀、膨胀、开启和闭合。 设为二维欧几里德空间,a 为图像矩阵,b 为结构元素矩阵, 是欧式空间中的一点。数学形态学运算是用 b 对 a 进行操作。而实际b 上,结构元素本身也是一种图像矩阵。 几种图像操作的定义: 15 平移:定义为图像 a 被 b 平移后的结果,表示为, b a b aab aa 其中,中所有的元素是 a 中对应元素平移到以 b 点为原点的坐标系内的 b a 结果。 反射:定义为图像 a 经图像原点反射的结果,表示为 a a a aa aa 平移和反射着两个操作,可以定义数学形态学中的两个基本操作,即 膨胀(dilation)和腐蚀(erosion),其数学表达式如下: 膨胀运算的数字表达式: (3- , x abab aa bbxbaa 2) 腐蚀运算的数字表达式: (3- zb a bzbaa 3) 开运算:a 对 b 的开,即 a 被 b 进行开运算的结果定义为: (3-a ba bb 4)即 a 先被 b 腐蚀,再被 b 膨胀的结果。 闭运算:对的闭运算定义为: (3-a babb 5) 即 a 先被 b 膨胀,后再被 b 腐蚀的结,通常,开运算用来删除图像中 的小分支,可以使图像缩小;闭运算用来填补图像中的空穴,可以使图像 放大;而腐蚀和膨胀运算具有平移不变形,对图像 a 的腐蚀和膨胀的运算 结果只取决于 a 与 b 的结构,而与 a 的位置无关。 16 2.4.22.4.2 二值数学形态学的运算函数二值数学形态学的运算函数 dilate 函数实现二值图像的膨胀运算,其语法格式为: bw=dilate(bw1,se,.,n)返回图像 bw1 经过结构元素 se 膨胀 n 次后的图像,这里 se 为结构元素。 图 10 二值图像与腐蚀图像 imerode 函数实现二值图像的腐蚀运算,其语法格式为: im1=imerode (im,se) 返回灰度、二值图像和压缩二值图像 im 进行腐 蚀的图像。 图 11 灰度图像与腐蚀图像 2.5 图像变换 图像变换在图像处理和图像分析中占有重要地位。图像变换就是将图 17 像转换到变换域,如频率域,进行图像处理和图像分析。这给图像数据压 缩、特征提取、图像去噪等带来了很大的方便,从而使后面的处理运算变 得简单。 在数字图像处理中,输入图像和输出图像通常都是二维的,一般表示 成二维数字矩阵,可以直接叫二维傅里叶变换、二维 dft、二维 fft。 2.5.12.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 的幂,则计算速度最快。 18 图 12 快速傅立叶变换后的图 2.5.22.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 小结 本章主要介绍了数字图像处理的主要内容,主要有基本概念、图像增 19 强、matlab 图像处理、matlab 的二值图像操作、图像变换。 3. 图像分析边缘检测 在某些情况下,为了辨别和分析图像,需要对图像进行分离提取的操 作,在此基础上可进一步进行图像的识别与分析。 3.1 边缘检测简介 边缘检测是图像处理和计算机视觉中的基本问题,边缘是指其周围像 素灰度变化不连续的那些像素的集合,边缘广泛从在于物体与背景之间、 物体与物体之间,因此它是图像分割所依赖的重要特征。边缘检测的目的 是标识数字图像中亮度变化明显的点。图像边缘有方向和幅值两个特征, 通常沿边缘的走向灰度变换平缓,垂直于边缘走向的像素灰度变换剧烈。 根据灰度变换的特点,常见的边缘分为:凸缘型、阶跃型、房顶型。 凸缘型:其边缘的灰度值上升与下降都比较缓慢。 阶跃型:其边缘处于图像中两个具有不同灰度值的相邻区域之间。 房顶型:其主要对应细线条的灰度值变换区域。 20 3.2 边缘检测方法 由于图像的边缘是以灰度变化出现的,因此,可以通过计算图像灰度 的不连续性来增强图像和进行图像检测边缘。边缘检测的方法主要有以下 4 种。 (1)空域微风算子,即传统的边缘检测方法。图像的边缘是灰度变化 最剧烈的地方,其对应的连续情况就是函数梯度较大的地方,所以研究图 像的边缘的一种方法就是求导算子。对图像中的各个像素点进行一阶或二 阶微分来确定边缘像素点。一阶微分图像的阈值处对应着图像的边缘点; 二阶微分图像的过零点对应着图像的边缘点。 (2)拟合曲面 (3)小坡多尺度边缘检测 随着图像边缘检测技术的提高,小破分 析得到迅速房展并开始用于边缘检测。作为研究非平稳信号的一种有利工 具,小波分析在边缘检测方面起到了很大的作用。 (4)基于数学形态学的边缘检测 数学形态学是一种对二值图像进 行操作的一种非线性数学方法,其运算是物体形状集合与结构元素之间的 相互作用,对边缘方向不敏感,在图像处理中得到了广泛的应用。同时在 数字图像处理方面还具有简单性和严谨性,能很好的描述图像的形态特征。 因此,将数学形态学用于边缘检测,还可以滤除噪声,能保留图像中原有 的细节信息,是边缘检测技术的一个重大突破。 3.3 常见的一阶边缘检测算子 梯度算子可以增强图像边缘信息,这对图像边缘检测起到了重要作用。 梯度对应的是一阶导数,梯度算子是一阶导数算子。对一个图像 f(x,y)函数, 21 它在位置(x,y)处的梯度可定为梯度算子: gf(x,y)= (3-6) 22 (/)fy (f / x) 梯度算子是图像处理中最常用的一阶微分算法,是(3-11)中 f(x,y)表示 图像的灰度值,图像梯度最重要的性质是梯度方向,是在图像灰度最大变 化率上,它恰是可以反映出图像边缘上的灰度变化。其定义如下: (3-7)( , )arctan f y f x x y 以上两式中偏导数需要对每个像素位置计算,而实际上数字图像中求 导数是可以用一阶差分代替一阶微分。 =f(i,j+1)-f(i,j) (3-8) f x =f(i,j)-f(i+1,j) f y 求梯度时对于平方和运算及开方运算, 可以用两个分量的绝对值表示为: g(i,j) 22 (/)/fyfxfy (f / x) (3-9) 上式中,j 对应于 x 轴方向,i 对应于 y 轴方向。f(x,y)表示处理前的点 的灰度值,g(x,y)表示处理后的点的灰度值。求梯度幅值时对于平方和及开 放运算,可以用两个分量的绝对值之和来表示。 3.3.13.3.1 robertsroberts 算子算子 roberts 边缘算子又称为梯度交叉算子,其思想是利用局部差分算子寻 找边缘的算子。梯度幅值计算近似方法如表 1 所示 表 1 roberts 算子梯度幅值计算示意图 (i,j)(i,j+1) (i+1,j)(i+1,j+1) 22 (i,j)为当前像素的位置,其计算公式如下: g(i,j)= (3-10)( , )1,11,f i jf ijf ijf i ji 它是由两个 2*2 模板组成。用卷积模板表示如下: g(i,j)= (3-11)gxgy 式中,gx=;gy=;标注.的是当前像素的位置。 1.0 01 0.1 10 3.3.23.3.2 sobelsobel 算子算子 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) =,g i j i1, j 12i, j 1i1, j 1i 1, j 12i, j 1i1, j 1ffffff + i 1, j 12 i 1, j)i 1, j 1i1, j 12i1, ji1, j 1ffffff (3-12) 23 将其进行简化,表 2 中的坐标对应记为如表 3 所示的符号。 表 3 梯度幅值计算示意图 0a1a2a 3a , i j 4a 5a6a7a 因此式(3-12)则可以简单记为: (3-13( , )234078012654g i jacaaacaaacaaacaa ) 式中 c=2。用卷积模板来实现: (3-14)( , )g i jsxsy 式中, ;。sx 是水平模板,对水平边 101 20.2 101 sx 121 00.0 121 sy 缘响应最大;sy 是垂直模板,对垂直边缘响应最大。图像中的每个点都用这 两个模板做卷积,两个模板卷积的最大值作为该店的输出值。其运算结果 是一副边缘幅度图像。这一算子把重点放在接近于模板中心的像素点。因 此 sobel 算子是边缘检测中最常用的算子之一。 sobe 梯度算子是先做加成权平均,在求微分,最后求梯度,即用式 (3-12) 、式(3-13)和式(3-14)来实现的。 3.3.33.3.3 prewittprewitt 算子算子 prewitt 算子用卷积模板来描述: 24 (3-15)( , )g i jpxpy 式中,前者为水平模板,后者为垂直模 101 101 101 px 111 000 111 py 板。图像中的每个点用这两个模板进行卷积,取最大值作为输出值,最终 产生一副边缘幅度图像。 3.3.43.3.4 kirschkirsch 算子算子 kirsch 算子使用 8 个模板来确定梯度的幅值和方向,故又称为方向算 子,通过一组模板分别计算不同方向上的拆分值,取其中最大的值作为边 缘强度,而将与之对应的方向作为边缘的方向。 表 4 3*3 子图像示意图 (3-16),max 54:0,1.,7 kk gistk (i , j )=m ax 式中 (3-17) 12 347 kkkk kkkk saaa taaa 0a1a2a 3a , i j 4a 5a6a7a 25 式(3-17)中的下标超过 7 就用 8 去除并取余数。 3.4 常用的二阶边缘检测算子 3.4.13.4.1 laplacianlaplacian 算子算子 laplacian 算子是不依赖于边缘方向的二阶微分算子,是常用的二阶导 数算子。对一个连续函数 f(x,y),它在位置(x,y)上的 laplacian 表式式为: (3-18) 2 2 2 22 ,( , ) , f x yf x y f x y xy 对于数字图像来说,计算函数的拉普拉斯值也可以借助各种模板 来实现。拉普拉斯模板的基本要求是对应中心像素的系数应该是 正的,而对应于中心像素邻近像素的系数应该是负的,且它们的和应 该是零 。其 可以简单表示为: (3-19)( , )4,1,1,1,1g i jf i jf ijf ijf i jf i j 或者 (3-20) 8,1,11,1 ( , )1,1,1,1 11,1,1 f i jf ijf ij g i jf ijf ijf ij f ijf i jf i j , 也就是说,拉普拉斯算子常用两种模板来进行检测,其模板分别 见图( a)和图 (b). 010 141 010 111 181 111 模板( a) 模板 (b). 拉普拉斯算子是一个标量而不是向量,具有线性特性和旋转不 变,即 各向同性的性质,常常被用在图像处理的过程中。 由于 拉 26 帕拉斯算子是一种二阶导数算子,可在 边缘处产生一个零交叉。因 此,经过拉普拉斯算子滤波过的图像对噪声相当敏感, 也可 产生 双像素宽的边缘,且不能提供边缘方向信息,拉普拉斯算子 主要 用于已知边缘像素后确定该像素是在图像的暗区或明区一边。 3.4.23.4.2 loglog(laplacian-gausslaplacian-gauss)算子)算子 当使用一阶导数的边缘检测算子时,如果所求的一阶导数高于某一阈 值,则确定该点为边缘点,这样便会导致检测的边缘的太多。一种更好的 办法就是求梯度局部最大值对应的点,并认为他们是边缘点。对其去除一 阶导数中的非局部最大值,可以检测 到较为精确的 边缘点。一阶导 数的局部最大值对应着二阶导数的零交叉点,通过找图像增强的二 阶导数的零交叉点就可以确定比较精确的边缘点。 3.4.3 canny 算算子子 canny 算子检测边缘的3 个准则: (1)信噪比准则 信噪比越大,提取的边缘质量越高。信噪比 snr 的定义为: (3-21)2 () ( ) ( ) w w w w gx h x dx snr hx dx 式中, g(x)代表边缘函数; h(x)代表宽度为的滤波器的脉冲 响应;代表高斯噪声的均方差。 (2)定位精度准则 边缘 定为精度 l 定义为: 27 (3-22)2 () ( ) ( ) w w w w gx h x dx l hx dx 式中,和分别表示和的导数,越大表明定( )g x( )h x( )g x( )h x 为精度越高。 (3)单 边缘相应准则 (3-23) 1 2 2 ( ) () ( ) w w hx dx d f h x dx 式中,为的二阶导数。( )h x( )h x 将 3 个准则相结合可以获得最优的检测算子。 图 13 边缘检测的各种算法图例 3.5 小结 本章主要概述了边缘检测,介绍了边缘检测的方法。主要的有一 28 阶边缘检测算子和二阶边缘检测算子。 4总结 本文应用了一些函数对数字图像进行了一些操作,相应的也获得了一 定的处理结果。尤其对图像进行各种算子的边缘检测将得到不同的图像。 在对数字图像进行处理的过程中,并不是每一次处理都获得预期的效 果,主要是对各个函数的功能和各种算子的算法掌握掌握不够,对一幅图 像由模糊到清晰的处理过程不熟悉,同时,加之时间较紧的情况下,没有 足够的时间去研究如何清晰的获得一幅图像的具体步骤,从而导致最终的 图像效果不是很好。使得最终的图像与预期的结果相差较大。 希望能够通过再学习,对图像处理的过程有一个比较完整的了解,能 29 对边缘检测的各种算子有进一步的研究,使处理后的图像越来越接近预期 的图像。 参考文献 1 龚声蓉,刘纯平,王强 数字图像处理与分析,北京:清华大学出版社,2006 2 赫文化 matlab 图形图像处理应用教程,北京:中国水利水电出版社,2004 3 陈扬,陈荣娟,郭颖辉 matlab6.x 图形编辑与图像处理,西安:西安电子科技大学, 2002 4 刘慧颖 matlabr2007 基础教程 ,北京:清华大学出版社,2008 5 常巍,谢光军,黄朝峰 matlabr2007 基础与提高,北京:电子工业大学出版社 6 刘井元,李玉良,张传楷 基于 matlab 的数字图像边缘检测技术,中国科技论 文在线 30 附 录 附录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,100 80,50,60); 31 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(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 %加入椒盐噪声 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(加椒盐噪声中指滤波后的图); 32 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(soble edge check); subplot(2,3,2),imshow(bw2),title(roberts edge check); subplot(2,3,3),imshow(bw3),title(prewitt edge check); subplot(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 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,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);%灰度图像亮度调整 33 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 %加入椒盐噪声 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=co

温馨提示

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

评论

0/150

提交评论