本文实现了一种基于非线性masking的局部颜色校正方法,这种方法非常快速并且不需要任何手动的调整。该算法相当于为图像中的每个像素得到一条色调再生曲线。
一、算法流程
请看下面的框图:
整个算法分为两步:
1. 计算出图像的mask。
2. mask结合输入图像得到输出图像。
二、具体方法
2.1 计算mask
1. 将RGB图像转化为灰度图像。
2. 将灰度图像取反。
3. 用大半径滤波器将取反的灰度图像模糊。
用灰度图像来计算是为避免色度通道发生失真。
图像取反是因为暗区需要更大的mask来提升亮度,而亮区需要小的mask来压制亮度。
图像模糊是为防止图像特征被识别。
如果图像未模糊,那么图像的对比度会急剧下降,
如果图像过模糊,那么算法将退化成简单的gamma校正。
这一计算过程可以用小图计算加速。
2.2 combination
这一步可以用一个指数函数来表示。
当mask>128时,指数<1,输出像素值将比输入像素值大。
当mask<128时,指数>1,输出像素值将比输入像素值小。
当mask=128时,指数=1,输出像素值等于输入像素值。
用曲线可以将输入,mask与输出的关系表示如下。
这一计算过程可以用查表的方式加速。
三、结果
上面依次是输入图像,mask,输出图像。