图像优化算法(HE、AHE、CLAHE)简单介绍
⼀、灰度直⽅图均衡算法(HE)
1.1、算法简介
直⽅图均衡化通常⽤来增加许多图像的 全局对⽐度 ,尤其是当图像的有⽤数据的对⽐度相当接近的时候。通过这种⽅法,亮度可以更好地在直⽅图上分布。这样就可以⽤于增强局部的对⽐度⽽不影响整体的对⽐度,直⽅图均衡化通过有效地扩展常⽤的亮度来实现这种功能。
这种⽅法对于背景和前景都太亮或者太暗的图像⾮常有⽤,这种⽅法尤其是可以带来X光图像中更好的⾻骼结构显⽰以及曝光过度或者曝光不⾜照⽚中更好的细节。这种⽅法的⼀个 缺点是它对处理的数据不加选择,它可能会增加背景噪声的对⽐度并且降低有⽤信号的对⽐度。
直⽅图均衡技术将原始图像的灰度直⽅图从⽐较集中的某个灰度区间变成在全部灰度范围内的均匀分布, 由于其算法简单, ⽆需借助外来因素的参数设置,可以⾃成系统的运⾏, 有效地增强图像对⽐度, 是⼀种常⽤的图像增强⽅法. ⼀直以来, 直⽅图均衡技术受到各个领域的重视, ⽐如在消费类电⼦产品邻域, 在均衡图像的同时希望保持图像的亮度信息.
在这⾥先提出两个基础问题:
何为灰度值?
何为均衡化?为什么需要均衡化?
第⼀个问题:由于采集到的图像各点的颜⾊及亮度不同,摄成的⿊⽩照⽚上或电视接收机重现的⿊⽩图像上各点呈现不同程度的灰⾊。把⽩⾊与⿊⾊之间按对数关系分成若⼲级,称为“灰度等级”。范围⼀般从0到255,⽩⾊为255,⿊⾊为0,这就是我们常说的灰度值。
第⼆个问题:⼀般我们采集到的每⼀帧图像,在灰度等级0~255范围内都会有不同的分布,你们想象⼀下两个场景,⼀个是摄像头处于过亮的环境,这代表着,摄像头采集到的图像会过爆,通俗⼀点的理解,就是过⽩,那么这帧图像的灰度分布,⼤部分都会集中在靠
近“255”的地⽅,另⼀种场景,就是摄像头处于过暗的环境,这代表着,摄像头采集到的图像会“过⿊”,那么这帧图像的灰度分布,就会集中在⽐较靠近"0"的地⽅。对于这两种情况来说,都会造成图像不够清晰。⽽均衡化的意思,就是将图像的灰度分布,根据某些对应关系,将其分布得更加合理,进⽽提升图像的质量。看⼀下下⾯不同情况下的效果图,可能就更能理解上⾯的描述了。
1.2、HE算法实现
HE算法的实现可以分成下⾯⼏个步骤:
遍历每⼀帧图像中的所有像素,记录每个灰度值出现的像素个数
统计每个灰度值占总像素的百分⽐,也就是每个灰度值出现的概率
建⽴⼀个映射表,对原图像的灰度值⼀⼀进⾏映射,修改成新的灰度值,映射关系为:
新灰度值 = (最⼤灰度值(255) - 最⼩灰度值(0))* 累积概率
为了⼤家更好理解,我来举个例⼦,⽐如我们现在有⼀个4*4像素的图像数据,它们的灰度值分别如下:
5012825550
12820050255
255128128200
50128200255
灰度值出现次数所占概率累计概率映射后灰度值
5040.250.2564
12850.31250.5625143
20030.18750.75191
25540.251255
那么,最终映射后的像素灰度值就变成了下⾯表格中所⽰:
6414325564
14319164255
255143143191
局部直方图均衡化64143191255
1.3、HE算法的缺点
从上⾯介绍的原理⼤家知道,HE算法是对图像进⾏了全局的均衡,也就是,⽐如你所导⼊的图像场景,有⾮常亮的区域,也有较暗的区域,那就会导致较暗的区域在均衡处理过后,亮度被拉得太⾼,出现了噪点,甚⾄是直接变成⽩⾊,这就是HE算法的⼀个劣势,在某种场景下,使⽤该算法像强化,有可能会出现适得其反的作⽤。
⼆、⾃适应直⽅图均衡算法(AHE)
2.1、算法简介
AHE算法是HE算法的优化版本。
我们上⾯有说到,常规的直⽅图均衡算法虽然算法简单,但是其作⽤并⾮的全⾯的,因为它是对图像
进⾏全局处理,对某种特定的图像数据来说,使⽤直⽅图均衡算法会出现许多明显的噪点,甚⾄于弱化了图像细节,使图像呈现出来的效果反⽽更差。
⾃适应直⽅图均衡算法在常规直⽅图均衡算法的基础上,将图像划分为⼏块分别处理,没⼀⼩块图像统计⼀个各⾃专属的分布函数,这样有利于更好地处理图像数据的局部细节,但是由于图像被等分为⼏块分别处理,这会导致算法的时间复杂度提⾼不少,降低了图像处理效率,并且还有另⼀个缺点,由于AHE算法是对每个像素块独⽴进⾏处理映射,也就是块与块之间并没有做⼀个过渡处理,这样会导致⼀个问题现象,那就是图像呈现出来的效果就像是被切割成了⼏个块。
三、限制对⽐度⾃适应直⽅图均衡算法(CLAHE)
3.1、算法简介
CLAHE算法是在AHE和HE算法基础上的,优化升级版本的算法
我们上⾯介绍了AHE算法的缺点,没有对块与块的边缘做过渡处理,并且会存在过度放⼤图像的问题,⽽限制对⽐度⾃适应直⽅图均衡算法,顾名思义,就是在⾃适应直⽅图均衡算法的基础上,加上阈值,⽤来限制对⽐度,达到削弱噪点放⼤问题的效果,并且使⽤线性插值/双线性插值的⽅法来优化块与块之间过渡问题,使图像看起来更加和谐。线性插值和双线性插值的原理,就是当前块中的像素
灰度值,是由其相邻块来共同决定的。⽽限制对⽐度的做法,就是在使⽤常规做法得到常规的直⽅图后,会将直⽅图中统计的灰度值与我们设定的阈值进⾏对⽐,对于超过阈值的部分,我们会将这部分均匀地分布在每⼀个不同的灰度值下⾯。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。