图像处理

——

饱和度调整算法(

python

语⾔)

饱和度调整算法说明(完整

python

代码在⽂末):

本算法主要是利⽤HSL颜⾊空间进⾏饱和度S的上下限控制,对RGB空间进⾏补丁式调整。调整过程在RGB空间进⾏,其原理简单地说就是

判断每个像素的R、G、B值是否⼤于或⼩于平均值,⼤于加上调整值,⼩于则减去调整值,如何计算各个像素点的调整系数是关键。本算法

主体思想就是利⽤HSL来计算各点的调整系数。

算法过程如下:

1.

⾸先将

RGB

空间图像转换为

HSL

空间,⽤来对饱和度

S

进⾏上下限控制,这⾥不考虑⾊相

H

差异。

转换公式如下:

其中L表⽰亮度,S表⽰饱和度,min和max代表RGB空间中的R、G、B颜⾊值中的最⼩最⼤值,范围均为0-1的实数。

设置饱和度增量increment,范围为-1⾄1,并由此计算出适⽤于RGB空间的调整系数进⾏饱和度调整。

这⾥分两种情况:

1) 当增量i (increment) >= 0时,此时饱和度采⽤指数型增长⽅式调整。考虑到当前饱和度s与增量i之和可能⼤于1,超出饱和度上限,故

仅仅考虑i作为调整依据不妥。在此选定当i+s⼤于1时,取s补数作为调整依据(s补数越⼤,调整越⼤);当i+s⼩于1,取i作为调整依据(i

越⼤,调整越⼤)。RGB空间的调整系数alpha公式如下:

其中s代表当前饱和度,i代表设置的饱和度增量(increment)。

2) 当增量i (increment) < 0时,此时饱和度采⽤线性减弱⽅式调整。考虑到当i取-1时,R、G、B值会相等,可以直接采⽤线性的⽅式作

调整。RGB空间的调整系数alpha如下: