基于matlab的图像边缘检测算法研究和仿真设计
- 格式:doc
- 大小:588.00 KB
- 文档页数:17
基于matlab的图像边缘检测算法研究和仿真目录第1章绪论 11.1 序言 11.2 数字图像边缘检测算法的意义 1第2章传统边缘检测方法及理论基础 2 2.1 数字图像边缘检测的现状与发展 22.2 MATLAB和图像处理工具箱的背景知识 32.3 数字图像边缘检测关于边缘的定义 42.4 基于一阶微分的边缘检测算子 42.5 基于二阶微分的边缘检测算子 7第3章编程和调试 103.1 edge函数 103.2 边缘检测的编程实现 11第4章总结 13第5章图像边缘检测应用领域 13附录参考文献 15第1章绪论§1.1 序言理解图像和识别图像中的目标是计算机视觉研究的中心任务,物体形状、物体边界、位置遮挡、阴影轮廓及表面纹理等重要视觉信息在图像中均有边缘产生。
图像边缘是分析理解图像的基础,它是图像中最基本的特征。
在Marr的计算机视觉系统中,图像边缘提取占据着非常重要位置,它位于系统的最底层,为其它模块所依赖。
图像边缘提取作为计算机视觉领域最经典的研究课题,长期受到人们的重视。
图像边缘主要划分为阶跃状和屋脊状两种类型。
阶跃状边缘两侧的灰度值变化明显,屋脊状边缘则位于灰度增加与减少的交界处。
传统的图像边缘检测方法大多是从图像的高频分量中提取边缘信息,微分运算是边缘检测与提取的主要手段。
由于传统的边缘检测方法对噪声敏感,所以实际运用效果有一定的局限性。
近年来,越来越多的新技术被引入到边缘检测方法中,如数学形态学、小波变换、神经网络和分形理论等。
Canny于1986年提出基于最优化算法的边缘检测算子,得到了广泛的应用,并成了与其它实验结果作比较的标准。
其原因在于他最先建立了优化边缘检测算子的理论基础,提出了迄今为止定义最为严格的边缘检测的三个标准。
另外其相对简单的算法使得整个过程可以在较短的时间实现。
实验结果也表明,Canny算子在处理受加性高斯白噪声污染的图像方面获得了良好的效果[1]。
目录摘要 (1)引言 (2)第一章绪论 (3)1.1 课程设计选题的背景及意义 (3)1.2 图像边缘检测的发展现状 (4)第二章边缘检测的基本原理 (5)2.1 基于一阶导数的边缘检测 (8)2.2 基于二阶导的边缘检测 (9)第三章边缘检测算子 (10)3.1 Canny算子 (10)3.2 Roberts梯度算子 (11)3.3 Prewitt算子 (12)3.4 Sobel算子 (13)3.5 Log算子 (14)第四章MATLAB简介 (15)4.1 基本功能 (15)4.2 应用领域 (16)第五章编程和调试 (17)5.1 edge函数 (17)5.2 边缘检测的编程实现 (17)第六章总结与体会 (20)参考文献 (21)摘要边缘是图像最基本的特征,包含图像中用于识别的有用信息,边缘检测是数字图像处理中基础而又重要的内容。
该课程设计具体考察了5种经典常用的边缘检测算子,并运用Matlab进行图像处理结果比较。
梯度算子简单有效,LOG 算法和Canny 边缘检测器能产生较细的边缘。
边缘检测的目的是标识数字图像中灰度变化明显的点,而导函数正好能反映图像灰度变化的显著程度,因而许多方法利用导数来检测边缘。
在分析其算法思想和流程的基础上,利用MATLAB对这5种算法进行了仿真实验,分析了各自的性能和算法特点,比较边缘检测效果并给出了各自的适用范围。
关键词:边缘检测;图像处理;MATLAB仿真引言边缘检测在图像处理系统中占有重要的作用,其效果直接影响着后续图像处理效果的好坏。
许多数字图像处理直接或间接地依靠边缘检测算法的性能,并且在模式识别、机器人视觉、图像分割、特征提取、图像压缩等方面都把边缘检测作为最基本的工具。
但实际图像中的边缘往往是各种类型的边缘以及它们模糊化后结果的组合,并且在实际图像中存在着不同程度的噪声,各种类型的图像边缘检测算法不断涌现。
早在1965 年就有人提出边缘检测算子,边缘检测的传统方法包括Kirsch,Prewitt,Sobel,Roberts,Robins,Mar-Hildreth 边缘检测方法以及Laplacian-Gaussian(LOG)算子方法和Canny 最优算子方法等。
毕业设计(论文)任务书(工科类)课题名称基于MATLAB/GUI的图像边缘检测算法研究与仿真副标题系(院)名称:电子与信息工程系专业:电子信息工程姓名:学号:毕业设计(论文)起讫时间:指导教师签名年月日系(院)主任签名年月日一、毕业设计(论文)的课题背景边缘是图象最基本的特征,边缘检测在计算机视觉、图象分析等应用中起着重要的作用,是图象分析与识别的重要环节,这是因为子图象的边缘包含了用于识别的有用信息。
所以边缘检测是图像分析和模式识别的主要特征提取手段。
GUI 即人机交互图形化用户界面设计。
GUI的广泛应用是当今计算机发展的重大成就之一,它极大地方便了非专业用户的使用。
人们从此不再需要死记硬背大量的命令,取而代之的是可以通过窗口、菜单、按键等方式来方便地进行操作。
图形用户界面是一种人与计算机通信的界面显示格式,允许用户使用鼠标等输入设备操纵屏幕上的图标或菜单选项,以选择命令、调用文件、启动程序或执行其它一些日常任务。
与通过键盘输入文本或字符命令来完成例行任务的字符界面相比,图形用户界面有许多优点。
本次毕业设计使用MA TLAB/GUI仿真软件,仿真图像边缘检测算法,采用不同的算法实现对图像边缘检测,使学生了解GUI的基本结构和使用方法,熟悉算法研究与仿真的一般过程与MA TLAB 软件,巩固和加深学生在图像处理方面的专业知识技能,提高学生分析问题、解决问题的能力。
同时,培养学生掌握一定的编程技巧,积累经验。
二、毕业设计(论文)的技术参数(研究内容)“基于MA TLAB/GUI的图像边缘检测算法研究与仿真”应包含如下内容:1.图片可任意导入;2.经过图像边缘检测算法处理后的图片能导出成JPG等格式保存;3.至少使用三种图像边缘检测算法进行比较;4.图像可以简单缩放;5.多种图像边缘检测算法分析优缺点。
三、毕业设计(论文)应完成的具体工作1. 熟悉MA TLAB图像处理库函数及GUI的使用;2. 利用GUI设计图像边缘检测处理界面;3. 利用多种算法实现图像边缘检测处理;4. 对比分析所采用算法的优缺点;5. 翻译外文专业文献一篇;6. 依据同济大学浙江学院本科生毕业设计的规范要求,撰写《毕业设计(论文)》一篇,并进行毕业论文答辩。
基于MATLAB数字图像的边缘检测探究摘要:随着MATLAB数字图像的边缘检测技术不断发展,其已广泛用于国内外工程技术、遥感、林业、医学等各个领域。
基于此,本文首先介绍了MATLAB软件的特点,并对基于MATLAB数字图像的边缘检测的功能、算法及其图像的处理过程进行相关探究。
关键词:MATLAB;数字图像;边缘检测中图分类号:TP391 文献标识码:A一般来说,数字图像的边缘信息是极其重要的,该信息是提取一个图像特征的重要属性,同时可更加方便地对数字图像的边缘信息进行比较和量化,适合对图像中各物体的具体位置进行检测和确定。
因此,对基于MATLAB数字图像的边缘检测进行相关的探究是有必要的,有利于我们提取更好、更为精确的图像特征。
1 MATLAB技术特点MATLAB是由Math Works公司开发出的一种用于可视化图形处理和数值计算的程序化设计语言,这种编程语言操作简单、高效,且功能强大。
MATLAB软件是一种将矩阵运算、数值分析、信号处理、图形图像处理和仿真集于一体的软件,也是国际上公认的一种优秀的数学应用软件。
在MATLAB软件中有功能性工具箱和学科性工具箱,它的功能性工具箱主要是用来扩充其图示建模仿真功能、符号计算功能、文字处理功能等内容;而它的学科性工具箱具有较强的专业性,如统计工具箱、优化工具箱、控制工具箱、图像处理工具箱、小波工具箱及通信工具箱等。
2 图像边缘检测的功能与算法在MATLAB软件中,函数一阶导数的极值点会与函数二阶导数的拐点和零交叉点的平滑信号相对应。
目前,常用的图像边缘检测算法主要有高斯-拉普拉斯(LOG)算子、Sobel 算子、Canny算子等。
2.1 高斯-拉普拉斯(LOG)算子高斯-拉普拉斯(LOG)算子是一种既具有图像平滑功能,又具有边缘增强功能的二阶微分算法。
该方法先利用二维的高斯算子对数字图像进行最佳的平滑处理,而后再利用二维拉普拉斯算子找出平滑图像的陡峭边缘,对平滑数字图像的边缘进行增强处理。
边缘检测matlab实验报告引言边缘检测在图像处理领域中是一项十分重要的任务。
它可以帮助我们从图像中提取出物体的边缘信息,对于图像分割、目标识别等任务都具有重要意义。
本实验旨在通过利用MATLAB中提供的边缘检测函数,实现对图像中边缘的提取,并对实验结果进行分析和探讨。
实验步骤1. 导入图像首先,我们需要从MATLAB工作环境中导入需要进行边缘检测的图像。
我们可以使用`imread`函数将图像读入到MATLAB的内存中。
matlabimage = imread('example.jpg');2. 灰度化灰度化是边缘检测的前提条件,它可以将一幅彩色图像转化为灰度图像,使得后续的操作更加简便。
我们可以使用`rgb2gray`函数将彩色图像转化为灰度图像。
matlabgray_image = rgb2gray(image);3. 边缘检测接下来,我们可以使用MATLAB中提供的边缘检测函数进行实际的边缘检测操作。
MATLAB中有许多边缘检测算法可供选择,例如Sobel算子、Canny算子等。
本实验我们选择使用Canny算子进行边缘检测。
matlabedge_image = edge(gray_image, 'Canny');4. 结果显示最后,我们可以使用`imshow`函数将原始图像和边缘检测结果显示出来,以便于观察和分析。
matlabsubplot(1, 2, 1);imshow(gray_image);title('原始图像');subplot(1, 2, 2);imshow(edge_image);title('边缘检测结果');5. 结果分析通过以上步骤,我们可以得到原始图像和边缘检测结果。
我们可以观察边缘检测结果,进一步分析图像中的边缘信息。
同时,我们还可以对不同的边缘检测算法进行对比实验,以评估它们的性能和适用性。
实验结果下图展示了使用Canny算子进行边缘检测的实验结果。
基于matlab的图像锐化算法研究与仿真—-毕业论文设计摘要在获取图像的过程中,由于多种因素的影响,导致图像质量会有所退化。
图像增强的目的在于通过处理有选择地突出便于人或机器分析某些感兴趣的信息,抑制一些无用的信息,以提高图像的使用价值。
图像锐化正是图像增强中空间域局部运算方法中的一种,其目的是增强和判断图像的边缘和轮廓信息。
而图像锐化的具体方法就是通过微分而使图像边缘突出、清晰。
图像锐化最常用的方法是梯度锐化法,但除梯度算法外,图像锐化的方法还有Roberts、Prewitt、Sobel和Laplacian等多种算法,本文对这些方法进行了介绍、比较和分析。
最后对MATLAB做了介绍,并运用MATLAB语言对图像锐化的部分算法进行了实现并记录结果。
通过对各种算法仿真和比较,每种算法都有各自的优缺点。
在分析了本论文采用的图像特点后,有针对性的对Laplacian算法进行了改进,即采用高提升滤波来提高图像的亮度。
实验结果表明,此方法可行,达到了预期的锐化效果。
关键词:图像增强;边缘;MATLAB;图像锐化AbstractIn the process of image acquisiting, the image quality will be degraded due to a variety of factors. Image enhanceing is aimed at highlighting some interested information that is easy to analyze for people and machine and inhibiting some useless information to enhance the image value. Image sharpening is a partion operation method of image enhancing in spatial domain, and its purpose is to enhance and judge the edge of the image and profile information and the specific method of the image sharpening uses differential to make the edge so prominent and clear.The most commonly used method of image sharpening isgradient sharpening. But apart from the gradient algorithm, image sharpening methods also have Roberts, Prewitt, Sobel, Laplacian and etc. These methods were introduced, compared and analyzed. Finally, MATLAB is introduced. And a part of the image sharpening algorithm is achievd and the results afe recorded. Through the simulation and comparison of the various algorithms, each algorithm has its own advantages and disadvantages. After the features of the image using in this paper are analyzed, it improves the Laplacian algorithm contrapositively, namely using high-elevating filtering to improve the brightness of the image. Experimental results show that the method is feasible and achieves the desired sharpening effect.Key words: Image enhancing; Edge;MATLAB; Image Sharpening目录1 引言 (1)1.1图像及其特点 (1)1.2图像的文件格式 (1)1.3 数字图像处理 (5)1.3.1 数字图像处理概述 (5)1.3.2 数字图像处理发展概况 (5)1.3.3数字图像处理主要研究内容 (6)1.3.4 数字图像处理的基本特点 (7)1.3.5数字图像处理的优点 (8)1.3.6 数字图像处理的应用 (8)1.4 图像锐化的研究背景 (10)1.5研究图像锐化的目的和注意事项 (10)1.6本文内容的安排 (10)2 图像锐化 (11)2.1 微分法 (11)2.1.1 梯度法(Gradieut) (11)2.1.2 Sobel算法 (13)2.1.3 LOG算子 (14)2.2 拉普拉斯算子 (14)2.3 高通滤波法 (15)2.3.1 空间域高通滤波 (15)2.3.2 频率域高通滤波 (16)2.3.3 统计差值法(用于勾边处理) (17) 2.4 MATLAB中如何实现图像锐化 (17)2.5 总结 (18)3 锐化的边缘检测法与锐化算子 (19) 3.1边缘检测法 (19)3.1.1 梯度算子 (19)3.1.2 梯度算子在MATLAB中的实现 (20) 3.2拉普拉斯算子 (21)3.3 边缘连接方法 (21)3.4 边缘检测的MATLAB实现方法 (22) 3.5 MATLAB的实现程序如下 (23)3.6 结论 (23)4 MATLAB简介及GUI设计 (24)4.1 MATLAB简介 (24)4.2图形用户界面GUI (24)4.3 GUI设计原理及简介 (25)4.4 设计方法 (25)4.4.1 图形用户界面设计工具 (25)4.4.2 菜单设计 (26)4.4.3 对话框设计 (26)4.4.4 句柄图形 (27)4.4.5 图形对象句柄命令 (27)4.5 总结 (27)5 结论与展望 (28)5.1 结论 (28)5.2 展望 (28)致谢 (29)参考文献 (30)基于MA TLAB 的图像锐化算法研究与仿真1 引言据研究,在人类所接受到的全部信息中,约有75%~80%是通过视觉系统得到的,和语言或文字信息相比,图像包含的信息量更大、更直观、更确切,因而具有更高的使用效率和更广泛的适应性。
基于matlab的图像边缘检测算法研究和仿真目录第1章绪论 11.1 序言 11.2 数字图像边缘检测算法的意义 1第2章传统边缘检测方法及理论基础 22.1 数字图像边缘检测的现状与发展 2 2.2 MATLAB和图像处理工具箱的背景知识 32.3 数字图像边缘检测关于边缘的定义 42.4 基于一阶微分的边缘检测算子 42.5 基于二阶微分的边缘检测算子 7第3章编程和调试103.1 edge函数 10 3.2 边缘检测的编程实现 11 第4章总结13第5章图像边缘检测应用领域13附录参考文献15第1章绪论§1.1 序言理解图像和识别图像中的目标是计算机视觉研究的中心任务,物体形状、物体边界、位置遮挡、阴影轮廓及表面纹理等重要视觉信息在图像中均有边缘产生。
图像边缘是分析理解图像的基础,它是图像中最基本的特征。
在Marr的计算机视觉系统中,图像边缘提取占据着非常重要位置,它位于系统的最底层,为其它模块所依赖。
图像边缘提取作为计算机视觉领域最经典的研究课题,长期受到人们的重视。
图像边缘主要划分为阶跃状和屋脊状两种类型。
阶跃状边缘两侧的灰度值变化明显,屋脊状边缘则位于灰度增加与减少的交界处。
传统的图像边缘检测方法大多是从图像的高频分量中提取边缘信息,微分运算是边缘检测与提取的主要手段。
由于传统的边缘检测方法对噪声敏感,所以实际运用效果有一定的局限性。
近年来,越来越多的新技术被引入到边缘检测方法中,如数学形态学、小波变换、神经网络和分形理论等。
Canny于1986年提出基于最优化算法的边缘检测算子,得到了广泛的应用,并成了与其它实验结果作比较的标准。
其原因在于他最先建立了优化边缘检测算子的理论基础,提出了迄今为止定义最为严格的边缘检测的三个标准。
另外其相对简单的算法使得整个过程可以在较短的时间内实现。
实验结果也表明,Canny算子在处理受加性高斯白噪声污染的图像方面获得了良好的效果[1]。
§1.2 数字图像边缘检测算法的意义数字图像处理是控制领域的重要课题,数字图像边缘检测是图像分割、目标区域识别和区域形状提取等图像分析领域十分重要的基础,是图像识别中提取图像特征的一个重要方法。
利用MATLAB实现数字图像处理中的边缘检测算法比较数字图像处理是一门涉及数字计算机技术和图像处理技术的交叉学科,其应用领域涵盖医学影像、安防监控、工业质检等诸多领域。
在数字图像处理中,边缘检测是一项重要的技术,用于检测图像中物体边界的位置,对于后续的目标识别、分割等任务具有至关重要的作用。
本文将利用MATLAB软件实现数字图像处理中常用的几种边缘检测算法,并进行比较分析。
1. Sobel算子Sobel算子是一种经典的边缘检测算子,其原理是利用离散卷积来计算图像灰度的一阶导数。
在MATLAB中,可以通过edge函数结合Sobel算子进行边缘检测。
Sobel算子在水平和垂直方向上分别使用以下模板进行卷积计算:2. Prewitt算子Prewitt算子也是一种常见的边缘检测算子,其原理与Sobel算子类似,同样是利用离散卷积计算图像的一阶导数。
Prewitt算子在水平和垂直方向上的模板如下:3. Canny边缘检测Canny边缘检测是一种多阶段的边缘检测算法,包括高斯滤波、计算梯度、非极大值抑制、双阈值处理和边缘跟踪等步骤。
在MATLAB 中,可以通过edge函数选择Canny算法进行边缘检测。
Canny算法能够有效地抑制噪声,并得到更准确的边缘位置。
4. Roberts算子Roberts算子是一种简单直观的边缘检测算子,其原理是通过计算邻近像素之间的差值来检测边缘。
Roberts算子包括两个模板:比较与分析在MATLAB中实现以上几种边缘检测算法后,我们可以对它们进行比较与分析。
首先可以从边缘检测效果来看,不同算法对于同一幅图像可能会有不同的表现,有些算法可能会更加灵敏,有些则可能会更加平滑。
其次可以从计算效率和复杂度来比较,不同算法在实际运行中所需的时间和计算资源也会有所不同。
综合来看,针对不同的应用场景和要求,选择合适的边缘检测算法至关重要。
有时候需要考虑到灵敏度和准确性,有时候则需要考虑到计算效率和实时性。
基于matlab的图像边缘检测算法研究和仿真目录第1章绪论 11.1 序言 11.2 数字图像边缘检测算法的意义 1第2章传统边缘检测方法及理论基础 2 2.1 数字图像边缘检测的现状与发展 22.2 MATLAB和图像处理工具箱的背景知识 32.3 数字图像边缘检测关于边缘的定义 42.4 基于一阶微分的边缘检测算子 42.5 基于二阶微分的边缘检测算子 7第3章编程和调试 103.1 edge函数 103.2 边缘检测的编程实现 11第4章总结 13第5章图像边缘检测应用领域 13附录参考文献 15第1章绪论§1.1 序言理解图像和识别图像中的目标是计算机视觉研究的中心任务,物体形状、物体边界、位置遮挡、阴影轮廓及表面纹理等重要视觉信息在图像中均有边缘产生。
图像边缘是分析理解图像的基础,它是图像中最基本的特征。
在Marr的计算机视觉系统中,图像边缘提取占据着非常重要位置,它位于系统的最底层,为其它模块所依赖。
图像边缘提取作为计算机视觉领域最经典的研究课题,长期受到人们的重视。
图像边缘主要划分为阶跃状和屋脊状两种类型。
阶跃状边缘两侧的灰度值变化明显,屋脊状边缘则位于灰度增加与减少的交界处。
传统的图像边缘检测方法大多是从图像的高频分量中提取边缘信息,微分运算是边缘检测与提取的主要手段。
由于传统的边缘检测方法对噪声敏感,所以实际运用效果有一定的局限性。
近年来,越来越多的新技术被引入到边缘检测方法中,如数学形态学、小波变换、神经网络和分形理论等。
Canny于1986年提出基于最优化算法的边缘检测算子,得到了广泛的应用,并成了与其它实验结果作比较的标准。
其原因在于他最先建立了优化边缘检测算子的理论基础,提出了迄今为止定义最为严格的边缘检测的三个标准。
另外其相对简单的算法使得整个过程可以在较短的时间实现。
实验结果也表明,Canny算子在处理受加性高斯白噪声污染的图像方面获得了良好的效果[1]。
§1.2 数字图像边缘检测算法的意义数字图像处理是控制领域的重要课题,数字图像边缘检测是图像分割、目标区域识别和区域形状提取等图像分析领域十分重要的基础,是图像识别中提取图像特征的一个重要方法。
边缘中包含图像物体有价值的边界信息,这些信息可以用于图像理解和分析,并且通过边缘检测可以极降低后续图像分析和处理的数据量。
图像理解和分析的第一步往往就是边缘检测,目前它已成为机器视觉研究领域最活跃的课题之一,在工程应用中占有十分重要的地位。
图像的边缘检测技术是数字图像处理技术的基础研究容,是物体识别的重要基础。
边缘特征广泛应用于图像分割、运动检测与跟踪、工业检测、目标识别、双目立体视觉等领域。
现有边缘检测技术在抑制噪声方面有一定的局限性,在阈值参数选取方面自适应能力很差,有待进一步改进和提高。
(1)多谱图像是图像配准技术中的一个难点,传统的图像配准技术只适用于同源图像,由于红外图像和可见光遥感图像的成像波段不同,对于同一场景,所采集到的图像的差异很大。
在此课题中,作者首先通过边缘检测,得到红外图像与遥感可见光图像的边缘图像,再通过尺度不变特征匹配,就能得到红外图像与可见光遥感图像之间的透视变换关系,从而成功完成了多谱图像配准[2]。
(2)在“货运列车动态图像故障检测系统(TFDS,Trouble Of Moving Freight Car Detection system)中的故障识别”的课题中,作者采用水平Sobel算子检测边缘,对边缘图像进行水平方向投影,计算得到货运列车底部心盘螺栓大致区域的图像,然后用Harris算子得到一些候选故障区域,最后通过相关匹配来识别故障。
(3)在“基于双目立体视觉的人体动作捕捉系统”的课题中,利用图像的边缘和深度信息从视频中分割出人体前景图像。
因此对图像边缘检测技术理论及其应用进行研究都有很重要的意义。
第2章传统边缘检测方法及理论基础§2.1 数字图像边缘检测的现状与发展在数字图像处理中,边缘特征是图像的重要特征之一,是图像处理、模式识别和计算机视觉的重要组成部分之一,图像边缘检测的结果直接影响进一步图像处理、模式识别的效果。
近几十年来,图像边缘检测技术成为数字图像处理技术重要研究课题之一,随着科学技术的发展,研究人员提出了很多图像边缘检测方法及边缘检测效果的评价方法,并且将这些边缘检测技术应用于计算机视觉和模式识别工程领域,使得边缘检测技术的应用围越来越广,图像的边缘一般是图像的灰度或者颜色发生剧烈变化的地方,而这些变化往往是由物体的结构和纹理,外界的光照和物体的表面对光的反射造成的。
图像的边缘反映了物体的外观轮廓特征,是图像分析和模式识别的重要特征,数字图像处理技术是一门交叉学科,数学理论、人工智能、视觉生理学和心理学等各种理论为边缘检测技术研究注入新的活力,涌现出很多边缘检测理论和方法。
根据边缘检测所处理的图像类型,可分为两大类:灰度图像边缘检测方法和彩色图像边缘检测方法。
基于本论文仅研究讨论灰度图像边缘检测,这里介绍经典的灰度图像边缘检测方法。
灰度图像的边缘是像素的灰度值发生变化的地方,这些变化通常是屋顶变化或者阶跃变化,图像屋顶变化或者阶跃变化的大小一般用灰度图像一阶导数或二阶导数的大小来描述,所以灰度图像的边缘检测方法主要分为两大类:一阶微分图像边缘检测算子(如Roberts算子、Sobel算子、Prewitt算子)和二阶微分图像边缘检测算子(如Laplacian 算子、LOG算子、Canny算子)。
一般来讲,一个好的边缘检测算法应满足如下要求:(1)检测精度高;(2)抗噪能力强;(3)计算简单;(4)易于并行实现。
其中最根本的问题是解决检测精度与抗噪声能力间的矛盾。
从理论上讲,这两者之间存在着相互制约的互变关系,即不确定性原则。
这一原则可表述为,一个信号不可能在时域和频域中任意高度集中。
因而边缘的定位精度和抗噪声能力不可能同时无限地提高,这两项指标的乘积为一常数,理论上可以通过改变空域形式来获得任意好的定位精度或信噪比,但不能两者都得到改善。
因此,衡量一个检测方法的标准也不能只看某一指标的高低,而应考察其综合指标是否达到理论上的极限。
虽然迄今已出现了众多的理论和方法,而且有些方法发展得相当成熟,但从这个意义上讲还没有一种普遍适于任何条件的最优算法。
为此人们已将注意力放在研究更直接的、专用的和面向对象的视觉信息系统,如“主动视觉”,“定性视觉”、“面向任务的视觉”等,通过强调场景和任务的约束、增加信息输入和降低对输出的要求等手段来降低视觉处理问题的难度。
这些思想大大丰富和补充了原来的理论,使算法向具体化、实用化方向发展,已成为视觉信息处理中有前途的发展方向[3]。
§2.2 MATLAB和图像处理工具箱的背景知识MATLAB对于技术计算来说是一种高性能语言。
它以易于应用的环境集成了计算、可视化的编程,在该环境下,问题及其解以我们熟悉的数学表示法来表示。
典型的应用包括如下方面[4]:(1)数学和计算(2)算法开发(3)数据获取(4)建模、模拟和原型设计(5)数据分析、研究和可视化(6)科学和工程图形(7)应用开发,包括图像用户界面构建MATLAB是一种交互式系统,其基本数据元素是并不要求确定维数的一个数组。
这就允许人们用公式化方法求解许多技术计算问题,特别是涉及矩阵表示的问题。
有时,MATLAB可调用C或Fortran这类非交互式语言所编写的程序。
在高等院校中,对于数学、工程和科学理论中的入门课程和高级课程,MATLAB都是标准的计算工具。
图像处理工具箱是一个MATLAB函数(称为M函数或M文件)集,它扩展了MATLAB解决图像处理问题的能力。
其他有时用于补充IPT的工具箱是信号处理、神经网络、模糊逻辑和小波工具箱。
§2.3 数字图像边缘检测关于边缘的定义边缘是不同区域的分界线,是图像局部强度变化最显著的那些像素的集合。
图像强度的显著变化可分为:(1)阶跃变化(函数),即图像强度在不连续处的两边的像素灰度值有着显著差异;(2)线条(屋顶)变化(函数),即图像强度突然从一个值变化到另一个值,保持一较小行程后又回到原来的值。
边缘主要存在于目标与目标、目标与背景、区域与区域(包括不同色彩)之间,边缘是位于两个区域的边界线上的连续像素集合,在边缘处,灰度和结构等信息产生突变。
边缘是一个区域的结束,也是另一个区域的开始,利用该特征可以分割图像。
图像的边缘有方向和幅度两个属性,沿边缘方向像素变化平缓,垂直于边缘方向像素变化剧烈。
边缘上的这种变化可以用微分算子检测出来,通常用一阶或二阶导数来检测边缘。
§2.4 基于一阶微分的边缘检测算子图像的局部边缘定义为两个强度明显不同的区域之间的过渡,图像的梯度函数即图像灰度变化的速率将在这些过度边界上存在最大值,通过基于梯度算子或导数检测器来估计图像灰度变化的梯度方向,增加图像的这些变化区域,然后对该梯度进行阈值运算,如果梯度值大于某个给定门限,则存在边缘。
再将被确定为边缘的像素连接起来,以形成包围着区域的封闭曲线。
一阶导数可以用于检测图像中的一个点是否在斜坡上,二阶导数的符号可以用于判断一个边缘点是在边缘亮的一边还是暗的一边。
[5]图 2.1 (a )阶跃函数,(b )线条(屋顶)函数(第一行为理论曲线,第二行为实际曲线,第三行对应一阶导数,第四行对应二阶导数)一阶导数的二维等效式:(,)f x x f y y G G x y G ∂∂∂∂⎡⎤⎡⎤∇==⎢⎥⎢⎥⎢⎥⎣⎦⎣⎦ (2-1) 梯度的幅值:|(,)|G x y =(2-2) 和方向:(,)arctan(/)y x x y G G α= (2-3)梯度是灰度(,)f x y 在X Y 坐标方向上的导数,表示灰度(,)f x y 在X Y 坐标方向上的变化率。
用差分来近似梯度=(1,)(,)x G f x y f x y +- (2-4) (,1)(,)y G f x y f x y =+- (2-5) §2.4.1 Roberts 算子(梯度交叉算子)Roberts 算子是一种利用局部差分算子寻找边缘的算子[5]。
(,)(,)(1,1)(1,)(,1)G x y f x y f x y f x y f x y =-++++-+ (2-6)§2.4.2 Sobel 算子 Sobel 提出了一种将方差运算与局部平均相结合的方法,即Sobel 算子,该算子在以(,)f x y 为中心的领域上计算X 和Y 方向的偏导数[6]。
即={(1,1)2(1,)(1,1)}{(1,1)2(1,)(1,1)}x S f x y f x y f x y f x y f x y f x y +-+++++---+-+-+ (2-7) ={(1,1)2(,1)(1,1)}{(1,1)2(,1)(1,1)}y S f x y f x y f x y f x y f x y f x y -++++++---+-++- (2-8)上式应用了(,)f x y 领域的图像强度的加权平均差值。