图像优化算法(HE、AHE、CLAHE)简单介绍
直方图均衡化通常用来增加许多图像的 ,尤其是当图像的有用数据的对比度相当接近的时候。通过这种方法,亮度可以更好地在直方图上分布。这样就可以用于增强局部的对比度而不影响整体的对比度,直方图均衡化通过有效地扩展常用的亮度来实现这种功能。
这种方法对于背景和前景都或者的图像非常有用,这种方法尤其是可以带来X光图像中更好的骨骼结构显示以及曝光过度或者曝光不足照片中更好的细节。这种方法的一个 。
直方图均衡技术将原始图像的灰度直方图从比较集中的某个灰度区间变成在全部灰度范围内的均匀分布, 由于其, 无需借助外来因素的参数设置,可以自成系统的运行, 有效地增强图像对比度, 是一种常用的图像增强方法. 一直以来, 直方图均衡技术受到各个领域的重视, 比如在消费类电子产品邻域, 在均衡图像的同时希望保持图像的亮度信息.
在这里先提出两个基础问题:
第一个问题:由于采集到的图像各点的颜色及亮度不同,摄成的黑白照片上或电视接收机重现的黑白图像上各点呈现不同程度的灰色。把白色与黑色之间按对数关系分成若干级,称为“灰度等级”。范围一般从0到255,白色为255,黑色为0,这就是我们常说的灰度值。
第二个问题:一般我们采集到的每一帧图像,在灰度等级0~255范围内都会有不同的分布,你们想象一下两个场景,一个是摄像头处于过亮的环境,这代表着,摄像头采集到的图像会过爆,通俗一点的理解,就是过白,那么这帧图像的灰度分布,大部分都会集中在靠近“255”的地方,另一种场景,就是摄像头处于过暗的环境,这代表着,摄像头采集到的图像会“过黑”,那么这帧图像的灰度分布,就会集中在比较靠近"0"的地方。对于这两种情况来说,都会造成图像不够清晰。而均衡化的意思,就是将图像的灰度分布,根据某些对应关系,将其分布得更加合理,进而提升图像的质量。看一下下面不同情况下的效果图,可能就更能理解上面的描述了。
HE算法的实现可以分成下面几个步骤:
- 遍历每一帧图像中的所有像素,记录每个灰度值出现的像素个数
- 统计每个灰度值占总像素的百分比,也就是每个灰度值出现的概率
- 建立一个映射表,对原图像的灰度值一一进行映射,修改成新的灰度值,映射关系为:
新灰度值 = (最大灰度值(255) - 最小灰度值(0))* 累积概率
为了大家更好理解,我来举个例子,比如我们现在有一个4*4像素的图像数据,它们的灰度值分别如下:
50 | 128 | 255 | 50 |
---|---|---|---|
128 | 200 | 50 | 255 |
255 | 128 | 128 | 200 |
50 | 128 | 200 | 255 |
灰度值 | 出现次数 | 所占概率 | 累计概率 | 映射后灰度值 |
---|---|---|---|---|
50 | 4 | 0.25 | 0.25 | 64 |
128 | 5 | 0.3125 | 0.5625 | 143 |
200 | 3 | 0.1875 | 0.75 | 191 |
255 | 4 | 0.25 | 1 | 255 |
那么,最终映射后的像素灰度值就变成了下面表格中所示: | ||||
64 | 143 | 255 | 64 | |
– | – | – | – | |
143 | 191 | 64 | 255 | |
255 | 143 | 143 | 191 | |
64 | 143 | 191 | 255 |
从上面介绍的原理大家知道,HE算法是对图像进行了全局的均衡,也就是,比如你所导入的图像场景,有非常亮的区域,也有较暗的区域,那就会导致较暗的区域在均衡处理过后,亮度被拉得太高,出现了噪点,甚至是直接变成白色,这就是HE算法的一个劣势,在某种场景下,使用该算法像强化,有可能会出现适得其反的作用。
算法是算法的优化版本。
我们上面有说到,常规的直方图均衡算法虽然算法简单,但是其作用并非的全面的,因为它是对图像进行全局处理,对某种特定的图像数据来说,使用直方图均衡算法会出现许多明显的噪点,甚至于弱化了图像细节,使图像呈现出来的效果反而更差。
自适应直方图均衡算法在常规直方图均衡算法的基础上,将图像划分为几块分别处理,没一小块图像统计一个各自专属的分布函数,这样有利于更好地处理图像数据的局部细节,但是由于图像被等分为几块分别处理,这会导致算法的时间复杂度提高不少,降低了图像处理效率,并且还有另一个缺点,由于AHE算法是对每个像素块独立进行处理映射,也就是块与块之间并没有做一个过渡处理,这样会导致一个问题现象,那就是图像呈现出来的效果就像是被切割成了几个块。
我们上面介绍了算法的缺点,没有对块与块的边缘做过渡处理,并且会存在过度放大图像的问题,而,顾名思义,就是在自适应直方图均衡算法的基础上,加上阈值,用来限制对比度,达到削弱噪点放大问题的效果,并且使用线性插值/双线性插值的方法来优化块与块之间过渡问题,使图像看起来更加和谐。线性插值和双线性插值的原理,就是当前块中的像素灰度值,是由其相邻块来共同决定的。而限制对比度的做法,就是在使用常规做法得到常规的直方图后,会将直方图中统计的灰度值与我们设定的阈值进行对比,对于超过阈值的部分,我们会将这部分均匀地分布在每一个不同的灰度值下面。
同类文章排行
- 三聚磷酸钠与减水剂、解胶王等产品的区别?
- 「亚马逊人脸识别噩梦」贝索斯将AI武器化遭大规模抗议
- 星巴克的中年劫
- 腾讯游戏营收比重连续两个季度下降,支付、云计算等业务营收涨3
- 三聚磷酸钠在陶瓷行业中的作用是什么?
- 工业三聚磷酸钠实验室鉴别假冒伪劣产品的方法?
- 传滴滴即将接入ofo,共享单车大战格局或生变
- 获 3800 万元 A+ 轮投资,乐摇摇科技利用抓娃娃机做线
- 工业三聚磷酸钠在洗涤行业中的作用是什么?
- Apple TV最强4K HDR播放器infuse Pro,