为什么我们选择的是色空间是YCbCr呢?
主要的原因是两个:
注1: 类型‘YCbCr’是用一个线性变换来表示的:
Y
Cb = -0.169*R - 0.331*G + 0.500*B
Cr =
YCbCr以极坐标表示,则Chroma和Hue的计算公式如下:
Chroma
Hue
下面我们给出了6种颜色的C与H的值:
| R | G | B | Y | Cb | Cr | C | H |
Red | 255 | 0 | 0 | 76 | -43 | 128 | 135 | 109 |
Yellow | 255 | 255 | 0 | 226 | -128 | 21 | 129 | 171 |
Green | 0 | 255 | 0 | 150 | -84 | -107 | 136 | 52 |
Cyan | 0 | 255 | 255 | 179 | 43 | -128 | 135 | 109 |
Blue | 0 | 0 | 255 | 29 | 128 | -21 | 129 | 171 |
Magenta | 255 | 0 | 255 | 105 | 84 | 107 | 136 | 52 |
那么现在我们就有了最基本的调整关系公式了。
在YCbCr空间中,一般情况下我们进行调整都是利用一个调整矩阵来实现的:
| Y'
|Cb'| =|k4
|Cr' |
这里我们主要调整的就是这个矩阵的各个参数了,我们一般调整的物理参数主要有:Contrast,Cb_Gain,Cr_Gain,Hue这几种参数,那么这几个参数是如何作用的呢?下面一个一个来说吧:
Contrast:这个参数只需要调整第一行即可,一般的调整范围在(0~4)之间;
Cb_Gain:需要调整的是就是第二行了,范围大致也在(0~4);
Cr_Gain:这个与Cb_Gain类似,调整的是第三行,范围(0~4);
Hue:这个的调整是比较麻烦的,因为这个是在极坐标系内处理的,而从公式看,它又与Cb和Cr都有关系,但与Y无关。一般来说tan(Hue)=k6/k5=-k8/k9。调整的时候由于还要考虑到chroma的归一问题,所以还要进行如下限制:
k5^2+k6^2=1(不考虑cb_gain的时候)
k8^2+k9^2=1(不考虑cr_gain的时候)
这时候在上面的两个限制前提下,再加上tan(Hue)=k6/k5=-k8/k9,我们就可以按照Hue(0~360)来一度一度的进行调节了。
OVER。有不懂的,可以留言啊。呵呵。