图像增强相关算法介绍 ------ 1

1、关于增强的理解

图像增强是为了强调图像中的某些信息,加强图像整体或局部特征。常用的方法有:统计正方图增强、图像平滑锐化等。按照实现的方式不同可以分为:空间域增强和频率域增强。频域处理是对图像的部分频率成分进行剔除(滤波)从而实现平滑或者锐化。空域处理是直接对图像数据处理,比如灰度变换和直方图变换等。

1.1 频域
原图像为I(x,y),二位离散傅里叶变换可表示为:

F(u,v)=1MNx=0M1y=0N1f(x,y)ej2π(ux/M+vy/N)

经过系统函数H(u,v)的变换可以得到一个新的频率函数K(u,v):
K(u,v)=H(u,v)F(u,v)
I(x,y)=F1[K(u,v)]

低频分量在视觉上为平滑部分,高频分量在视觉上为边缘部分,不同的分量处理得到不同的视觉效果。

1.2 空域
直接对图像的二维矩阵数据进行处理操作,如直接的灰度变换,阈值等。直方图处理是根据图像的数据得到图像数据的分布信息,由此信息我们可以对图像重新赋值,得到均匀分布的图片。
图片中某一位置的信息一般只与该位置附近的像素点有关,而距离较远的点对其影响不大。所以通常情况下会采用领域的操作实现图像的一些处理,邻域大小通常为3*3 或者 5*5 。比如中值滤波,比如Sobel算子,Canny算子,Laplacian算子等离散差分法。

2 几种 增强方法

1、对数变换
对数变换可以把图像中较暗的像素变大,用于扩展图像中较暗的像素值。其形式如:

f(x)=klog(xmin+1)

k是一个常数,保证计算得到的数值不大于255.
k=255log(maxmin+1)
比如考试成绩取对数,应该有同学深有感触。

2、伽马校正
由于图像的显示和打印装置的响应函数大多是幂函数形式,所以可以对输入图像进行幂变换,使图像同入射光强相等或成正比。因为涉及到成像效果,从摄影、建筑的角度来分析就是18度灰才是中灰度。算法的实现我们看一个例子,假设像素值为100的一个点:
1、归一化:将像素值投射到0-1之间的实数中,

(i+0.5)/256|i=100=0.392578125

2、补偿:假设伽马值为2.2 ,则1gama=0.454545454,则像素的补偿结果为:
f1gama|f=0.392578125=0.65379

3、映射回图像:
(g2560.5)|g=0.65379=166.87
取值为166.其中的运算量不小,实际中可采用查表的方式。

3、灰度直方图
直方图是一个统计数据,变现为图像中灰度值出现的概率,假设一副640*480的图像,其中灰度值为100的像素点为1240个,那么灰度值100 出现的概率为:1240 /(640*480).把每一个像素值出现的次数都统计出来,就得到了各个值对应的概率。在这里加入一点概率分布和概率密度函数的记录,方便查阅。设离散型随机变量X的分布律为:

P{X=Xk}=pk
F(x)=P(Xx)=xkxPk

这里的F(x)就是概率分布函数了。接下来在看看概率密度函数,书上说:

“密度函数”这个名词的来由可以解释如下,取定一个点x,则按分布函数的定义,事件|x<Xx+h|的概率(h>0 为常数),应为F(x + h) - F(x),所以,比值[F(x+h) - F(x)]/h可以解释为在x点附近h这么长的区间(x,x+h)内,单位长所占有的概率。令 h -> 0,则这个比的极限,即F(x)=f(x),也就是在x点处(无穷小区段内)单位长的概率,或者说,它反映了概率在x点处的“密集程度“。你可以设想一条极细的无穷长的金属杆,总质量为1,概率密度相当于杆上个点的质量密度。

P(axb)=F(b)F(a)=abf(x)dx

图像增强相关算法介绍 ------ 1
图为连续型随机变量的分布函数和概率密度函数,由概率密度函数我们可以清晰的知道那些位置的概率要大一些。
在直方图均衡中我们需要的是概率分布函数。假设图像中最大的像素值为124,那么概率分布函数:
F(x124)=1
我们将计算得到的概率分布函数重新映射到0-255.例如这里的124 就映射为255.

4、图像平滑
最常用的是邻域平均法

f¯(x,y)=1M(s,y)Sf(x,y)
这种方法平滑掉噪声的同是也平滑了图像信息。一般通过加权算子对图像领域进行平滑
15|010111010|110|111121111|116|121242121|

还有几何均值:

f¯(x,y)=[(x,y)Sf(x,y)]1nm

和逆谐波均值:
f¯(x,y)=(x,y)Sf(x,y)q+1(x,y)Sf(x,y)q

中值滤波
对于邻域内的像素按大小排列,比如3*3的核,9个数按大小排列,我们取第5个数。
5、图像锐化
图像平滑会带来图像边缘模糊,一般是由平均和积分造成的,我们可以使用梯度锐化对于图像f(x,y),他在(x,y)处的梯度可表示为:
G[f(x,y)]=[(fx)2+(fy)2]1/2

离散图像可表示为:
R[f(x,y)]={[f(x,y)f(x1,y)]2+[f(x,y)f(x,y1)]2}1/2

图像的第一行和第一列一般用后一行或者后一列的梯度近似。
二阶微分-拉普拉斯算子
2f=(2fx2)+(2fy2)

拉普拉斯算子是n维欧几里德空间二阶微分算子,定义为梯度的散度。离散函数的二阶微分退化成
2fx2=f(x+1,y)+f(x1,y)2f(x,y)

2fy2=f(x,y+1)+f(x,y1)2f(x,y)

2f=f(x+1,y)+f(x1,y)+f(x,y+1)+f(x,y1)4f(x,y)

写成filter mask的形式就是
[010141010]

这个矩阵90°方向上无方向性,为了让45°方向上也没有方向性,矩阵修改为:
[111181111]

由二阶微分算子得到的图像只是强调灰度不连续的部分,也就是边缘信息。背景特征可以由原图和拉普拉斯计算后的图混合得到:
g(x,y)=f(x,y)+λ[2f(x,y)]

这里因为拉普拉斯算子中心为负数,我们的λ取1。
参考:
1、https://blog.****.net/u013625961/article/details/54375010
2、《基于Retinex理论的图像增强恢复算法研究》
3、https://www.cnblogs.com/german-iris/p/4840647.html