H用角度表示,角度从0°(红)->120°(绿)->240°(蓝)->360°(红);饱和度S分成低(0%~20%),中(40%~60%),高(80%~100%);强度I是颜色的明度,取值范围从0%(黑)~100%(最亮),强度也只亮度(luminance)或光亮度(lightness)。
-
RGB->HSI (Gonzalez and Woods)的算法如下:
a = min(R,G,B);
I = (1/3)*(R + G + B);
S = 1 – 3*a / (R + G + B);
H= arccos( 0.5 * ((R - G) + (R - B)) / ((R - G)^2 + (R - G) * (G - B))^(0.5);
if S = 0 H无意义;
if( B/I > G/I ) then
H = 360 – theta;
-
HSI->RGB(Gonzalez and Woods)的算法如下:
首先用H = 360*H把H转换成角度
if 0 < H < 120 then
{
B=(1/3)*(1-S);
R=(1/3)*(1+(S*cosH)/(cos(60-H)));
G=1-(B+R);
}
if 120 < H < 240 then
{
H=H-120;
R=(1/3)*(1-S);
G=(1/3)*(1+(S*cosH)/(cos(60-H)));
B=1-(G+R);
}
if 240 < H < 360 then
{
H=H-240;
G==(1/3)*(1-S);
B=(1/3)*(1+(S*cosH)/(cos(60-H)));
R=1-(G+B);
}
待续……