前言
文章主要对图像增强算法进行综述,并比较之前直方图均衡化算法的优缺点提出一种新的基于Gamma增强的算法。算法的主要步骤: 1、色彩空间转换,BGR转换到HSV空间,选取V空间(亮度空间),计算V空间的均值和方差; 2、图像分类,规避传统直方图均衡化的缺点,根据V的均值将图像分成亮图像和暗图像,根据V的方差将图像分成低对比度和高对比度;不同亮度和对比度的图像分配不同的增益和对比度参数; 3、曲线转换,根据不同的分类分配不同的增益系数c和转换函数曲线控制系数r,根据Gamma理论对V空间进行增强,最后增强后的V空间和原始的S、V空间合并得到新的BGR空间。
一、算法流程
主要分为三个步骤,流程图如图所示:
算法流程图
1、色彩空间转换 将BGR色彩空间转至HSV空间,并分离通道,只对V亮度空间进行处理;把V空间类型转成浮点类型,计算其均值和方差; 2、图像分类 根据计算的均值
μ
\mu
μ和方差
σ
\sigma
σ,分配不同的系数,文章中定义:
μ
\mu
μ<=0.5,认为是暗图像,反之是亮图像 4*
σ
\sigma
σ<=1/3,认为是低对比度,反之是高对比度 3、曲线转换 Gamma的公式:
I
o
I_o
Io? = c*
I
i
I_i
Ii?^
γ
\gamma
γ 其中,参数c 是增益系数,参数
γ
\gamma
γ 控制转换曲线的趋势,
I
i
I_i
Ii?是输入图像,
I
o
I_o
Io?是输出图像; 3.1 低对比度图像 低对比度图像,参数c定义为: c= 1/(1 + Heaviside(0.5 ?
μ
\mu
μ) × (k ? 1)) 其中,k =
I
i
I_i
Ii?^
γ
\gamma
γ + (1 -
I
i
I_i
Ii?^
γ
\gamma
γ) *
μ
\mu
μ^
σ
\sigma
σ Heaviside是个符号操作,定义为: Heaviside(x) = 0, if x<=0; 反之,Heaviside(x) =1,if x>0 3.1.1 亮图像 低对比度的亮图像,
μ
\mu
μ是大于0.5的,图像的亮度较高只需要增强细节的对比度,此时c=1,转换函数变成:
I
o
I_o
Io? =
I
i
I_i
Ii?^
γ
\gamma
γ 论文中选取
γ
\gamma
γ = -
log
?
2
\log_2
log2?(
σ
\sigma
σ),对于临界点,
γ
\gamma
γ_min = ?log2(0.0833) = 3.585;转换曲线在
I
o
I_o
Io? =
I
i
I_i
Ii?的下方。 3.1.2 暗图像 低对比度暗图像的灰度集中在小部分区域,需要将直方图拉升到较大的范围,此时c = k,变换曲线在
I
o
I_o
Io? =
I
i
I_i
Ii?的上方。 转换函数:
I
o
I_o
Io? =
I
i
I_i
Ii?^
γ
\gamma
γ/k 3.2 高对比度 高对比度图像,亮度调整比对比度增强重要,这时的
γ
\gamma
γ取值范围在1附近,文章里
γ
\gamma
γ取值:
γ
\gamma
γ = exp(1-(
μ
\mu
μ +
σ
\sigma
σ)/2) 3.2.1 暗图像 对于高对比度的暗图像,均值和方差都小于0.5,因此
γ
\gamma
γ>=1,图像均值越小,增强的越多;对于暗图像均值接近于0.5的,转换曲线接近于一条直线; 3.2.2亮图像 对于高对比度的亮图像,图像有较好地亮度和对比度,均值和方差都接近于0.5,转换曲线接近于直线。
二、效果展示
选取低照度的图片,运行该代码后,图像增强效果如图所示: 原始低照度图片 增强后的图片
总结
该方法对于暗图像增强有显著的提升,但是也存在较大的问题,对于高对比度高亮度的图片,会存在过增强和丢失细节等问题。
|