饱和度调节
饱和度调整的算法很多,基本上是越复杂的算法,调整后的图像视觉效果越好。
由于FPGA 不善长复杂的浮点运算,另一方面由于本文定位于基本的图像处理算法,此处只选择一种比较简单的饱和度算法。
设当前输入像素值位宽为 8,RGB 三通道数值为 r、g、b,三个数值间最大值为 max,最小值为 min。
如果 m a x = m i n max=min max=min,则当前像素点不用调节,直接输出原像素值。
令 v = m a x + m i n v=max+min v=max+min,则有:
s = { m a x − m i n m a x + m i n v < 255 m a x − m i n 255 − m a x + 255 − m i n v ≥ 255 s=\begin{cases} \frac{max-min}{max+min}&v<255\\ \frac{max-min}{255-max+255-min}&v\geq255 \end{cases} s={
max+minmax−min255−max+255−minmax−minv<255v≥255
设饱和度调节系数为 saturation,范围 -1.0~1.0。
如果 s a t u r a t i o n ≤ 0 saturation\leq0 saturation≤0:
r o u t = m a x + m i n