图像边缘锐化,其实很简单-提取边界+处理边界

一阶导数=0,取到最值,表示函数斜率的变化

二阶导数=0,取到极值,表示函数斜率曲线的斜率的变化

闲置了好久的高数我竟然还会点,2333333333

一起看下图像边缘锐化处理吧

1.图像边缘锐化处理定义

图像锐化(image sharpening)是补偿图像的轮廓,增强图像的边缘及灰度跳变的部分,使图像变得清晰,分为空间域处理和频域处理两类。图像锐化是为了突出图像上的物体的边缘、轮廓,或某些线性目标要素的特征。这种滤波方法提高了物体边缘与周围像元之间的反差,因此也被称为边缘增强。

2.图像边缘锐化处理的问题

  1. 怎样提取边界
  2. 怎样处理边界

2.1图像边缘锐化处理必备技能包

  •  微分运算

找到边界,进行微分运算后,在边界处的微分图变化明显,会出现阶跃,然而其他部分变化缓慢。

  •  梯度锐化

可以增强边缘,从而使边缘更加突出,使边界更加清晰。

3.微分运算

我们想要找到图像某个实物的边缘,就要找到图像这个实物的灰度值或颜色分量或纹理结构在某一个方向上的变化量比较大的地方。然后利用减法,计算变化量,图像实物变化量较小,边缘处变化非常大。

3.1 单向微分运算

  • 纵向微分运算:当前像素减去左边像素(右列-左列)
    公式:G(i,j)=f(i,j)-f(i-1,j)
  • 横向微分运算:当前像素减去上边像素(下列-上列)
    公式:G(i,j)=f(i,j)-f(i,j-1)

3.2 双向一次微分运算

即在纵方向,又在横方向进行微分运算,同时增强水平和垂直方向的边缘

公式: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)]} 即:(纵向微分运算的平方+横向微分运算的平方)然后开方

3.3 微分运算的作用

  • 相减结果反映了图像亮度变化率的大小
  • 像素值保持不变的区域,相减的结果为0,即像素为黑
  • 像素值变化剧烈的区域,相减后得到较大的变化率,像素灰度值差别越大,则得到的像素就越亮,图像的垂直边缘得到增强。
     

4.梯度锐化

常用方法:

  • 直接以梯度值代替: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)]} 直接将双向微分的值代替当前像素的灰度值,但是边界可能会很暗,不是那么清晰 
  • 辅以门限判断:双向微分运算计算出得梯度值可能会很小,不能作为边界。所以给求出的梯度值指定阈值进行判断,如小于阈值,则不作为边界(可能是物体内部亮度不均匀产生的偏差),反之为边界。

1.利用双向微分计算梯度 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)]} 

2.G(i,j)=\binom{G(i,j)+100; G(i,j)\geq T}{G(i,j); other} 

边界梯度值计算出来后,可能亮度比较小,再给当前边界加上100,若大于255则取255,这样就可以使边界更加清晰

  • 给边缘规定一个特定的灰度级

与辅以门限判断类似;区别就是将大于指定阈值的梯度替换成指定的值

1.利用双向微分计算梯度 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)]} 

2.G(i,j)=\binom{La; G(i,j)\geq T}{G(i,j); other}

La为一指定的灰度值  例 La=255 边界一最亮的灰度值展示,更加清晰

  • 根据梯度二值化图像

与辅以门限判断、给边缘规定一个特定的灰度类似;就是将大于指定阈值的像素直接置白(255),反之置黑(0)

1.利用双向微分计算梯度 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)]} 

2.G(i,j)=\binom{255; G(i,j)\geq T}{0; other}

 


版权声明:本文为SjwFdb_1__1原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。