图像边缘的检测提取设计.docx
《图像边缘的检测提取设计.docx》由会员分享,可在线阅读,更多相关《图像边缘的检测提取设计.docx(19页珍藏版)》请在冰豆网上搜索。
图像边缘的检测提取设计
设计题目:
图像边缘的检测提取
学生信息
姓名
性别
女
班级
通信1102
学号
任务如下:
1、查找资料,总结归纳现有图像边缘检测技术,选择一种技术作为本次课程
设计所采用的技术。
2、MATLAB下运用所选用的图像边缘检测技术算法,对图像进行处理,
3、从以下三个指标对检测做分析:
低失误率;高位置精度、每一个边缘有唯一响应,得到的边界为但像素宽,对所采用算法做分析。
进度安排:
1:
查找资料
2:
对现有图像边检测技术及算法做出整理。
3:
运用算法在matlab下仿真,实现对图像的边缘检测。
4:
根据给出的技术指标分析结果。
5:
撰写报告。
所需实验设备、器材、软件
MATLAB软件
设计与制作方案、所用方法及技术路线
本次课程设计应用matlab软件,对选定的图像进行roberts算子,sobel算子,prewitt算子的分析和处理。
设计与制作进度
第1周:
分析题目,方案设计;第2周:
软件设计;第3-4周:
系统仿真,完成设计。
设计与制作完成情况:
本次课程设计在功能上完成了设计要求,软件仿真完成较好。
设计与制作收获及总结
在这次课程设计中,熟悉了软件的使用,同时也锻炼了自己的分析问题,解决问题的能力。
学生签字年月日
设计与制作成绩(五级制)
指导老师签字年月日
教研室意见
教研室主任签字年月日
备注:
学生除填写本表相应的内容外,还应撰写一份完整的设计与制作报告(1.题目;2.目的;3.原理;4.器材;5.方案;6.说明等)
图像边缘的检测提取设计
【摘要】边缘是图像最基本的特征,包含图像中用于识别的有用信息,边缘检测是数字图像处理中基础而重要的内容。
该课程设计具体考察了五种最常用的边缘检测算子并运用MATLAB进行图像处理比较。
梯度算子简单有效,LOG算法和canny边缘检测器能产生较细的边缘。
【关键字】:
MATLAB、边缘检测、图像处理
Imageedgedetection toextractthe design
[Abstract]thebasicfeaturesoftheimageedge, containsusefulinformation in the image recognition, edgedetectionisa basicandimportantcontent ofdigital imageprocessing. Thecurriculum designof thespecificstudyofthe fivemostcommonedgedetectionoperator and theuseofMATLABfor comparisonofimageprocessing. Gradientoperator issimpleandeffective,theLOGalgorithmandthe cannyedge detector canproducethinneredges.
[keyword]:
MATLAB, edgedetection, imageprocessing
目录
1绪论1
1.1边缘检测的背景1
1.2边缘检测的定义1
1.3图像边缘检测算法的研究内容2
1.4边缘检测的发展趋势3
2边缘检测的算法分析与描述3
2.1Roberts算子3
2.2Prewitt算子4
2.3Sobel算子5
2.4Laplacian算子6
2.5Canny算子7
3算子性能分析比较8
4算法的选择和实现9
4.1ssobel算子10
4.2sobel算子10
4.3prewitt算子12
设计总结12
致谢14
参考资料15
1绪论
1.1边缘检测的背景
在实际图像处理问题中,图像的边缘作为图像的一种基本特征,经常被应用到较高层次的图像应用中去。
它在图像识别,图像分割,图像增强以及图像压缩等的领域中有较为广泛的应用,也是它们的基础。
边缘检测是图像处理与分析中最基础的内容之一,也是至今仍没有得到圆满解决的一类问题。
图像的边缘包含了图像的位置、轮廓等特征,是图像的基本特征之一,广泛地应用于特征描述、图像分割、图像增强、图像复原、模式识别、图像压缩等图像分析和处理中。
因此,图像边缘和轮廓特征的检测与提取方法,一直是图像处理与分析技术中的研究热点,新理论、新方法不断涌现。
随着信息技术的不断发展和用户需求的不断增长,嵌入式系统逐渐走进国民生产的方方面面,其应用也日益广泛。
目前国内一个普遍被认同的定义是:
以应用为中心、以计算机技术为基础、软件硬件可裁剪、适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。
嵌入式系统的应用领域也非常广泛。
嵌入式系统几乎包括了生活中的所有电器设备,如掌上PDA、移动计算设备、手机上网、数字电视、多媒体、汽车、数字相机、电梯、空调、安全系统、自动售货机、工业自动化仪表与医疗仪器等。
而图像边缘检测则是图像处理中非常基础但是及其重要步骤。
边缘是两个不同区域之间的边界。
图像边缘检测是图像处理,图像分析,模式识别等一系列图像处理过程中最重要的步骤。
目前,学界上已经有许多种不同点的方法来实现边缘检测的功能,比如说差分法(Kirsch,1971)和曲线拟合法(Haralick,1984)。
传统的边缘检测方法,比如Sobel、Prewitt、Kirsch算法,通过计算第一阶方向导数来决定边缘的位置。
零点交叉边缘检测法(Bovik,1998)运用了二阶导数和拉普拉斯算符。
而Canny算法(Canny,1986)是目前学界最流行并且应用最广泛的的高斯边缘检测算法。
尽管高斯检测算法(Yuksel,2007)相对来说有更好的性能表现,但是所需要的计算也比传统基于求导的检测算法复杂的多。
近些年来,对于图像处理在许多不同的科学和工程领域应用的研究越来越火热。
在嵌入式系统上实现图像处理能够很好的解决在一般PC或者工控机上实现图像处理的不足之处,比如说便携性差,功耗大,移动性,灵活性不强等。
同时加之以集成度高,与网络的耦合也越来越紧密等特点。
嵌入式系统将是未来工业控制和其他一些行业的主要发展方向。
1.2边缘检测的定义
图像边缘是图像最基本的特征,边缘在图像分析中起着重要的用。
所谓边缘(edge)是指图像局部特征的不连续性。
灰度或结构信息的突变称为边缘,例如:
灰度级的突变、颜色的突变、纹理结的突变。
边缘是一个区域的结束,也是另一个区域的开始,利用该特征可以分割图像。
当人们看一个有边缘的物体时,首先感觉到的便是边缘,如
一条理想的边缘应该具有如图2.1(a)所示模型的特性。
每个像素都处在灰度级跃变的一个垂直的台阶上(例如图形中所示的水平线通过图像的灰度剖面图)。
而实际上,诸如图像采集系统的性能、采样频率和获得图像的照明条件等因素的影响,得到的边缘往往是模糊的,边缘被模拟成具有“斜坡面”的剖面,如图2.1(b)所示,在这个模型中不再有细线(宽
为一个像素的线条),而是出现了边缘的点包含斜坡中任意点的情况。
由此可以看到:
模糊的边缘使边缘的“宽度”较大,面清晰的边缘使边缘的宽度较小。
图像的边缘有方向的幅度两个属性,沿边缘方向像素变化平缓,垂直于边缘方向像素变化剧烈。
边缘上的这种变化可以用微分算子检测出来,通常用一阶导数或二阶导数来检测边缘,不同的是一阶导数认为最大值对应边缘位置,而二阶导数以过零点对应边缘位置。
实际上,对于图像中的任意方向上的边缘都可以进行类似的分析。
图像边缘检测中对任意点的一阶导数可以利用该点梯度的幅度来获得,二阶导数可以用拉普拉斯算子得到。
1.3图像边缘检测算法的研究内容
图像边缘检测和分析可定义为应用一系列方法获取、校正、增强、变换、检测或压缩可视图像的技术。
其目的是提高信息的相对质量,以便提取有用信息。
图像边缘检测中的变换属于图像输入-图像输出模式,图像边缘检测是一种超越具体应用的过程,任何为解决某一特殊问题而开发的图像边缘检测新技术或新方法,几乎肯定都能找到其他完全不同的应用领域。
图像边缘检测的主要研究内容包括:
(1)图像获得和抽样,其中通过人眼观察的视野获取图像的问题有:
最常用的图像获取装置——电视(TV)摄像机问题,对所获得信号进行独立的采样和数字化就可用数字形式表达景物中全部彩色内容;电荷-耦合装置,用作图像传感器,对景物每次扫描一行,或通过平行扫描获得图像;选择正确的分辨力或采样密度,一幅图像实质上是二维空间中的信号,所以适用于信号处理的法则同样适用于图像边缘检测,在放射学中常常需要高分辨力,要求图像至少达到2048像素×2048像素;灰度量化,图像强度也必须进行数字化,通常以256级(按1字节编码)覆盖整个灰度,一般一幅灰度分辨力为8位,空间分辨力为512像素×512像素的图像需0.25兆字节的存贮容量。
(2)图像分割,目的是把一个图像分解成它的构成成分,以便对每一目标进行测量。
图像分割是一个十分困难的过程。
但其测量结果的质量却极大地依赖于图像分割的质量。
有两类不同的图像分割方法。
一种方法是假设图像各成分的强度值是均匀的并利用这种均匀性;另一种方法寻找图像成分之间的边界,因而是利用图像的不均匀性。
主要有直方图分割,区域生长,梯度法等。
(3)边界查索,用于检测图像中线状局部结构,通常是作为图像分割的一个预处理步骤。
大多数图像边缘检测技术应用某种形式的梯度算子,可应用对水平方向、垂直方向或对角线方向的梯度敏感的梯度算子,用它们的复合结果可检测任意方向的边界。
(4)图像增强和复原,用于改进图像的质量。
不同的增强技术可以用于不同的目的,这取决于应用的类型。
如果打算直接观察图像,可以增强对比度。
如果是为了进一步对图像作数字处理,可以选择分割(一种突出各图像成分之间的边界和线状结构的运算)。
该技术可以是整体的或局部的,也可以在某个频域或者空间域中进行。
图像增强和复原的目的是为了提高图像的质量,如去除噪声,提高图像的清晰度等。
图像增强不考虑图像降质的原因,突出图像中所感兴趣的部分。
(5)图像分类(识别),图像分类(识别)属于模式识别的范畴,其主要内容是图像经过某些预处理(增强、复原、压缩)后,进行图像分割和特征提取,从而进行判决分类。
图像分类常采用经典的模式识别方法,有统计模式分类和句法(结构)模式分类,近年来新发展起来的模糊模式识别和人工神经网络模式分类在图像识别中也越来越受到重视。
(6)图像变换:
由于图像阵列很大,直接在空间域中进行处理,涉及计算量很大。
因此,往往采用各种图像变换的方法,如傅立叶变换、沃尔什变换、离散余弦变换等间接处理技术,将空间域的处理转换为变换域处理,不仅可减少计算量,而且可获得更有效的处理(如傅立叶变换可在频域中进行数字滤波处理)。
目前新兴研究的小波变换在时域和频域中都具有良好的局部化特性,它在图像边缘检测中也有着广泛而有效的应用。
1.4边缘检测的发展趋势
边缘检测的研究多年来一直受到人们的高度重视,从边缘检测研究的历史和现状来看,边缘检测的研究有几个明显的趋势:
1)对原有算法的不断改进。
2)新方法、新概念的引入和多种方法的有效综合运用。
3)对特殊图像边缘检测的研究越来越得到重视。
目前有很多针对立体图像、彩色图像、多光谱图像、合成孔径雷达图像、深度图像、纹理图像、超声图像、计算机断层扫描、磁共振图像、共聚焦激光扫描显微镜图像以及运动图像等特殊图像的边缘检测技术的研究。
4)对图像边缘检测评价的研究和对评价系统的研究越来越得到关注。
5)将现有的算法应用于工程实际中。
2边缘检测的算法分析与描述
2.1Roberts算子
由Roberts提出的算子是一种利用局部差分算子寻找边缘的算子,对于边界陡峭且噪比较小的图像检测效果比较好,它在2×2邻域上计算对角导数,
(2.1)
G[i,j]又称为Roberts交叉算子。
在实际应用中,为简化运算,用梯度函数的Roberts绝对值来近似:
(2.2)
用卷积模板,上式变成:
(2.3)
其中Gx和Gy由下面图1所示的模板计算:
图1Robert边缘检测算子的模板
Roberts算子是该点连续梯度的近似值,而不是所预期的点处的近似值。
由上面两个卷积算子对图像运算后,代入2式,可求得图像的梯度幅度值G[i,j],然后选取适当的门限TH,作如下判断:
G[i,j]>TH,[i,j]为阶跃状边缘点,{G[i,j]}为一个二值图像,也就是图像的边缘。
由于利用局部差分检测比较陡峭的边缘,但对于噪声比较敏感,经常会出现孤立点,于是人们又提出了Prewitt算子[4]。
通过分析可知,Sobel算子法对高频成分丰富的图像处理效果好,对中低频成分的图像效果差。
2.2Prewitt算子
为在检测边缘的同时减少噪声的影响,Prewitt算子从加大边缘检测算子出发。
由2×2扩大到3×3来计算差分算子,所以其卷积模板为图2所示:
图2Prewitt边缘检测算子的模板
在图像中的每个像素位置都用这2个模板做卷积,Prewitt算子将方向差分运算与局部平均结合起来,表达式如下:
(2.4)
(2.5)
根据两式可以计算Prewitt梯度,选取适当的阈值T,对梯度图像二值化,得到一幅边缘二值图像。
采用Prewitt算子不仅能检测边缘点,而且还能抵制噪声的影响[5]。
通过分析可知,Prewitt算子法对高频成分丰富的图像处理效果好,对中低频成分的图像效果差。
2.3Sobel算子
行邻域卷积来完传统的Sobel图像边缘检测方法,是在图像空间利用两个方向模板与图像进成的。
这两个方向模板一个检测垂直边缘,一个检测水平边缘,如图3所示。
图中,模板内的数字为模板系数,梯度方向与边缘方向总是正交
水平边缘Sobel算子垂直边缘Sobel算子
图3Sobel算子
模板元素和窗口像素之间的对应关系(以3×3窗口为例)定义如下:
设窗口灰度为:
(2.6)
模板卷积计算就是下式求乘积和的过程:
(2.7)
式中,i=1,2分别代表垂直和水平模板。
为模板卷积法边缘检测的输出,
L为窗口宽度,对3×3窗口,l=1。
将两个卷积结果的最大值,赋给图像中对应模板中心位置的像素,作为该像素的新灰度值,即:
(2.8)
通过分析可知,Sobel算子法对高频成分丰富的图像处理效果好,对中低频成分的图像效果差。
2.4Laplacian算子
拉普拉斯算子是二阶导数的二维等效式。
函数f(x,y)的拉普拉斯算子公式为:
(2.9)
使用差分方程对x和y方向上的二阶偏导数近似如下:
(2.10)
这一近似式是以点f[i,j+1]为中心的,用j-1替换j得到
(2.11)
它是以点[i,j]为中心的二阶偏导数的理想近似式,类似地,
(2.12)
把式(2-3)和式(2-4)合并为一个算子,就成为式(2-5)能用来近似拉普拉斯算子的模板:
(2.13)
有时候希望邻域中心点具有更大的权值,比如下面式(2-6)的模板就是一种基于这种思想的近似拉普拉斯算子:
(2.14)
当拉普拉斯算子输出出现过零点时就表明有边缘存在,其中忽略无意义的过零点(均匀零区)。
原则上,过零点的位置精度可以通过线性内插方法精确到子像素分辨率。
通过分析可知,它不过由于噪声,以及由噪声引起的边缘两端的不对称性,结果可能不会很精确。
2.5Canny算子
Canny检测阶跃边缘的基本思想是在图像中找出具有局部最大梯度幅值的像素点。
检测阶跃边缘的大部分工作集中在寻找能够用于实际图像的梯度数字逼近。
由于实际的图像经过了摄像机光学系统和电路系统(带宽限制)固有的低通滤波器的平滑,因此,图像中的阶跃边缘不是十分陡立。
图像也受到摄像机噪声和场景中不希望的细节的干扰。
图像梯度逼近必须满足两个要求:
首先逼近必须能够抑制噪声效应;其次必须尽量精确地确定边缘的位置。
抑制噪声和边缘精确定位是无法同时得到满足的,也就是说,边缘检测算法通过图像平滑算子去除了噪声,但却增加了边缘定位的不确定性;反过来,若提高边缘检测算子对边缘的敏感性,同时也提高了对噪声的敏感性。
有一种线性算子可以在抗噪声干扰和精确定位之间提供最佳折衷方案,它就是高斯函数的一阶导数。
通过分析可知,采用高斯函数对图像进行平滑处理,因此具有较强的噪声抑制能力;同样该算子也将一些高频边缘平滑掉,造成边缘丢失,采用了双阈值算法检测和连接边缘,边缘的连续性较好。
3算子性能分析比较
Roberts算子、Sobel算子、Prewitt算子的检测效果相差不大,三种算子的检测效果较之Canny和Log算子还是存在一定的差距。
这三种检测算子的阈值选择范围与log和canny算子相比要小些。
边缘点不够锐利和明确,线边缘检测要好于点边缘检测。
总体而言由于Prewitt算子受噪声影响较小,故检测效果要略好于另外两种。
由于Roberts算子是利用图像的两个对角线的相邻像素之差进行梯度幅值的检测,所以求得的是在差分点处梯度幅值的近似值,并且检测水平和垂直方向边缘的性能好于斜线方向的边缘,检测精度比较高,但容易丢失一部分边缘,同时由于没经过图像平滑计算,因此不能抑制噪声,但该算子对具有陡峭的低噪声图像响应最好。
Prewitt算子和Sobel算子都是对图像进行差分和滤波运算,仅在平滑部分的权值选择上有些差异,因此两者均对噪声具有一定的抑制能力,但这种抗噪能力是通过像素平均来实现的,所以图像产生了一定的模糊,而且还会检测出一些伪边缘,所以检测精度比较低,该算子比较适合用于图像边缘灰度值比较尖锐且图像噪声比较小的情况。
Canny算子采用高斯函数对图像进行平滑处理具有较强的去噪能力,容易平滑掉一些边缘信息,边缘定位精度较高。
该算子与其它边缘检测算子的不同之处在于,它使用2种不同的阈值分别检测强边缘和弱边缘,并且仅当弱边缘相连时才将弱边缘包含在输出图像中,因此这种方法较其它方法而言不容易被噪声“填充”更容易检测出真正的弱边缘。
通过对lena图的仿真实验结果可以看出,该算子在上述几种边缘检测算子当中效果最好。
边缘定位准确,连续性较好,虚假边缘少且边缘均具有单像素宽度。
LoG算子首先通过高斯函数对图像进行平滑处理,因此对噪声的抑制作用比较明显,但同时也可能将原有的边缘也平滑了,造成某些边缘无法检测到,比外高斯分布因子
的选择对图像边缘检测效果有较大的影响,
越大,检测到的图像细节越丰富,但抗噪能力下降,从而出现伪边缘,反之则抗噪能力提高,但边缘精度下降,易丢失许多真边缘,因此,对于不同图像应选择不同参数。
Roberts算子:
采用对角线方向相邻两像素之差表示信号的突变,检测水平和垂直方向边缘的性能好于斜线方向,定位精度比较高,但对噪声敏感,检测出的边缘较细。
Prewitt算子:
对噪声有平滑作用,检测出的边缘比较粗,定位精度低,容易损失角点。
Sobel算子:
产生的边缘效果较好,对噪声具有平滑作用。
但存在伪边缘,边缘比较粗且定位精度低。
Laplacian算子:
是二阶微分算子,对图像中的阶跃性边缘点定位准确,对噪声非常敏感,丢失一部分边缘的方向信息,造成一些不连续的检测边缘。
Canny算子:
采用高斯函数对图像进行平滑处理,因此具有较强的噪声抑制能力;同样该算子也将一些高频边缘平滑掉,造成边缘丢失,采用了双阈值算法检测和连接边缘,边缘的连续性较好。
4算法的选择和实现
近年来,图像分析和处理紧紧围绕理论、实现、应用三方面迅速发展起来。
它以众多的学科领域为理论基础,其成果又渗透到众多的学科中,成为理论实践并重,在高新技术领域中占有重要地位的新兴学科。
迄今已有许多边缘检测方法,其中Robert算子、Sobel算子、Prewitt算子、Log算子、Canny算子、及轮廓提取或轮廓跟踪、利用平滑技术提取图像边缘、利用差分技术提取图像边缘、利用小波分析技术提取图像边缘等方法是常用的方法,但各种算法结果差异很大。
loseall
clearall
I=imread('D:
\Koala.jpg');
I1=im2double(I);
I2=rgb2gray(I1);
[thr,sorh,keepapp]=ddencmp('den','wv',I2);
I3=wdencmp('gbl',I2,'sym4',2,thr,sorh,keepapp);
I4=medfilt2(I3,[99]);
I5=imresize(I4,0.2,'bicubic');
BW1=edge(I5,'sobel');
BW2=edge(I5,'roberts');
BW3=edge(I5,'prewitt');
h=fspecial('gaussian',5);
imshow(I1);
subplot(2,2,1);
imshow(I1);
title('sobel');
subplot(2,2,2);
imshow(BW1);
title('sobel');
subplot(2,2,3);
imshow(BW2);
title('roberts');
subplot(2,2,4);
imshow(BW3);
title('prewitt');
4.1roberts算子
4.2sobel算子
4.3prewitt算子
4.4整体比较
设计总结
虽然这次课程设计只有二个星期的时间,但是我们对图像处理的各种方法及应用有了更深的理解,学会了应用MATLAB软件及边缘提取来实现界面的操作和编程处理。
MATLAB是我们在以前和以后的学习工作中都会经常应用到的软件,但是在以前还是对其了解不足,操作不是很了解,在实习之初便因为这个问题而无从下手。
于是我们寻找了许多这方面的书籍以及应用网络教程来对其进行学习,逐渐的增强了对MATLAB及边缘提取的了解,能够摸索着开始进行编写。
实习中也遇到了很多问题,但通过查阅书籍、同学间讨论、请教老师以及网上查找最终能够得以解决,完成这次实习。
通过这次课程设计,对其的一些常见函数以及与图像处理相关的函数都比较了解,并能够应用这些函数来解决图像处理的问题。
GUI对于我们是一个新的知识,通过各方面的学习,我们最终对GUI也有了比较深的了解,能够很顺利的应用边缘提取来设计出适合并且美观的界面。
图像处理是我们这学期的一门很重要的课程,在课上虽然学习了很多知识,但是不经过自己动手操作而只看到书上的一些概念和处理的图片并不能很清楚的了解到各种操作的效果,并且不动手操作,知识就只能局限于书本上。
经过这次课程设计,不但能够让我们再次复习了本学期所学的图像处理的知识,加深了对这些知识的记忆,并且让我们对图像处理的各种处理方法如Sobel算子、Robert算子、Priwitt算子、拉普拉斯算子、Canny等对图像产生的效果有了更加直观的了解,不但加深了记忆也能因此更加了解各种处理方法的应用,可以用MATLAB软件来对这些处理来实现。
这次课程设计要实现的内容比较多,其中有一些易操作的也有一些比较复杂的,在实习过程中也会遇到一些难以突破的问题,但是在这个过程中需要我们耐心的学习,一步一步通过各种途经学习到解决的方法,也培养了我们的耐心和学习的能力。
这次是两人一组的实习,因此合理的分工合作也是很重要