2013年发表在TIP上的对比度增强算法AGCWD(Efficient contrast enhancement using adaptive gamma correction with weighting distribution)
提出了一种自动映射技术,通过亮度像素的伽马校正和概率分布来提高调暗图像的亮度。为了增强视频,所提出的图像增强方法使用关于每帧之间差异的时间信息来减少计算复杂性。该算法本质上是一种自适应的gamma校正算法,其中,“自适应”是利用图像直方图信息来实现的,本文提出了一种混合HM方法,将cdf、加权分布和伽玛校正相结合的算法
算法步骤:#
假设X表示我们的输入图像,其亮度l " role="presentation">l l 的变化范围l m i n " role="presentation">l m i n l m i n 和l m a x " role="presentation">l m a x l m a x ,那么这个算法一共分为5步来执行:
1、Image Statistics Computation#
图像X ( i , j ) " role="presentation">X ( i , j ) X ( i , j ) ,亮度灰阶I " role="presentation">I I 的动态范围是l m i n " role="presentation">l m i n l m i n 和l m a x " role="presentation">l m a x l m a x ,其中 l m i n " role="presentation">l m i n l m i n 是最小的灰度阶,例如8bit数据,Imin最小为0,最大为255。统计图像的灰阶像素分布概率probability density function (PDF)。
P D F ( l ) = n l M N " role="presentation">P D F ( l ) = n l M N P D F ( l ) = n l M N
其中,M N " role="presentation">M N M N 是像素总个数,n l " role="presentation">n l n l 是灰阶n对应的像素数。
2、Weighting Probability Density Function#
利用cd f并应用归一化伽玛函数来修改变换曲线,而不会丢失可用的统计直方图,对前一步算出来的概率密度函数进行修改,加权分布(WD)函数也用于略微修改统计直方图,得到加权概率密度函数。
P D F w ( l ) = m a x ( P D F ) ∗ ( P D F ( l ) − m i n ( P D F ) m a x ( P D F ) − m i n ( P D F ) ) α " role="presentation">P D F w ( l ) = m a x ( P D F ) ∗ ( P D F ( l ) − m i n ( P D F ) m a x ( P D F ) − m i n ( P D F ) ) α P D F w ( l ) = m a x ( P D F ) ∗ ( P D F ( l ) − m i n ( P D F ) m a x ( P D F ) − m i n ( P D F ) ) α
较低的伽玛参数产生更显著的调整,alpha可取[0.1,0.5]值,根据经验可以取0.5,让函数曲线更加平滑
3、Smoothed Cumulative Distribution Function#
用P D F w ( l ) " role="presentation">P D F w ( l ) P D F w ( l ) 计算cumulative distribution function (CDF) ,做归一化处理,利用第二步算出来的加权概率密度函数,求出平滑的累积分布函数
C D F s ( l ) = ∑ l = l m i n l m a x P D F w ( l ) ∑ P D F w " role="presentation">C D F s ( l ) = l m a x ∑ l = l m i n P D F w ( l ) ∑ P D F w C D F s ( l ) = ∑ l = l m i n l m a x P D F w ( l ) ∑ P D F w
4、Adaptive Gamma Correction#
T(l)transform function,利用第三步的图像累积分布函数信息CDF,进行自适应的gamma校正。
T ( l ) = ( l m a x − l m i n ) ∗ ( l l m a x − l m i n ) γ " role="presentation">T ( l ) = ( l m a x − l m i n ) ∗ ( l l m a x − l m i n ) γ T ( l ) = ( l m a x − l m i n ) ∗ ( l l m a x − l m i n ) γ
γ = 1 − C D F s ( l ) ∗ P " role="presentation">γ = 1 − C D F s ( l ) ∗ P γ = 1 − C D F s ( l ) ∗ P
其中,P表示自适应参数,设置为1,取值范围[0.5,1]
在映射函数T(l)映射函数中,最后一步就是对图像每个像素点的亮度值进行映射,就得到了对比度增强后的图像
Y = T ( X ( i , j ) ) | ∀ X ( i , j ) ∈ X " role="presentation">Y = T ( X ( i , j ) ) | ∀ X ( i , j ) ∈ X Y = T ( X ( i , j ) ) | ∀ X ( i , j ) ∈ X
该算法支持图像、视频数据流处理,图像数据流处理pipeline如下图:
视频数据流处理pipeline如下图:
仿真结果#
仿真代码matlab Demo可以参考 ,自己跑跑看结果
代码链接:
https://github.com/AomanHao/ISP_Low_Light_Image_Enhancement