[ Preliminary Documentation... work in progress ]

For a description of colorspace visit this page
A complete discussion on YUV/YCrCb can found here.

Matrici di Conversione tra spazi di colore

Tutte le matrici M permettono di passare dal colore A (vettore a 3 componenti) nel vettore colore B (vettore sempre a 3 componenti) attraverso la trasformazione lineare

B=M*A+C

che con il solito accorgimento di estendere con un 1 il vettore A per renderlo di 4 componenti, il vettore C di scostamento viene integrato all'interno della matrice M che risulta perciò 4x3.
Normalizzati per ingresso [0-255] e uscita [0-255]

 

Matrice Identità:
  1 0 0 0  
0 1 0 0
0 0 1 0
 
RGB -> CIE TODO
CIE -> RGB TODO
RGB->YUV
  0.299 0.587 0.114 0  
-0.147 -0.289 0.437 0
0.615 -0.515 -0.100 0
 
YUV->RGB
  0.299 0.587 0.114 0  
0.596 -0.275 -0.321 0
-0.212 -0.523 0.311 0
 
RGB->YIQ
  0.299 0.587 0.114 0  
0.596 -0.275 -0.321 0
-0.212 -0.523 0.311 0
 
YIQ->RGB
  1 0 1.140 0  
1 -0.394 -0.581 0
1 2.028 0 0
 
RGB->YCrCb
  0.257 0.504 0.098 16  
0.439 -0.368 -0.071 128
-0.148 -0.291 0.439 128
(non sono sicuro!!!)
 
YCrCb->RGB    

 

RGB->YCrCb (RGB -> YUV per Keith Jack):

Y = (0.257 * R) + (0.504 * G) + (0.098 * B) + 16
Cr= (0.439 * R) - (0.368 * G) - (0.071 * B) + 128
Cb= -(0.148 * R) - (0.291 * G) + (0.439 * B) + 128

Benoit Payette report the same matrix in Color Space Converter: R'G'B' to Y'CrCb document.
YCbCr (601) from "digital 8-bit R'G'B' "
Y' = 16  + 1/256 * (   65.738  * R'd +  129.057  * G'd +  25.064  * B'd)
Cb = 128 + 1/256 * ( - 37.945  * R'd -   74.494  * G'd + 112.439  * B'd)
Cr = 128 + 1/256 * (  112.439  * R'd -   94.154  * G'd -  18.285  * B'd)

R'd, G'd, B'd in {0, 1, 2, ..., 255}
Y'               in {16, 17, ..., 235}
   with footroom in {1, 2, ..., 15}
        headroom in {236, 237, ..., 254}
        sync.    in {0, 255}
Cb, Cr           in {16, 17, ..., 240}
but it is the same.
CCIR 601 defines the relationship between YCrCb and RGB values:
Ey = 0.299R+0.587G+0.114B
Ecr = 0.713(R - Ey) = 0.500R-0.419G-0.081B
Ecb = 0.564(B - Ey) = -0.169R-0.331G+0.500B

YUV to RGB Conversion:

B = 1.164(Y - 16)                   + 2.018(U - 128)
G = 1.164(Y - 16) - 0.813(V - 128) - 0.391(U - 128)
R = 1.164(Y - 16) + 1.596(V - 128)

RGB->YUV:

[ Y ] [ 0.299 0.587 0.114 ] [ R ]
[ U ] = [ -0.147 -0.289 0.437 ] [ G ]
[ V ] [ 0.615 -0.515 -0.100 ] [ B ]

YUV->RGB:

[ R ] [ 1 0 1.140 ] [ Y ]
[ G ] = [ 1 -0.394 -0.581 ] [ U ]
[ B ] [ 1 2.028 0 ] [ V ]

RGB->YIQ:

Y= 0.299*R + 0.587*G 0.114*B
I = 0.596*R -0.275*G -0.321*B
Q=0.212*R -0.523*G 0.311*B

YIQ->RGB:

R= Y + 0.956*I + 0.621*Q
G= Y- 0.272*I -0.647*Q
B=Y -1.105*I + 1.702*Q

XYZ->RGB:

[ R ] [ 3.240479 -1.537150 -0.498535 ] [ X ]
[ G ] = [ -0.969256 1.875992 0.041556 ] * [ Y ]
[ B ] [ 0.055648 -0.204043 1.057311 ] [ Z ].

RGB->XYZ:

[ X ] [ 0.412453 0.357580 0.180423 ] [ R ] **
[ Y ] = [ 0.212671 0.715160 0.072169 ] * [ G ]
[ Z ] [ 0.019334 0.119193 0.950227 ] [ B ].

RGB->CMY:

Red,Green,Blue<-> to Cyan,Magenta and Yellow is performed through a
transformation matrix of this form:

[ C ] = [ 1 ] - [ R ] [ R ] = [ 1 ] - [ C ]
[ M ] = [ 1 ] - [ G ] as well as [ G ] = [ 1 ] - [ M ]
[ Y ] = [ 1 ] - [ B ] [ B ] = [ 1 ] - [ Y ]