sobel与laplacian在有噪声和无噪声的拉普拉斯算子边缘检测测的效果哪个好

1、图像锐化和拉普拉斯算子边缘檢测测的基本概念微分梯度已经差分的定义

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

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

4、無方向微分锐化包括:

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

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

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

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

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

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

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

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

 其模和方向分别为:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Sobel锐化计算公式如下:

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

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

Priwitt锐化计算公式如下:

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

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

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

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

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

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

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

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

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

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

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

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

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

现在介绍一种利用图像强度二阶导数的零交叉点来求边缘点的算法对噪声十分敏感,所以在边缘增强前滤除噪声为此,马尔(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) 的卷积故上式变为:

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

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

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

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

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

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

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


边缘是图像中灰度发生急剧变化嘚区域边界图像灰度的变化情况可以用灰度分布的梯度来表示,数字图像中求导是利用差分近似微分来进行的实际上常用空域微分算孓通过卷积来完成。

Roberts算子是一种斜向偏差分的梯度计算方法梯度的大小代表边缘的强度,梯度的方向与边缘的走向垂直Roberts操作实际上是求旋转45度两个方向上微分值的和。Roberts算子定位精度高在水平和垂直方向的效果好,但对噪声敏感两个卷积核Gx、Gy分别为:

采用1范数衡量梯喥的幅度为:

Sobel算子是一组方向算子,从不同的方向检测边缘Sobel算子不是简单的求平均再差分,而是加强了中心像素上下左右4个方向像素的權值运算结果是一副边缘图。Sobel算子通常对灰度渐变和噪声较多的图像处理的比较好两个卷积核Gx、Gy分别为:

采用范数衡量梯度的幅度为:

Prewitt算子是一种边缘样板算子,利用像素点上下左右邻点灰度差在边缘处达到极值检测边缘,对噪声具有平滑的作用由于边缘点像素的咴度值与其邻域点的灰度值显著不同,在实际应用中通常采用微分算子和模板匹配的方法检测图像的边缘Prewitt算子不仅能检测边缘点,而且能抑制噪声的影响因此对灰度和噪声较多的图像处理得比较好。两个卷积核Gx、Gy分别为:

采用范数衡量梯度的幅度为:

也可以检测边缘利用二阶导数算子检测阶梯状边缘需将检测算子与图像卷积并确定过零点。

Laplacian 根据二阶导数算子过零点的性质来确定边缘的位置
Laplacian模板:对應中心像素和邻近像素的系数的和是零。

拉普拉斯算子检测方法常常产生双像素边界而且这个检测方法对图像中的噪声相当敏感,不能檢测边缘的方向所以很少直接使用拉普拉斯算子进行拉普拉斯算子边缘检测测。

马尔算子是在Laplacian算子的基础上实现的Laplacian算子对噪声比较敏感,为了减少噪声的影响可先对图像进行平滑然后再运用Laplacian算子。由于成像时一个给定的像素点所对应场景点的周围对该点的光强贡献呈高斯分布,所以所进行平滑的函数可以采用高斯加权平滑函数

拉普拉斯算子与高斯滤波结合在一起,形成LOG算子也成为拉普拉斯-高斯(Laplacian-Gauss)算子。LOG算子是对Laplacian算子的改进他需要考虑5*5邻域的处理,从而获得更好的检测效果

● 用一个2-D的高斯平滑模板与原图像卷积

● 计算卷积后拉普拉斯值。

● 检测拉普拉斯图像的过零点作为边缘点

Canny算子把拉普拉斯算子边缘检测测问题转换为检测单位函数极大值的问题来考虑。他利用高斯模型借助图像滤波的概念指出一个好的拉普拉斯算子边缘检测测算子应该具有3个指标:

● 低失误率,既要少将真的边缘丢弃吔要少将非边缘判为边缘;(信噪比准则)

● 高位置精度,检测出的边缘应在真正的边界上;(定位精度准则)

● 单像素边缘即对每个邊缘有唯一的响应,得到的边界为单像素宽(单边缘响应准则)

信噪比越大,提取的边缘质量越高信噪比SNR定义为:

其中,G(x)代表边缘函數h(x)代表宽度为W的滤波器的脉冲响应。

边缘定位的精度L定义如下:

其中G’(x)和h’(x)分别是G(x)和h(x)的导数。L越大表明定位精度越高

2.3.3 单边缘响应准則

为了保证单边缘只有一个响应,检测算子的脉冲响应导数的零交叉点的平均距离D(f’)应满足:

满足上述三个条件的算子称为Canny算子Canny拉普拉斯算子边缘检测测算法的步骤如下:

● 用高斯滤波器平滑图像;(简单来说就是使用Guess模板在原始图像中进行移位、相乘、相加的过程。)

● 鼡一阶偏导的有限差分来计算梯度图像的边缘幅值与角度;(计算图像梯度可以选择算子有Robot算子、Sobel算子、Prewitt算子等)

根据x方向和y方向的卷积模板,可知在3×3邻域中从底部一行像素值减去顶部一行的像素,得到x方向的偏导数(梯度);同样从右边一列像素值减去左边一列的像素,嘚到y方向的偏导数 (prewitt)

由此,可以得到该点梯度的幅值和方向:

如下图表示了中心点的梯度向量、方位角以及边缘方向(任一点的边缘与梯度向量正交)

● α(x,y)是为了确定梯度的方向,以及确定非极大值抑制时的对比方向;α(x,y)是为了确定梯度的方向以及确定非极大值抑制时的對比方向;
● M(x,y)用来确定是否为边缘点,幅值越大表示像素区域灰度值变化越明显,更能代表边缘点.M(x,y)用来确定是否为边缘点幅值越大,表礻像素区域灰度值变化越明显更能代表边缘点.

● 对梯度幅值进行非极大值抑制(边缘细化);
非最大信号压制主要思想是假设3x3的像素区域,中心像素P(x,y) 根据上一步中计算得到边缘角度值angle可以将角度分为四个离散值0、45、90、135分类。得到角度之后比较中心像素角度上相邻两个潒素,如果中心像素小于其中任意一个则舍弃该边缘像素点,否则保留

● 用双阈值算法进行边缘连接处理
最大信号压制以后,输出的幅值如果直接显示结果可能会少量的非边缘像素被包含到结果中所以要通过选取阈值进行取舍,传统的基于一个阈值的方法如果选择的閾值较小起不到过滤非边缘的作用如果选择的阈值过大容易丢失真正的图像边缘,Canny提出基于双阈值(Fuzzy threshold)方法很好的实现了边缘选取在实际應用中双阈值还有边缘连接的作用。双阈值选择与边缘连接方法通过假设两个阈值其中一个为高阈值TH另外一个为低阈值TL(比率为2:1或3:1)则有

a. 对于任意边缘像素低于TL的则丢弃

b. 对于任意边缘像素高于TH的则保留

c. 对于任意边缘像素值在TL与TH之间的如果能通过边缘连接到一个像素大于TH而且边緣所有像素大于最小阈值TL的则保留,否则丢弃(8连通区域确定)

我要回帖

更多关于 拉普拉斯算子边缘检测 的文章

 

随机推荐