图像锐化的目的是突出图像的边缘信息,加强图像的轮廓特征,以便于人眼的观察和机器的识别。图像的锐化有空间域与频率域两类处理办法。
1.梯度算子
对于图像f(x,y),他在点(x,y)处的梯度是一个二维列向量,定义为
G [ f ( x , y ) ] = δ f δ x δ f δ y = [ δ f δ x δ f δ y ] T = [ G x G y ] T G[f(x,y)] = \begin{array} {|c|} \frac{\delta f}{\delta x} \\ \frac{\delta f}{\delta y} \end{array} = [\frac{\delta f}{\delta x} \quad \frac{\delta f}{\delta y}]^{T} = [G_{x} \quad G_{y}]^{T} G[f(x,y)]=δxδfδyδf=[δxδfδyδf]T=[GxGy]T
梯度方向在函数f(x,y)最大变化率的方向下,梯度的幅值计算如下
∣ G [ f ( x , y ) ] ∣ = G x 2 + G y 2 = ( δ f δ x ) 2 + ( δ f δ y ) 2 |G[f(x,y)]| = \sqrt{G_{x}^2+G_{y}^2}=\sqrt{(\frac{\delta f}{\delta x})^2 + (\frac{\delta f}{\delta y})^2} ∣G[f(x,y)]∣=Gx2+Gy2=(δxδf)2+(δyδf)2
梯度的幅度是一个各向同性的算子,并且是f(x,y)沿G向量方向上最大变化率。在实际计算中,为了降低图像的运算量,常用绝对值或最大值代替平方和平方根运算。有两种二维离散梯度的计算方法,一种称为水平垂直差分,其表达式如下:
∣ G [ f ( i , j ) ] ∣ = ∣ f ( i + 1 , j ) − f ( i , j ) ∣ + ∣ f ( i , j + 1 ) − f ( i , j ) ∣ |G[f(i,j)]| = |f(i+1,j) - f(i,j)| + |f(i,j+1) - f(i,j)| ∣G[f(i,j)]∣=∣f(i+1,j)−f(i,j)∣+∣f(i,j+1)−f(i,j)∣
另外一种称为罗伯茨梯度的差分法,采用交叉运算即
∣ G [ f ( i , j ) ] ∣ = ∣ f ( i + 1 , j + 1 ) − f ( i , j ) ∣ + ∣ f ( i , j + 1 ) − f ( i + 1 , j ) ∣ |G[f(i,j)]| = |f(i+1,j+1) - f(i,j)| + |f(i,j+1) - f(i+1,j)| ∣G[f(i,j)]∣=∣f(i+1,j+1)−f(i,j)∣+∣f(i,j+1)−f(i+1,j)∣
这两种计算方法都无法直接求得在图像的最后一行或一列像素的梯度,一般是使用前一行或前一列进行代替。图像经过梯度计算后,留下灰度值急剧变化的边缘处的点,这就是图像经过梯度运算后可使其细节清晰从而达到锐化目的的实质。
当梯度计算完之后,可以根据需要生成不同的梯度增强图像,第一种使零输出图像各像素的灰度值g(i,j)等于该点的梯度幅度即
g ( i , j ) = ∣ G [ f ( i , j ) ] ∣ g(i,j) = |G[f(i,j)]| g(i,j)=∣G[f(i,j)]∣
这种方法仅仅显示灰度变化剧烈的边缘,灰度变化平缓的区域则为黑色。
第二种方法是令
g ( i , j ) = { ∣ G [ f ( i , j ) ] ∣ , ∣ G [ f ( i , j ) ] ∣ ≥ T f ( i , j ) , 其 他 g(i,j)=\left\{ \begin{aligned} &|G[f(i,j)]|, \quad |G[f(i,j)]| \geq T \\ &f(i,j), \quad 其他 \end{aligned} \right. g(i,j)={