`
阅读更多

图像锐化和边缘检测


本文内容构成:

       1、图像锐化和边缘检测的基本概念,微分梯度已经差分的定义

       2、锐化和边缘检测的像素处理方式(3种)

       3、单方向一阶微分锐化,包括:

             水平方向

             垂直方向

             Kirsch算子

        4、无方向微分锐化,包括:

             Roberts算子

             Sobel算子

             Prewitt算子

             Laplacian算子(二阶微分)

             LOG算子(二阶微分

        5、二阶微分

        6、实验结果对比

 

        在图像增强过程中,通常利用各类图像平滑算法消除噪声,图像的常见噪声主要有加性噪声、乘性噪声和量化噪声等。一般来说,图像的能量主要集中在其低频部分,噪声所在的频段主要在高频段,同时图像边缘信息也主要集中在其高频部分。这将导致原始图像在平滑处理之后,图像边缘和图像轮廓模糊的情况出现。为了减少这类不利效果的影响,就需要利用图像锐化技术,使图像的边缘变得清晰。图像锐化处理的目的是为了使图像的边缘、轮廓线以及图像的细节变得清晰,经过平滑的图像变得模糊的根本原因是因为图像受到了平均或积分运算,因此可以对其进行逆运算(如微分运算)就可以使图像变得清晰。微分运算是求信号的变化率,由傅立叶变换的微分性质可知,微分运算具有较强高频分量作用。从频率域来考虑,图像模糊的实质是因为其高频分量被衰减,因此可以用高通滤波器来使图像清晰。但要注意能够进行锐化处理的图像必须有较高的性噪比,否则锐化后图像性噪比反而更低,从而使得噪声增加的比信号还要多,因此一般是先去除或减轻噪声后再进行锐化处理。

 

       图像锐化的方法分为高通滤波和空域微分法。图像的边缘或线条的细节(边缘)部分 与图像频谱的高频分量相对应,因此采用高通滤波让高频分量顺利通过,并适当抑制中低频分量,是图像的细节变得清楚,实现图像的锐化,由于高通滤波我们在前面频域滤波已经讲过,所以这里主要讲空域的方法——微分法。

 

       一阶微分运算一阶微分主要指梯度模运算,图像的梯度模值包含了边界及细节信息。梯度模算子用于计算梯度模值,通常认为它是边界提取算子,具有极值性、位移不变性和旋转不变性。

图像在点处的梯度 定义为一个二维列矢量:

梯度大的幅值即模值,为:

 

 

梯度的方向在 最大变化率方向上,方向角可表示为:

        对于离散函数 也有相应的概念和公式,只是用差分代替微分。差分可取为后向差分,前向差分。

在x,y方向上的一阶向后差分分别定义为:

 梯度定义为:

 其模和方向分别为:


 

        在实际应用中,梯度的模还有很多近似式,如使用x,y方向上差分绝对值替代模来度量

梯度的模(幅值)就是 最大变化率方向的单位距离所增加的量。由梯度的计算可知,在图像灰度变化较大的边沿区域其梯度值大,在灰度变化平缓的区域梯度值较小,而在灰度均匀的区域其梯度值为零。我们根据得到的梯度值来返回像素的值,如将梯度值大的像素设置成白色,梯度值小的设置为黑色,这样就可以将边缘提取出来了,或者是加强梯度值大的像素灰度值就可以突出细节了达到了锐化的目的。    

 

 

       根据梯度值,进而对像素的处理一般有三种方式:锐化是要突出细节(边界),所以要对边缘的像素加强(比如直接用梯度值作为像素的灰度或者RGB的分量),而边缘检测只要根据设置的阀值,超过阀值的像素灰度设为0,否则设为255。          

 1)辅以阀值判断    设T为阀值,像素的梯度值大于T,则像素的灰度(或者RGB的分量)加上某一个值(如100),加上某一个值(如100)像素的灰度值(或RGB的分量值)后若大于255,取255

   

 

 2)设以某一特定值     设t为阀值,像素的梯度值大于T,则像素的灰度(或者RGB的分量)设置为某一定值La    

                                                             

 3)二值化图像     设T为阀值,像素的梯度值大于T,则像素的灰度(或者RGB的分量)设置为255,否则设置为0     


                                                                 

 

       根据图像边界(细节,边缘)的拓扑结构,一阶微分锐化具体又分为单方向的一阶微分锐化和无方向的微分锐化          

单方向的一阶锐化是指对某个特定方向上的边缘(细节)信息的进行加强。最简单的单方向一阶锐化就是水平方向与垂直方向上的锐化。        

水平方向的锐化非常简单,通过一个可以检测出水平方向上的像素值的变化模板来实现。


                                                              
 垂直方向只需要将方向改变下就可以得到:
                                                                           

Kirsch算子

        Kirsch算子采用8个模板对图像上的每一个像素点进行卷积求导数,这8个模板代表8个方向,对图像上的8个特定边缘方向作出最大响应,运算(与3*3像素加权之和,就是对应位置相乘后求和)中取最大值作为图像的边缘输出。下面是8个模板:

                                                                                               

 

       问题:单方向锐化的计算结果中出现了小于零的像素值?

       方法1:整体加一个正整数,以保证所有的像素值均为正。比如+128,还有<0的则视为0,若有>255视为255处理,这样做的结果是:可以获得类似浮雕的效果。

       方法2:将所有的像素值取绝对值。这样做的结果是,可以获得对边缘的有方向提取。

 

无方向一阶锐化问题的提出                  

       前面的锐化处理结果对于人工设计制造的具有矩形特征物体(例如:楼房、汉字等)的边缘的提取很有效。但是,对于不规则形状(如:人物)的边缘提取,则存在信息的缺损。

为了解决上面的问题,就希望提出对任何方向上的边缘信息均敏感的锐化算法。因为这类锐化方法要求对边缘的方向没有选择,所有称为无方向的锐化算法。

双方向一次微分运算,直接以梯度值代替

       理论基础:对灰度图像f在纵方向和横方向两个方向进行微分。该算法是同时增强水平和垂直方向的边缘。利用双方向一次微分运算,算出梯度后让梯度值赋给该点的灰度值。

数学表达式为:

G(i,j)=sqrt{[f(i,j)-f(i,j-1)]*[f(i,j)-f(i,j-1)]+[f(i,j)-f(i-1,j)]*[f(i,j)-f(i-1,j)]}

或G(i,j)=|f(i,j)-f(i,j-1)|+|f(i,j)-f(i-1,j)|

 

边缘检测

       

       边缘检测算子检查每个像素的领域并对灰度变化率进行量化,通常也包括方向的确定。大多数是基于方向当属模板求卷积的方法。

将所有的边缘模板逐一作用于图像中的每一个像素,产生最大输出值的边缘模板方向表示该点边缘的方向,如果所有方向上的边缘模板接近于零,该点处没有边缘;如果所有方向上的边缘模板输出值都近似相等,没有可靠边缘方向   

                                                                            

卷积
                                                                        

卷积可以简单的看成加权求和的过程。

下面分别对Roberts算子,Sobel算子,Prewitt算子,Laplacian算子介绍:

 

(1)无方向一阶锐化——交叉微分

交叉微分算子(Robert算子)计算公式如下:

                                                                                

特点:算法简单

 

(2)无方向一阶锐化——Sobel锐化

Sobel锐化计算公式如下:

                                                                                                 

Sobel边缘算子的卷积和如上图所示,图像中的每个像素都用这两个核做卷积。Sobel算子认为邻域的像素对当前像素产生的影响不是等价的,所以距离不同的像素具有不同的权值,对算子结果产生的影响也不同。一般来说,距离越大,产生的影响越小。这两个核分别对垂直边缘和水平边缘响应最大,两个卷积的最大值作为该点的输出位。运算结果是一幅边缘幅度图像。

 特点:锐化的边缘信息较强

 

(3)无方向一阶锐化——Priwitt锐化                                                                             

Priwitt锐化计算公式如下:

Prewitt算子在一个方向求微分,而在另一个方向求平均,因而对噪声相对不敏感,有抑制噪声作用。但是像素平均相当于对图像的低通滤波,所以Prewitt算子对边缘的定位不如Roberts算子。

特点:与Sobel相比,有一定的抗干扰性,图像效果比较干净。

 

几种方法的效果比较

       Sobel算法与Priwitt算法的思路相同,属于同一类型,因此处理效果基本相同。

       Roberts算法的模板为2*2,提取信息较弱。

       单方向锐化经过处理之后,也可以对边界进行增强。

 

二阶微分锐化——问题的提出

                                                                                       

       1)对应突变形的细节,通过一阶微分的极值点,二阶微分的过0点均可以检测处理

       2)对应细线行的细节,通过一阶微分的过0点,二阶微分的极小值点均可以检测处理。

       3)对应渐变的细节,一边情况很难检测,但二阶微分的信息比一阶微分的信息略多。

二阶微分锐化——算法推导


                                                                                
 
                                             

 

将上面推导的公式写成模板系数形式,即为Laplacian算子:     

       Laplacian算子利用二阶导数信息,具有各向同性,即与坐标轴方向无关,坐标轴旋转后梯度结果不变。使得图像经过二阶微分后,在边缘处产生一个陡峭的零交叉点,根据这个对零交叉点判断边缘。                                                                    

Laplacian变形算子

                                                                  

为了改善锐化效果,可以脱离微分的计算原理,在原有的算子基础上,对模板系数进行改变,获得Laplacian变形算子:

其中H2是在H1的基础上在考虑45°和135°方向的结果

                                                            

Laplacian算子对噪声比较敏感,Laplacian算子有一个缺点是它对图像中的某些边缘产生双重响应。所以图像一般先经过平滑处理,通常把Laplacian算子和平滑算子结合起来生成一个新的模板。

Log边缘算子

现在介绍一种利用图像强度二阶导数的零交叉点来求边缘点的算法对噪声十分敏感,所以在边缘增强前滤除噪声。为此,马尔(Marr)和希尔得勒斯(Hildreth)根据人类视觉特性提出了一种边缘检测的方法,该方法将高斯滤波和拉普拉斯检测算子结合在一起进行边缘检测的方法,故称为Log(Laplacian of Gassian )算法。也称之为拉普拉斯高斯算法。该算法的主要思路和步骤如下:

(1)滤波:首先对图像f(x,y)进行平滑滤波,其滤波函数根据人类视觉特性选为高斯函数,即:

 

其中,G(x,y)是一个圆对称函数,其平滑的作用是可通过  来控制的。将图像 G(x,y)与f(x,y) 进行卷积,可以得到一个平滑的图像,即:

(2)增强:对平滑图像g(x,y) 进行拉普拉斯运算,即:

                                                                   

(3)检测:边缘检测判据是二阶导数的零交叉点(即h(x,y)=0  的点)并对应一阶导数的较大峰值。

 这种方法的特点是图像首先与高斯滤波器进行卷积,这样既平滑了图像又降低了噪声,孤立的噪声点和较小的结构组织将被滤除。但是由于平滑会造成图像边缘的延伸,因此边缘检测器只考虑那些具有局部梯度最大值的点为边缘点。这一点可以用二阶导数的零交叉点来实现。拉普拉斯函数用二维二阶导数的近似,是因为它是一种无方向算子。在实际应用中为了避免检测出非显著边缘,应选择一阶导数大于某一阈值的零交叉点作为边缘点。由于对平滑图像g(x,y) 进行拉普拉斯运算可等效为G(x,y) 的拉普拉斯运算与f(x,y) 的卷积,故上式变为:

                                                               

式中  称为LOG滤波器,其为:

                                                     
这样就有两种方法求图像边缘:

①先求图像与高斯滤波器的卷积,再求卷积的拉普拉斯的变换,然后再进行过零判断。

②求高斯滤波器的拉普拉斯的变换,再求与图像的卷积,然后再进行过零判断。

这两种方法在数学上是等价的。上式就是马尔和希尔得勒斯提出的边缘检测算子(简称M-H算子),由于LOG滤波器在(x,y) 空间中的图形与墨西哥草帽形状相似,所以又称为墨西哥草帽算子。

拉普拉斯算子对图像中的嗓声相当敏感。而且它常产生双像素宽的边缘,也不能提供边缘方向的信息。高斯-拉普拉斯算子是效果较好的边沿检测器,常用的5×5模板的高斯--拉普拉斯算子如图2.7所示:

                                                                                    

                                                                                            高斯—拉普拉斯算子

高斯--拉普拉斯算子把高斯平滑滤波器和拉普拉斯锐化滤波器结合起来,先平化掉噪声,再进行边缘检测,所以效果更好。

程序的主要思想就是将每个像素的灰度值或RGB的分量与算子矩阵求卷积(用加权求和代替),只是锐化是要突出细节(边界),所以要对边缘的像素加强(比如直接用梯度值作为像素的灰度或者RGB的分量),而边缘检测只要根据设置的阀值,超过阀值的像素灰度设为0,否则设为255。
查看实验效果:


 

 

 

 

 

 

 

 

 

 

 

 

 

  • 大小: 1.2 KB
  • 大小: 1.7 KB
  • 大小: 4 KB
  • 大小: 5.7 KB
  • 大小: 3.5 KB
  • 大小: 5.7 KB
  • 大小: 4.3 KB
  • 大小: 4.2 KB
  • 大小: 2.3 KB
  • 大小: 1.4 KB
  • 大小: 5.6 KB
  • 大小: 14.3 KB
  • 大小: 12.3 KB
  • 大小: 10.8 KB
  • 大小: 8.9 KB
  • 大小: 47.5 KB
  • 大小: 14.3 KB
  • 大小: 16.8 KB
  • 大小: 17.3 KB
  • 大小: 23.7 KB
  • 大小: 15.4 KB
  • 大小: 16.5 KB
  • 大小: 4.8 KB
  • 大小: 10.3 KB
  • 大小: 5.1 KB
  • 大小: 13.3 KB
  • 大小: 33.8 KB
  • 大小: 5.1 KB
  • 大小: 3.1 KB
  • 大小: 3.9 KB
  • 大小: 3.5 KB
  • 大小: 1.7 KB
  • 大小: 9.8 KB
  • 大小: 20.5 KB
  • 大小: 936 Bytes
  • 大小: 1.6 KB
  • 大小: 31.3 KB
  • 大小: 52 KB
  • 大小: 42.5 KB
  • 大小: 58.4 KB
  • 大小: 39.8 KB
  • 大小: 65.3 KB
  • 大小: 17.8 KB
  • 大小: 19.5 KB
  • 大小: 21.3 KB
  • 大小: 34.1 KB
  • 大小: 19.6 KB
  • 大小: 22.8 KB
  • 大小: 39.8 KB
  • 大小: 33.3 KB
  • 大小: 30 KB
  • 大小: 21.3 KB
分享到:
评论
3 楼 DSQiu 2014-12-04  
Isabella925813290 写道
棒棒棒 呀呀呀呀

thanky you !!!
2 楼 Isabella925813290 2014-12-04  
棒棒棒 呀呀呀呀
1 楼 chenzheng8975 2012-09-04  
我们当年学数字图像处理用都是Matlab语言

相关推荐

    VC++图像锐化和边缘检测

    以上就是关于使用VC++进行图像锐化和边缘检测的一些核心概念和技术。在实际应用中,根据图像的具体特性和需求,可能需要调整参数或结合多种算法以达到最佳效果。对于初学者来说,理解这些基础算子的工作原理并动手...

    图像锐化处理及边缘检测

    图像锐化处理及边缘检测是图像处理中的重要组成部分,通过增强图像的边缘细节,不仅可以提高图像的视觉效果,还可以为后续的图像分析任务提供更准确的数据支持。了解和掌握这些技术和方法对于从事图像处理和计算机...

    matlab图像锐化处理及边缘检测.doc

    边缘检测可以分为梯度运算边缘检测和非梯度运算边缘检测。梯度运算边缘检测是指通过对图像进行梯度运算,检测出图像中的边缘和轮廓。非梯度运算边缘检测是指通过对图像进行非梯度运算,检测出图像中的边缘和轮廓。 ...

    Matlab图像锐化处理及边缘检测.docx

    在图像处理中,边缘检测和图像锐化处理是紧密相连的,边缘检测的结果可以用来指导图像锐化处理,反之亦然。边缘检测可以帮助我们找到图像中的边缘,然后通过图像锐化处理来增强这些边缘,使图像变得更加清晰。 ...

    7 matlab图像去噪滤波 锐化边缘检测和图像锐化_滤波去噪_图像去噪_图像增强_

    综上所述,这个MATLAB资源包是学习和实践图像处理技术的宝贵工具,它涵盖了从基础的去噪滤波到复杂的边缘检测和图像增强。通过实践和理解这些概念,你将能够处理各种图像质量问题,提升图像的视觉质量和分析能力。

    Matlab图像锐化处理及边缘检测.pdf

    在图像处理领域,图像锐化处理和边缘检测是两个关键的技术,主要用于提升图像质量和提取图像特征。Matlab作为强大的计算平台,提供了丰富的工具和函数支持这两种操作。 首先,图像边缘锐化的基本方法是通过强调图像...

    图像锐化和边缘检测.pdf

    图像锐化可以用来增强图像的边缘和细节信息,而边缘检测可以用来检测和提取图像的边缘信息。两者的结合可以使得图像处理更加准确和有效。 图像锐化和边缘检测是两个重要的图像处理技术领域。它们可以用来增强图像的...

    17.图像锐化与边缘检测之Roberts算子、Prewitt算子、Sobel算子和Laplacian算子1

    在进行图像锐化和边缘检测时,通常会先对图像进行预处理,如平滑滤波,以降低噪声影响。之后,使用上述算子之一进行边缘检测,增强图像的边缘信息。最后,可以通过调整阈值或其他后处理技术来进一步优化边缘检测的...

    数字图像处理图像锐化和边缘检测代码

    常见的边缘检测算法包括Canny边缘检测、Sobel边缘检测和Prewitt边缘检测等。Canny算法是一种多级边缘检测方法,它通过计算梯度强度和方向,然后应用非极大值抑制和双阈值检测来确定最终的边缘。Sobel和Prewitt算子则...

    【老生谈算法】Matlab图像锐化处理及边缘检测.doc

    Matlab 图像锐化处理及边缘检测是图像处理中两个非常重要的方面,图像锐化处理可以增强图像的边缘,使模糊的图像变得更加清晰起来,颜色变得鲜明突出,图像的质量有所改善,产生更适合人观察和识别的图像。边缘检测...

    基于MATLAB.图像去噪 滤波 锐化 边缘检测

    图像去噪 滤波 锐化 边缘检测"是一个实例教程,旨在帮助用户理解和应用MATLAB进行图像处理的四个关键步骤:去噪、滤波、锐化和边缘检测。 1. 图像去噪: 去噪是图像处理中的重要环节,其目的是去除图像中的噪声,...

    数字图像处理 锐化及边缘检测

    在数字图像处理领域,锐化和边缘检测是两个至关重要的技术。它们主要用于增强图像的细节,突出图像中的轮廓,使得图像更加清晰或者便于后续的分析和识别。在本专题中,我们将深入探讨这两个概念,特别是在VC++6.0...

    基于边缘检测的图像锐化算法

    ### 基于边缘检测的图像锐化算法 #### 概述 图像锐化技术是数字图像处理领域中的一项重要技术,它通过增强图像中的高频成分(如边缘和细节)来提升图像的整体清晰度和可读性。然而,传统的锐化方法在提高图像清晰...

    MATLAB实现图像去噪 滤波 锐化 边缘检测.zip

    图像锐化是提升图像清晰度的过程,通常通过增强图像的边缘和高频成分来实现。MATLAB中的`unsharp_mask`函数可以实现传统的反锐化掩蔽技术。另外,拉普拉斯算子(Laplacian Operator)和梯度算子(Sobel, Prewitt)...

    Matlab图像锐化处理及边缘检测.doc

    在图像处理领域,图像锐化和边缘检测是两个关键步骤,它们有助于提高图像的清晰度和提取图像的关键信息。Matlab作为一个强大的数值计算和可视化工具,提供了丰富的函数和算法来实现这两个任务。 **图像边缘锐化的...

    MATLAB实现图像去噪滤波锐化边缘检测_边缘检测_边缘锐化_matlab_matlab锐化_去噪_

    本项目主要关注的是图像的去噪、滤波、锐化和边缘检测,这些都是图像处理的重要环节。 首先,我们要理解图像去噪的重要性。图像在获取过程中可能会受到各种噪声干扰,如椒盐噪声、高斯噪声等,这些噪声会降低图像的...

    【老生谈算法】matlab实现图像锐化处理及边缘检测.doc

    【图像锐化处理与边缘检测】在MATLAB中,图像处理是通过算法来实现的,主要涉及图像的特征提取和视觉效果改善。本文档详细介绍了如何利用MATLAB进行图像锐化处理和边缘检测,这对于图像分析和机器视觉领域至关重要。...

    VC 图像平滑、边缘检测、边缘增强、锐化、腐蚀、开运算等

    在图像处理领域,VC(Visual C++)是一种常用的编程环境,可以用来实现各种图像操作,如图像平滑、边缘检测、边缘增强、锐化、腐蚀和开运算等。这些技术在计算机视觉、图像分析和模式识别中都有着广泛的应用。下面...

Global site tag (gtag.js) - Google Analytics