1 前言
接着上一篇Gamma校正,对于一般的偏暗或者偏亮的图片,可以处理的不错。但是如果图像上出现部分偏亮或者部分偏暗,或者图像在时序上会有亮变暗,环境不定。这时候需要做自适应的gamma矫正,就是需要对暗的部分增亮,对亮的部分拉暗,而不是全图使用同样的gamma值。
了解下方案一:
论文Local colour correction using nonlinear masking
2 论文原理
1)公式如下:
f
(
I
)
=
I
γ
f(I) = I ^ γ
f(I)=Iγ
γ
=
2
128
−
m
a
s
k
128
γ = {2^{\dfrac{128-mask}{128}}}
γ=2128128−mask
2)步骤:
2-1)将RGB图像转化为灰度图像。
2-2)将灰度图像取反。
2-3)用大半径滤波器将取反的灰度图像模糊得到mask。
模糊半径将影响mask效果
用灰度图像来计算是为避免色度通道发生失真。
图像取反是因为暗区需要更大的mask来提升亮度,而亮区需要小的mask来压制亮度。
图像模糊是为防止图像特征被识别。
如果图像未模糊,那么图像的对比度会急剧下降,
如果图像过模糊,那么算法将退化成简单的gamma校正。
这一计算过程可以用小图计算加速。
ps:可以看出整个过程是为了得到一个动态的gamma值,而不是上一篇中固定的gamma值,每个像素都会有一个自己的gamma值。更正一下,由于gamma是浮点数,此处不适合查表,对于小图,计算量会小很多。
当mask>128时,指数<1,输出像素值将比输入像素值大,图像会被增亮。
当mask<128时,指数>1,输出像素值将比输入像素值小,图像会被拉暗。
用曲线可以将输入,mask与输出的关系表示如下。
3 效果
ps: 从左到右,分别是原图,Gamma校正图,论文算法校正图