天天看點

RGB不同彩色空間的轉換公式

2004年09月01日 16:09:00

  • 彩圖與灰階圖的互相轉換 RGB

    <-> GRAY:

    RGB[A]->Gray: Y=0.212671*R + 0.715160*G + 0.072169*BGray->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*BCr=(R-Y)*0.713 + 128Cb=(B-Y)*0.564 + 128R=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=RH= 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*Y

    1/3 for Y>0.008856L = 903.3*Y for Y<=0.008856a = 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

上一篇: obj,lib,dll,exe