//
rgb轉換為yuv
void
rgb2yuv(
double
r, double
g, double
b, double
&y,
double
&u,
double&v)
//yuv轉換為rgb
void
yuv2rgb(
double
y,double
u,double
v, double
&r,
double
&g,
double&b)
//rgb轉換為xyz
void
rgb2xyz(
double
r, double
g, double
b double
&x,
double
&y,
double&z)
else
if(var_g
>
0.04045
)else
if(var_b
>
0.04045
)else
var_r
=var_r
*100.0f
;
var_g
=var_g
*100.0f
; var_b
=var_b
*100.0f
; //
observer. = 2°, illuminant = d65 x =
var_r
*0.4124
+var_g
*0.3576
+var_b
*0.1805;y
=var_r
*0.2126
+var_g
*0.7152
+var_b
*0.0722;z
=var_r
*0.0193
+var_g
*0.1192
+var_b
*0.9505
; }
//xyz轉換為lab
void
xyz2lab(
double
x, double
y, double
z, double
&l,
double
&a ,
double&b)
else
if(var_y
>
0.008856
)else
if( var_z
>
0.008856
)elsel =
( 116
*var_y ) -16
;a =500
*( var_x
-var_y );b =
200*
( var_y
-var_z );}//
rgb轉換為lab
void
rgb2lab(
double
r, double
g,double
b, double
&l,
double
&a,
double&b)
//lab轉換為rgb
void
lab2rgb(
double
l, double
a, double
b, double
&r,
double
&g,
double&b)
//lab轉換為xyz
void
lab2xyz(
double
lab_l,
double
lab_a,
double
lab_b,
double
&x,
double
&y,
double&z)
//xyz轉換為rgb
void
xyz2rgb(
double
x, double
y, double
z, double
&r,
double
&g,
double&b)
//rgb轉換為hsv
void
rgb2hsv(
double
r, double
g, double
b, double
&h,
double
&s,
double
v)else
//chromatic data}//
hsv轉換為rgb
void
hsv2rgb(
double
h, double
s, double
v, double
&r,
double
&g,
double&b)
else
else
if( var_i ==1
)
else
if( var_i ==2
) else
if( var_i ==3
) else
if( var_i ==4
) elser =
var_r
*255.0f
;
//rgb results from 0 to 255g =
var_g
*255.0f;b
=var_b
*255.0f;}
}//yuv轉換為xyz
void
yuv2xyz(
double
l, double
u, double
v, double
&x,
double
&y,
double&z)
//lab轉換為hsv
void
lab2hsv(
double
l, double
a, double
b, double
&h,
double
&s,
double&v)
//xyz轉換為hsv
void
xyz2hsv(
double
x, double
y, double
z,double
&h,
double
&s,
double&v)
//rgb轉換為cmy
void
rgb2cmy(
double
r, double
g, double
b, double
&c,
double
&m,
double
y)//
cmy轉換為rgb
void
cmy2rgb(
double
c, double
m, double
y, double
&r,
double
&g,
double&b)
//rgb轉換為cmyk
void
rgb2cmyk(
double
r, double
g, double
b, double
&c,
double
&m,
double
y, double&k)
elsek =
var_k;}//
cmyk轉換為cmy
void
cmyk2cmy(
double
c1,
double
m1,
double
y1,
double
k1,
double
&c2,
double
&m2,
double
y2)
色彩空間轉換
rgb轉換為yuv void rgb2yuv double r,double g,double b,double y,double u,double v yuv轉換為rgb void yuv2rgb double y,double u,double v,double r,double g,doubl...
色彩空間轉換
rgb轉換為yuv void rgb2yuv double r,double g,double b,double y,double u,double v yuv轉換為rgb void yuv2rgb double y,double u,double v,double r,double g,doubl...
色彩空間的轉換
彩圖與灰度圖的相互轉換 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.7151...