YUV分量转RGB分量:
R = 1.0Y + 0 + 1.402(v - 128)
G = 1.0Y - 0.34413(u - 128) - 0.71414(v - 128)
B = 1.0Y + 1.772(u - 128) + 0
RGB不同彩色空间的转换公式
彩图与灰度图的相互转换 RGB <-> GRAY:
RGB[A]->Gray: Y=0.212671*R + 0.715160*G + 0.072169*B
Gray->RGB[A]: R=Y G=Y B=Y A=0
其它的所有可能的图像色彩空间的相互变换公式列举如下:
RGB<=>XYZ :
|X| |0.412411 0.357585 0.180454| |R|
|Y| = |0.212649 0.715169 0.072182|*|G|
|Z| |0.019332 0.119195 0.950390| |B|
|R| | 3.240479 -1.53715 -0.498535| |X|
|G| = |-0.969256 1.875991 0.041556|*|Y|
|B| | 0.055648 -0.204043 1.057311| |Z|RGB<=>YCrCb
Y=0.299*R + 0.587*G + 0.114*B
Cr=(R-Y)*0.713 + 128
Cb=(B-Y)*0.564 + 128
R=Y + 1.403*(Cr - 128)
G=Y - 0.344*(Cr - 128) - 0.714*(Cb - 128)
B=Y + 1.773*(Cb - 128)
RGB=>HSV
V=max(R,G,B)
S=(V-min(R,G,B))*255/V if V!=0, 0 otherwise
(G - B)*60/S, if V=R
H= 180+(B - R)*60/S, if V=G
240+(R - G)*60/S, if V=B
若 H<0,则 H=H+360
使用上面从 0°到 360°变化的公式计算色调( hue)值,确保它们被 2 除后能试用于8位。
RGB=>Lab
|X| |0.433910 0.376220 0.189860| |R/255|
|Y| = |0.212649 0.715169 0.072182|*|G/255|
|Z| |0.017756 0.109478 0.872915| |B/255|
L = 116*Y1/3 for Y>0.008856
L = 903.3*Y for Y<=0.008856
a = 500*(f(X)-f(Y))
b = 200*(f(Y)-f(Z))
其中 f(t)=t1/3 for t>0.008856
f(t)=7.787*t+16/116 for t<=0.008856