毕业设计论文图像目标提取算法及其硬件实现.doc

上传人:sccc 文档编号:4859193 上传时间:2023-05-20 格式:DOC 页数:36 大小:2.63MB
返回 下载 相关 举报
毕业设计论文图像目标提取算法及其硬件实现.doc_第1页
第1页 / 共36页
毕业设计论文图像目标提取算法及其硬件实现.doc_第2页
第2页 / 共36页
毕业设计论文图像目标提取算法及其硬件实现.doc_第3页
第3页 / 共36页
毕业设计论文图像目标提取算法及其硬件实现.doc_第4页
第4页 / 共36页
毕业设计论文图像目标提取算法及其硬件实现.doc_第5页
第5页 / 共36页
点击查看更多>>
资源描述

《毕业设计论文图像目标提取算法及其硬件实现.doc》由会员分享,可在线阅读,更多相关《毕业设计论文图像目标提取算法及其硬件实现.doc(36页珍藏版)》请在三一办公上搜索。

1、河北大学工商学院2010届本科生毕业论文(设计)图像目标提取算法及其硬件实现摘要边缘是图像最基本的特征,因此,边缘检测是图像处理中非常重要的内容。本文首先介绍了几种经典的目前被广泛使用的图像边缘检测算子,比如:罗伯特(Roberts)边缘算子、Prewitt边缘算子和索贝尔(Sobel)边缘算子等。这些算法的核心思想是假设边缘点对应于原始图像灰度级梯度的局部极值点。然后在 Matlab环境下对这些算子进行编程实现。但是,有些图像包含有噪声,这些算法对噪声非常敏感,常常会把噪声当作边缘点检测出来,而真正的边缘由于噪声的干扰也很有可能被漏检。其次,文章介绍了图像分割技术,其核心思想是:为了辨识和分

2、析目标,需要将有关区域分离提取出来,并对目标进一步加以利用。在此基础上,利用这些算子对图像进行了边缘检测,总结出了各种边缘检测算法的优缺点,针对不同的图像找到相对比较有效的边缘检测算法,进而大幅度地减少了数据量,保留了图像重要的结构属性。本文还介绍了如何用硬件对图像进行边缘检测,并与用Matlab得到的边缘检测仿真结果进行了对比,证明了用硬件实现图像边缘检测的可行性。关键词:边缘检测;图像分割;目标提取Image Object Extraction Algorithm and Hardware ImplementationABSTRACTEdge is the most basic featu

3、res of the image,therefore,,edge detection is very important in image processing content. This paper describes several classical and widely used in image edge detection operator,for example,Robert edge operator,Prewitt and Sobel edge operator,etc.The core idea of these algorithms is the assumption t

4、hat the edge points corresponding to the original image gray level gradient of the local extreme point. Then in the Matlab environment of these operators for programming.However, some images contain noise,These algorithms are very sensitive to noise, the noise will often be detected as edge points,

5、while the real edge due to noise is also likely to be missed. Secondly, the article introduces the image segmentation technique, its core idea is: to identify and analyze the goals, the need to extract the isolated region, and the goal of further use. On this basis, the use of these operators on the

6、 image edge detection, summed up the advantages and disadvantages of various edge detection algorithms for different images found relatively more effective edge detection algorithm, thus significantly reducing the amount of data, important to retain the structural properties of the image. This artic

7、le also describes how to use the hardware of the image edge detection, and with the edge detection using Matlab simulation results obtained were compared to that of a hardware implementation of edge detection is feasible.Key words: Edge detection; image segmentation; object extraction目录ABSTRACT21引言1

8、2边缘检测22.1边缘属性22.2导数的计算22.3边缘检测模板22.4小结33图像分割43.1Hough变换43.2阈值法63.2.1迭代法63.2.2Otsu法73.2.3一维最大熵法73.2.4二维最大熵法73.2.5简单统计法83.3特征空间聚类法93.3.1K-均值聚类法93.3.2ISODATA聚类法原理103.4松弛迭代法113.5小结124Matlab对边缘检测算法的实现134.1模板算子法134.1.1罗伯特算子134.1.2Prewitt算子144.1.3Sobel算子154.1.4拉普拉斯算子164.2高斯算子174.3Canny算子184.4几种改进的边缘检测算子194

9、.4.1形态学边缘检测194.4.2小波变换边缘检测204.4.3金字塔方法214.5小结225边缘检测算法的硬件实现245.1Sobel边缘检测算法245.2Sobel边缘检测的硬件实现255.2.1图像数据缓冲模块265.2.2梯度计算模块265.2.3仿真结果285.3小结296结束语30321引言所谓边缘是指其周围像素灰度急剧变化的那些像素的集合,它是图像最基本的特征。边缘存在于目标、背景和区域之间,所以,它是图像分割所依赖的最重要的依据。由于边缘是位置的标志,对灰度的变化不敏感,因此,边缘也是图像匹配的重要特征。边缘检测是图像处理和计算机视觉中的基本问题,图像属性中的显著变化通常反映

10、了属性的重要事件和变化,这些包括:深度上的不连续,表面方向不连续,物质属性变化和场景照明变化。它们在图像中表现为亮度变化明显的点。边缘检测的目的就是标识这些像素点,它是图像识别的基础和前提,是图像分割的一部分。它大幅度地减少了数据量,并剔除了可以认为不相关的信息,保留了图像重要的结构属性。因此,边缘检测在数字图像处理中有重要地位。边缘检测就是找到图像中边缘像素点的过程,从而生成一幅边缘图。一般来说,边缘检测分为3:(1) 基于各种原理和方法找到潜在边缘点;(2) 选取阈值,生成二值边缘图;(3) 有些算法还要进行边缘细化、连接等后续处理。2边缘检测2.1边缘属性边缘可能会随着视角的不同而变化,

11、这通常反映在场景、物体的形状上;边缘也可能与视角无关,这通常反映在被观察物体的表面纹理和表面形状上。比如,一个典型的边界可能是一块黄色和一块红色之间的边界;与此相反的边界可能是在一种不变的背景上的一些不同颜色的点。在边线的每一边都会有一个边缘,在许多图像处理的实际应用中边缘都起着非常重要的作用。在自然界中,许多图像的的边缘并不是人们理想的阶梯边缘。相反,它会受到许多因素的影响。比如有限场景深度带来的聚焦模糊;光滑物体边缘的阴影;非半径光源产生的阴影带来的半影模糊等。误差函数经被用于实际应用中的边模糊效果的建模中。2.2导数的计算经典的边缘检测是以原始图像为基础,对图像的各个像素考察它的某个领域

12、内灰度阶跃变化,利用边缘临近一阶或二阶方向导数变化规律检测边缘。边缘检测的基本思想是通过检测每个像元和其邻域的状态,以决定该像元是否位于一个物体的边界上。在一阶导数中,边缘点表现为一个局部极值点,许多边缘检测操作都是基于亮度的一阶导数这样就可以得到原始数据亮度的梯度。而在二阶导数中,表现为一个过零点,它实质上是亮度梯度的变化率,当图像在理想的连续变化的情况下时,通过在二阶导数中检测过零点将会得到梯度中的局部最大值。由此可知,图像中目标的边缘可通过求取它们的导数来确定。导数可用微分算子来计算,而数字图像中求导数是利用差分近似微分来进行的。2.3边缘检测模板边缘检测和区域划分是图像分割技术的两种不

13、同的方法,二者具有互补的特点。在边缘检测中,提取的是图像中不连续部分的特征,根据闭合的边缘来确定区域。而在区域划分中,是把图像分割成特征相同的区域,区域之间的边界就是边缘。此外,由于边缘检测方法不需要将图像逐个像素地分割,因此更适合大图像的分割。边缘大致可以分为两种,一种是阶跃状边缘,这种边缘两边像素的灰度值明显不同;另一种为屋顶状边缘,其边缘处于灰度值由小到大再由大到小的变化转折点处。边缘检测的工具主要是边缘检测模板。现在,我们用一个一维模板为例来说明边缘检测模板是如何作用的。现在假设一个模板为,还有一副图像为,从中可以看出,这幅图像的左边暗,右边亮,图像中间存在着一条明显的边缘,这是一个典

14、型的阶跃状边缘,在使用模板对其进行模板处理之后,结果变成:。这样,我们就可以清楚地看出,进行边缘检测后的图像在原图像边缘处的灰度值要高了一些,在观察时就可以发现一条很明显的亮边,而其他区域都很暗,这就是所谓的边缘检测的效果。模板的作用是用右边邻点的灰度值减去左边邻点的灰度值,得到的结果作为该点的灰度值。这样做的结果是使在灰度值相近的区域内的点的灰度值接近于0,而在图像的边缘附近,灰度值将会有明显的跳变,使得边缘处的点的灰度值很大,这就出现了上面边缘检测的结果。2.4小结边缘是图像最基本的特征,因此,边缘检测是图像处理中非常重要的内容。边缘检测算法的核心思想就是假设边缘点对应于原始图像灰度级梯度

15、的局部极值点。边缘检测模板就是一种边缘检测器,而且它在数学上的涵义是一种基于梯度的滤波器,我们习惯上又把它称为边缘检测算子。梯度是有方向的,并且和边缘的方向是垂直的。比如模板-1 0 1是水平方向的,和上节那幅图像的边缘正好是垂直的,所以用这个模板就可以将这幅图像的边缘检测出来。3图像分割图像分割就是指把图像分成各具特性的区域并提取出感兴趣目标的技术和过程。我们在对图像的研究和应用中,往往只是对图像中的某些部分感兴趣,我们把这些部分一般称为目标或前景。为了识别并对目标进行分析,我们需要将有关区域分离提取出来,再次基础上再对目标加以利用,比如进行特征提取和测量。边缘检测是图像分割的一部分,在上一

16、章中已经作了详细的介绍,本章所要介绍的是图像分割的其他算法。3.1Hough变换Hough变换是图像处理中从图像中识别几何形状的基本方法之一。Hough变换的基本原理在于利用点与线的对偶性,它将原始图像空间中给定的曲线用过表达形式变为参数空间中的一个点。这样,就把原始图像中给定曲线的检测问题转化为寻找参数空间中的峰值问题,也就是把检测整体特性转化为检测局部特性,比如直线、椭圆、圆、弧线等。在图像空间中的任意一点(x,y)经过点-正弦曲线对偶的Hough变换为: (3.1)这样就在参数空间中变为了一条正弦曲线,其中取。我们可以证明,图像空间X-Y中直线上的点,在经过Hough变换后,它们的正弦曲

17、线在参数空间中有一个公共交点。这也就是说,参数空间中的一点,对应于图像空间X-Y中的一条直线,并且它们是一一对应的。所以,为了检测出图像空间中由点所构成的直线,可以将参数空间量化为许多小格。根据图像空间中每个点的坐标(x,y),在内以小格的步长计算各个值,所得的值落在某个小格内,便使该小格的累加计算器加1。当图像空间中全部的点都变换后,对小格进行检验,计数值最大的小格,其值对应于图像空间中所求的直线。参数空间中,、与图像空间中直线的斜率和截距的关系为: , (3.2)图3.11Hough变换原图图3.12Hough变换映射图像图3.13Hough反变换图像如以上三图所示,图3.12为经过灰度级

18、拉伸后的Hough变换映射图像,最亮的4个点代表原图中的4条直线。图3.13为根据图3.12进行Hough反变换后得到的图像。通过与原图像的比较可以看出,4条直线不仅能够检测出来,而且它们的位置也准确无误地呈现出来。3.2阈值法阈值分割法是一种在区域基础上创建的图像分割技术,它的基本原理是:通过设定不同的特征阈值,把图像像素点分为若干类。设原始图像为,按照一定的准则在该图像中找到特征值,将图像分割为两个部分,分割后的图像为: (3.3)如果取为黑,为白,则为图像的二值化。阈值分割法是一种最常用也是最简单的图像分割方法,它特别适用于目标和背景占据不同灰度级范围的图像。阈值分割法一般分为人工选择法

19、和自动选择法。人工法就是结合直方图人为地选择阈值。在本节中,将会主要介绍自动阈值选择法,其中包括:迭代法、Otsu法、一维最大熵法、二维最大熵法、简单统计法。3.2.1迭代法迭代法的基本思想是:开始时选择一个阈值作为初始估计值,然后按照某种策略通过迭代不断地改变这一估计值,直到满足给定的准则为止,这种方法的具体步骤如下:(1) 在一幅灰度范围为0,L-1的图像中,选择图像灰度的中值作为初始阈值,其中图像中对应灰度级的像素数为。(2) 利用阈值把图像分割成两个区域:和,其平均灰度值和可以由下列式子计算。 , (3.4)(3) 计算出和后,用下式计算出新的阈值。 (3.5)(4) 对步骤(2)(3

20、)进行重复,直到和的差小于某个给定值为止。3.2.2Otsu法Otsu法是一种使类间方差最大的阈值确定方法,所以也称为最大类间方差法。这种方法具有简单、处理速度快等特点,是一种常用的阈值选取方法。它的基本思想是:把图像中的像素按照灰度值用阈值分成两类和,由灰度值在0,T之间的像素组成,由灰度值在T+1,L-1之间的像素组成,两类之间的类间方差可由下式计算得出: (3.6)上式中,为中包含的像素数,为中包含的像素数,是中所有像素的平均灰度值,是中所有像素的平均灰度值。令在0,L-1范围内依次取值,使最大的值就是Otsu法的最佳阈值。3.2.3一维最大熵法熵是平均信息量的表征。将信息熵的概念应用于

21、图像阈值分割的基本思想是:利用图像的灰度分布密度函数定义图像的信息熵,根据假设的不同或视角的不同提出不同的熵准则,最后通过优化该准则得到阈值。其中一维最大熵求阈值的方法如下。在一幅灰度范围为0,L-1的图像中,熵函数的定义为: (3.7)式中, 为灰度级出现的概率。当熵函数取得最大值时,对应的灰度值就是所求的最佳阈值。3.2.4二维最大熵法由于灰度一维最大熵是基于图像原始直方图的,它仅仅利用了点灰度信息而未充分利用图像的空间信息,而二维最大熵综合利用了点灰度特征和区域灰度特征,从而较好地表征了图像的信息。它的基本方法是:以原始灰度图像(个灰度级)中各像素及其4邻域的4个像素为一个区域,计算出区

22、域灰度均值图像,这样原始图像中的每一个像素都对应于一个点灰度-区域灰度均值对。设为图像中点灰度为及其区域灰度均值为的像素点数,为点灰度-区域灰度均值对发生的概率,则: (3.8)其中N为图像的大小。则二维最大熵的判别函数为: (3.9)使为最大的阈值和即为所求阈值。其中: 3.2.5简单统计法简单统计法是一种基于简单的图像统计的阈值选取方法。使用该方法,能直接计算一幅图像为的阈值。该方法的计算公式为: (3.10)其中,得到的阈值分割结果如图3.21所示:图3.21Otsu法阈值分割结果3.3特征空间聚类法特征空间聚类法即根据某些特征将目标点划分到相应的类别中,这种方法是一种比较简单有效的图像

23、分割方法。典型的特征空间聚类方法有:K-均值聚类法、ISODATA法、模糊C-均值法等。下面主要介绍前两种方法。3.3.1K-均值聚类法K-均值聚类法可以将一幅图像分割成K个区域。设代表数字图像像素的坐标,代表像素的灰度,则K-均值法的最小化指标为: (3.11)式中:表示图像中有个区域,表示在第次迭代后图像中第个区域,表示此迭代后第个区域的平均值。上式给出了每个像素与其对应区域均值的距离和。K-均值聚类法的具体步骤如下。(1)任意选个初始类均值,、。(2)在第次迭代时,根据以下所述的距离准则将每个像素都赋给类(区域)之一:若即将每个像素赋给均值离它最近的类。(3)对每个类,更新该类的均值:

24、(3.12)式中,是更新后的类中的像素个数。(5) 如果对所有的类,有,则算法收敛,结束;否则退回步骤(2)继续下一迭代。3.3.2ISODATA聚类法原理ISODATA聚类方法是在K-均值算法上发展起来的,它是在没有先验知识的情况下进行的一种无监督分类。首先,它选择若干样本作为聚类中心,再按照某种聚类准则,使其余样本归入最近的聚类中心,得到初始聚类;然后判断初始聚类结果是否合理,若不合理则按照特定规则将聚类集合进行分裂或合并,以获得新的聚类中心,再判断聚类结果是否符合要求。如此反复迭代,直到聚类划分符合要求为止。为了简化程序,本节选择的初始聚类数目远远大于预期聚类数目,因此只需要考虑合并聚类

25、,而不会出现分裂聚类这种情况。具体的步骤如下:(1)设置初始聚类数目 为预期聚类数目 的两倍,并任意选取个初始聚类的均值;(2)求各个样本到所有聚类中心的距离,按照与聚类中心距离最小的原则将各样本归入最近的聚类;(3)更新各聚类均值;如果某聚类内的样本数目为零,并使聚类数目;(4)计算全部聚类均值之间的距离,找到其最小距离。设聚类 和聚类 之间的距离最小,则将两个类合并,合并后的聚类均值为: (3.13)式中,、和分别为合并前聚类和聚类的均值,及其合并后聚类的均值,和为聚类和聚类内的样本数目。合并后聚类的样本数目为和之和,此时聚类数目;(5)如果不大于,则结束;否则退回步骤(2)继续下一次迭代

26、。特征空间聚类法结果如图3.31所示:图3.31特征空间聚类法结果3.4松弛迭代法松弛迭代分割法是以像素为操作对象,借助迭代逐步确定各像素的归类。每次迭代中,需要用到称为相容性的准则。它的基本思想是图像中每一个像素的归属不仅应该由其本身来决定,而且应该受到它的邻域像素的影响。松弛迭代分割法可以用以下3个步骤来完成。(1) 随机初始化标记。设图像的大小为,像素为 ,用阈值法将图像分为个类,第类的均值和方差分别为和。因为像素点和第类的马氏距离为: (3.14)则初始概率为: (3.15)(2) 规则更新。对于类和类,相容性矩阵定义为: (3.16)如果用表示类对点的相容性因素,用表示点的邻域,则:

27、 (3.17)当只考察8点邻域时,则。在第步的概率矢量可用下式计算: (3.18)(3) 迭代终止。松弛迭代是一种像素标记方法,所以可设定一个量(如百分比)来确定迭代是否达到预期目标,并在达到时认为迭代收敛,终止算法。松弛迭代分割图像结果如图3.41所示:图3.41松弛迭代法结果3.5小结图像分割是从图像处理到图像分析的关键步骤,可以说,图像分割结果的好坏直接影响着对图像的理解。因此,它是一种重要的图像技术,在理论研究和实际应用中都得到了人们的广泛重视。4Matlab对边缘检测算法的实现在第二章中,我们已经介绍了一些关于边缘检测的基本概念,使大家对于图像进行边缘检测的方法有了一些了解。在本章中

28、,将会重点介绍如何用Matlab软件对图像进行边缘检测,并对不同的算子产生的不同效果进行比较。原始图像如图4.01所示:图4.01原始图像将原始图像保存在Matlabwork文件夹下,并将图像命名为123,格式为BMP。4.1模板算子法一阶导数模板算子最常用的方法有罗伯特(Roberts)算子法、索贝尔(Sobel)算子法和Prewitt算子法。二阶导数方法就是拉普拉斯算子法。经过拉普拉斯算子卷积以后的图像,还要判断出它的零交叉点,也就是边缘点。在实际应用中,一方面是因为拉普拉斯算子对图像噪声十分敏感,另一方面就是边缘是双像素宽的,且不能提取边缘方向信息,因此它很少直接用于边缘检测,而是与其他

29、方法相结合,提取出定位精确的边缘,该方法就是Kirsch算子法。4.1.1 罗伯特算子罗伯特(Roberts)算子的模板如下: Matlab程序如下:I=imread(123.BMP); %自己输入图片路径,图片名为123,格式为BMPGryIm=rgb2gray(I); %改变图像的灰度,如果是灰度图,则直接删掉这条语句R=0 1;-1 0;%输入罗伯特算子的模板BW=edge(GryIm,R,0.04);%对灰度图进行边缘检测,算子后的阈值参数可以改变subplot(2,2,1);imshow(I);title(原始图像);%输出原始图像subplot(2,2,2);imshow(BW);

30、title(边缘检测结果);%输出边缘检测图像用罗伯特算子法进行边缘检测的结果如图4.02所示:图4.02 Roberts边缘图像4.1.2 Prewitt算子Prewitt算子的模板如下: Matlab程序如下:I=imread(123.BMP); %自己输入图片路径,图片名为123,格式为BMPGryIm=rgb2gray(I); %改变图像的灰度,如果是灰度图,则直接删掉这条语句P=-1 0 1;-1 0 1;-1 0 1;%输入Prewitt算子的模板BW=edge(GryIm,P,0.14);%对灰度图进行边缘检测,算子后的阈值参数可以改变subplot(2,2,1);imshow(

31、I);title(原始图像);%输出原始图像subplot(2,2,2);imshow(BW);title(边缘检测结果);%输出边缘检测图像用Prewitt算子法进行的边缘检测结果如图4.03所示:图4.03 Prewitt边缘图像4.1.3 Sobel算子Sobel算子的模板如下: Matlab程序如下:I=imread(123.BMP); %自己输入图片路径,图片名为123,格式为BMPGryIm=rgb2gray(I); %改变图像的灰度,如果是灰度图,则直接删掉这条语句S=-1 0 1;-2 0 2;-1 0 1;%输入Sobel算子的模板BW=edge(GryIm,S,0.2);%

32、对灰度图进行边缘检测,算子后的阈值参数可以改变subplot(2,2,1);imshow(I);title(原始图像);%输出原始图像subplot(2,2,2);imshow(BW);title(边缘检测结果);%输出边缘检测图像用Sobel算子法进行的边缘检测结果如图4.04所示: 图4.04 Sobel边缘图像4.1.4 拉普拉斯算子拉普拉斯算子是无方向算子,因此它只需要一个模板,下面是三个经常用到的拉普拉斯模板:(1)(2)(3)Matlab程序如下:I=imread(123.BMP); %自己输入图片路径,图片名为123,格式为BMPGryIm=rgb2gray(I); %改变图像的

33、灰度,如果是灰度图,则直接删掉这条语句L= 0 1 0;1 -4 1;0 1 0;;%输入拉普拉斯算子的模板BW=edge(GryIm,L,0.004);%对灰度图进行边缘检测,算子后的阈值可以改变subplot(2,2,1);imshow(I);title(原始图像);%输出原始图像subplot(2,2,2);imshow(BW);title(边缘检测结果);%输出边缘检测图像用拉普拉斯算子法进行的边缘检测结果如图4.05所示:图4.05 拉普拉斯边缘图像4.2高斯算子从拉普拉斯边缘图像中可以看出,拉普拉斯算子对图像噪声比较敏感。为了减少噪声的影响,可以用高斯函数对图像先进行平滑卷积滤波处

34、理,然后再运用拉普拉斯算子。高斯滤波器可定义为如下形式: (4.1)这种将高斯卷积和拉普拉斯算子组合成一个滤波器或算子的方法称为拉普拉斯-高斯(LoG)滤波器或算子,其脉冲响应函数为: (4.2)LoG滤波器可表示成两个高斯函数之差,因此也可以用差分高斯(DoG)算子对图像进行边缘检测,该滤波器定义为如下形式: (4.3)其中,两个高斯函数的均方差为。无论是LoG还是DoG,为了不改变卷积后图像的整体动态范围,还要使模板元素的代数和为零。卷积处理后,仍然要用上一节给出的方法得到零交叉边缘点。Log算子的模板如下:Matlab程序如下:I=imread(123.BMP); %自己输入图片路径,图

35、片名为123,格式为BMPGryIm=rgb2gray(I); %改变图像的灰度,如果是灰度图,则直接删掉这条语句BW=edge(GryIm,LOG,0.005);%对灰度图进行边缘检测,算子后的阈值可以改变subplot(2,2,1);imshow(I);title(原始图像);%输出原始图像subplot(2,2,2);imshow(BW);title(边缘检测结果);%输出边缘检测图像用LOG算子法进行的边缘检测结果如图4.06所示:图4.06 LOG算子边缘检测结果4.3 Canny算子Canny算子是在边缘检测的3个指标(好的检测、好的定位、最小响应)和3个准则(信噪比准则、定位精度

36、准则和单边缘响应准则)的基础上发展起来的一种很有效的边缘检测。Canny边缘检测方法分为4步:(1) 用高斯滤波器对图像进行平滑处理。(2) 利用一阶偏导算子找到图像灰度沿着水平方向和垂直方向的偏导数,并按下列两个式子求出梯度的幅值和方位。在程序中,我们选择性能较好的Sobel算子。 (4.4) (4.5)(3) 对梯度幅值进行非极大值抑制,即找到局部梯度最大点。方法是在33的邻域窗内,给定像素p与沿着梯度线方向的两个像素相比,如果p的梯度幅值不比这两个像素的梯度幅值大,则令p=0,否则保留原幅值。(4) 用双阈值算法检测和连接边缘。方法是凡大于高阈值的一定是边缘;凡小于低阈值的一定不是边缘;

37、如果检测结果大于低阈值而又小于高阈值,则要看这个像素的邻接像素中是否有大于高阈值的边缘像素,如果有,则是边缘,否则不是。这往往是一个迭代的过程。Matlab程序如下:I=imread(123.BMP); %自己输入图片路径,图片名为123,格式为BMPGryIm=rgb2gray(I); %改变图像的灰度,如果是灰度图,则直接删掉这条语句BW=edge(GryIm,Canny,0.005);%对灰度图进行边缘检测,算子后的阈值可以改变subplot(2,2,1);imshow(I);title(原始图像);%输出原始图像subplot(2,2,2);imshow(BW);title(边缘检测结

38、果);%输出边缘检测图像用Canny算子法进行的边缘检测结果如图4.07所示:图4.07 Canny算子边缘检测结果4.4 几种改进的边缘检测算子以上几节重点介绍了模板算子法、高斯算子法、Canny算子法的边缘检测过程,这些边缘检测算子在我们对图像进行处理的过程中经常会遇到,是其他一些边缘检测算子的基础,下面我们再介绍几种改进的边缘检测算子,它们在图像的边缘检测中也起着重要作用。4.4.1 形态学边缘检测形态学边缘检测方法分为形态学梯度法和形态学拉普拉斯法两种,公式如下所示: (4.6) (4.7)形态学梯度法相当于一阶导数,形态学拉普拉斯法相当于二阶导数, 形态学边缘检测结果如图4.08所示

39、:图4.08形态学边缘检测结果4.4.2 小波变换边缘检测对于某些特殊的小波函数,小波变换的极大值对应于图像中的边缘点。在图像中,设是一个平滑函数,令: (4.8)那么,和可以作为小波函数。在尺度下的小波变换是: (4.9)由于二维小波变换的两个分量和分别正比于图像经平滑后的沿水平和垂直方向的偏导数,所以,二维小波变换矢量就是梯度。当取为高斯函数时,它与Canny算子在同一尺度下是等价的。剩下的部分与Canny算子也是一样的,只需要沿着梯度方向检测小波变换系数模的局部极大值点,即可得到图像的边缘点。小波函数的种类很多,也可以自己构造,但用于边缘检测的小波应满足一些条件。在这里,我们选择二次样条

40、小波函数,它的低通滤波系数h(n)和高通滤波系数g(n)如下表所示:n-1012h(n)0.1250.3750.3750.125g(n)-22通过对小波函数尺度选取的不同,得到的边缘和抑制噪声的能力会有所不同。在尺度下,它所对应的滤波器和分别表示在和的相邻系数之间插入个零而得到的离散滤波器。在具体的编程实现中,用高斯滤波器对图像进行卷积得到边缘图像,用低通滤波器对图像进行卷积得到下一个尺度所需要的平滑图像。小波变换边缘检测结果如图4.09所示:图4.09 小波变换边缘检测结果4.4.3金字塔方法金字塔方法是多分辨率图像处理的一个最基本的方法,小波变换的多分辨率分析就是在高斯-拉普拉斯金字塔方法

41、的启发下提出来的。图像处理的金字塔方法是将原始图像分解成不同空间分辨率的子图像,高分辨率(尺度较大)的子图像放在下层,低分辨率(尺度较小)的图像放在上层,从而形成一个金字塔的形状,如图4.10所示:图4.10图像处理的金字塔模型高斯-拉普拉斯金字塔方法也可用于图像的边缘检测。它的基本原理是,先对图像进行高斯卷积,为高斯卷积核,下标表示的是金字塔的层数: (4.10)然后再求出两个图像之间的差值: (4.11)再对卷积后的图像进行隔行隔列采样,这样可以起到降低分辨率的作用: (4.12)这个过程我们称之为高斯塔分解,如图4.11所示:图4.11高斯塔分解模型然后由高斯塔重构拉普拉斯塔,这个过程就

42、是高斯塔分解的逆过程。首先内插放大图像,然后再进行高斯卷积计算: (4.13)拉普拉斯重构过程如图4.12所示:图4.12拉普拉斯塔重构模型金字塔边缘检测结果如图4.13所示:图4.13金字塔边缘检测结果4.5小结以上小节列举了Matlab对一些经典边缘检测算法的实现,其他算法的边缘检测程序和这些经典算法的程序类似,在这里不一一列举了。通过反复实验可以证明:罗伯特(Roberts)边缘算子、索贝尔(Sobel)边缘算子和Prewitt 边缘算子对噪声较为敏感,它们只是进行简单的边缘检测,而不会对要处理的图像事先进行滤波,得到的往往是断续的、不完整的结构信息,为了能成功地检测到真正的边缘, 一般都要先对原图像进行平滑来去除图像中的噪声,再进行边缘检测。高斯拉普拉斯(Laplacian of Gaussian)边缘检测算子将高斯滤波和拉普拉斯边缘检测结合在一起,先对图像进行平滑和积分以滤掉噪声,消除噪声后再进行边缘检测(锐化和微分),得到的效果比较好,且实现容易。坎尼(Canny)边缘算子提取的边缘线型连接程度也较好,边缘提取的也较完整,,但易受噪声影响,为了获得理想的边缘检测结果,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 建筑/施工/环境 > 农业报告


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号