29.12.2012 Views

Gernot Hoffmann CIE Color Space

Gernot Hoffmann CIE Color Space

Gernot Hoffmann CIE Color Space

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

12.2 Matrices / 709 + D65 / sRGB<br />

ITU-R BT.709 Primaries and white point D65 [9]. Valid for sRGB.<br />

Data are in the Pascal source code.<br />

Program CiCalc65;<br />

{ Calculations RGB—<strong>CIE</strong> }<br />

{ G.<strong>Hoffmann</strong> February 01, 2002 }<br />

Uses Crt,Dos,Zgraph00;<br />

Var r,g,b,x,y,z,u,v,w,d : Extended;<br />

i,j,k,flag : Integer;<br />

xr,yr,zr,xg,yg,zg,xb,yb,zb,xw,yw,zw : Extended;<br />

prn,cie : Text;<br />

Var Cxr,Crx: ANN;<br />

Begin<br />

ClrScr;<br />

{ Rec 709 Primaries }<br />

xr:=0.6400;<br />

yr:=0.3300;<br />

zr:=1-xr-yr;<br />

xg:=0.3000;<br />

yg:=0.6000;<br />

zg:=1-xg-yg;<br />

xb:=0.1500;<br />

yb:=0.0600;<br />

zb:=1-xb-yb;<br />

{ D65 White Point }<br />

xw:=0.3127;<br />

yw:=0.3290;<br />

zw:=1-xw-yw;<br />

{ White Point Correction }<br />

D:=(xr-xb)*(yg-yb)-(yr-yb)*(xg-xb);<br />

U:=(xw-xb)*(yg-yb)-(yw-yb)*(xg-xb);<br />

V:=(xr-xb)*(yw-yb)-(yr-yb)*(xw-xb);<br />

u:=U/D;<br />

v:=V/D;<br />

w:=1-u-v;<br />

{ Matrix Cxr }<br />

Cxr[1,1]:=u*xr/yw; Cxr[1,2]:=v*xg/yw; Cxr[1,3]:=w*xb/yw;<br />

Cxr[2,1]:=u*yr/yw; Cxr[2,2]:=v*yg/yw; Cxr[2,3]:=w*yb/yw;<br />

Cxr[3,1]:=u*zr/yw; Cxr[3,2]:=v*zg/yw; Cxr[3,3]:=w*zb/yw;<br />

{ Matrix Crx }<br />

HoInvers (3,Cxr,Crx,D,flag);<br />

Assign (prn,’C:\CiMalc65.txt’); ReWrite(prn);<br />

Writeln (prn,’ Matrix Cxr’);<br />

Writeln (prn,Cxr[1,1]:12:4, Cxr[1,2]:12:4, Cxr[1,3]:12:4);<br />

Writeln (prn,Cxr[2,1]:12:4, Cxr[2,2]:12:4, Cxr[2,3]:12:4);<br />

Writeln (prn,Cxr[3,1]:12:4, Cxr[3,2]:12:4, Cxr[3,3]:12:4);<br />

Writeln (prn,’ Matrix Crx’);<br />

Writeln (prn,Crx[1,1]:12:4, Crx[1,2]:12:4, Crx[1,3]:12:4);<br />

Writeln (prn,Crx[2,1]:12:4, Crx[2,2]:12:4, Crx[2,3]:12:4);<br />

Writeln (prn,Crx[3,1]:12:4, Crx[3,2]:12:4, Crx[3,3]:12:4);<br />

Close(prn);<br />

Readln;<br />

End.<br />

Matrix Cxr<br />

X 0.4124 0.3576 0.1805<br />

Y 0.2126 0.7152 0.0722<br />

Z 0.0193 0.1192 0.9505<br />

Matrix Crx<br />

R 3.2410 -1.5374 -0.4986<br />

G -0.9692 1.8760 0.0416<br />

B 0.0556 -0.2040 1.0570<br />

X = C xr R<br />

R = C rx X<br />

18

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!