图像增强算法之我见

       我们实现图像增强算法的目的通常是为了改善图像的视觉效果。即突出图像中感兴趣的整体或局部特性,扩大图像中不同物体或区域之间的成像差别,抑制不感兴趣的特征,提高图像清晰度改善图像质量、丰富信息量,加强图像判读和识别效果,满足某些特殊分析的需要。

       许多教材上提到图像增强算法,一般将其分成两大类:频率域法和空间域法。从广义上将均值滤波、中值滤波等去噪算法也一并归为增强算法。我想对增强算法从视觉效果上进行分类,从三个方面谈一下如何提高人对图像的主观视觉感受。

       一,图像的对比度。

       二,图像的层次感。

       三,图像的细节。

       首先,图像的对比度增强算法。通常我们增加图像的对比度,就是把图像的动态范围拉大,对于常见的8bit表示每个像素的图像,动态范围占满整个0~255个灰度级,要比只用局部灰度表达,对比度要明显变大。通常采用的动态范围拉伸方法包括(1)线性映射,Matlab中的函数imdajust()实现的就是该功能,等比例拉伸动态范围时,参数设定可能会因饱和截断造成灰度级的损失;(2)非线性Gamma变换映射,可以根据需要确定映射曲线,放大高灰度级动态范围,缩小低灰度级动态范围;(3)也可以利用改进Gamma变化,从动态范围的中间灰度级向两端拉伸。

       其次,图像的层次感增强算法。直方图均衡化算法也是一种有效的图像层次感增强方法,如果图像噪声偏大,对噪声会有放大作用;如果某一灰度范围的像素分布概率密度过大,也会带来层次拉伸过大的问题,有些细节对应的像素分布概率密度过小,在映射时会被挤压消失。针对这一不足,人们提出了平台直方图均衡化,即在计算累积直方图时,增加阈值判断,对概率密度过大的灰度级进行限制。这样的平台直方图均衡化算法仍然只是用全图统计的概率密度进行统计计算,未考虑局部特性。为此,人们又提出了限制对比度的自适应直方图均衡化算法,通过对图像进行分块,分别统计直方图进行映射,提高了增强局部层次感的效果。具体效果可以参考Matlab中的函数adaphisteq()。

      第三,图像的细节增强算法。最早接触到的细节增强算法一般是锐化,就是将图像中的高频信息分离出来乘以增强系数,然后再叠加到原始图像中。锐化可以是4邻域也可以是8邻域。对锐化算法思路进行扩展,就是高低频分离是低通或者高通滤波的窗口大小形状进行变化,可以获得不同的细节增强效果。

      从上述三个方面对图像进行处理,一般就能获得想要的增强效果,这些方法均可以在空间域实现,简单实用。有些特殊需要也可以考虑在频率域实现,如傅立叶变换、小波变换增强,但是复杂度要增加很多了。

你可能感兴趣的:(算法学习)