前言
文章主要对图像增强算法进行综述,并比较之前直方图均衡化算法的优缺点提出一种新的基于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
γ 是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的下方,图像整体亮度降低,灰度值较低的像素点对比度降低,灰度值高的对比度增加,更又利于分辨高灰度值的图像细节,转换函数变成:
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。
3.1.2 暗图像
低对比度暗图像的灰度集中在小部分区域并且集中在灰度均值附近,需要将直方图拉升到较大的范围,此时c = k,变换曲线在
I
o
I_o
Io =
I
i
I_i
Ii的上方,陡峭部分曲线的值随
σ
\sigma
σ移动,图像的整体亮度增加,灰度值较低的像素点对比度增强,灰度值高的对比度降低,更又利于分辨低灰度值的图像细节,转换函数为:
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,转换曲线在
I
o
I_o
Io =
I
i
I_i
Ii的上方,图像均值和方差越小,增强的曲线越陡峭;对于暗图像均值接近于0.5的,转换曲线接近于一条直线;
3.2.2亮图像
对于高对比度的亮图像,图像有较好的亮度和对比度,均值和方差都接近于0.5,转换曲线接近于直线。
二、效果展示
选取低照度的图片,运行该代码后,图像增强效果如图所示:
原始低照度图片
增强后的图片
总结
该方法对于暗图像增强有显著的提升,但是也存在较大的问题,对于高对比度高亮度的图片,会存在过增强和丢失细节等问题。