Colorspacetransform-1 0
Colorspacetransform-1 0
1 Introduction
This document defines several color concepts and all the mathematic relations
used in ColorSpace. The first version of this document has been built 3 years
ago using several documents and unfortunately I did not keep all the references.
If you find in this document something you write, send me an email and I will
include your name in the acknowledgment section.
2 Generality
2.1 What is the difference between device dependent and
device independent color space?
A device dependent color space is a color space where the resultant color depends
on the equipment and the set-up used to produce it. For example the color
produced using pixel values of rgb = (250,134,67) will be altered as you vary
the brightness and contrast on your display. In the same way if you change
the red, green and blue phosphors of your monitor will have slightly different
characteristics and the color produced will change. Thus RGB is a color space
that is dependent on the system being used, it is device dependent. A device
independent color space is one where the coordinates used to specify the color
will produce the same color wherever they are applied. An example of a device
independent color space is the CIE L∗ a∗ b∗ color space (known as CIELAB and
based on the human visual system).
1
and phosphor chromaticities, would enable device dependent RGB data to be
modified for whatever device was being used - i.e. calibrated to specific devices.
luminance ∼ voltageγ
2
(both voltages are normalized and γ is the value of the exponent of the
power function that most closely models the luminance-voltage relationship of
the display being used.)
For a color computer system we can replace the voltages by the pixel values
selected, this of course assumes that your graphics card converts digital values
to analogue voltages in a linear way. (For precision work you should check this).
The color relationships are:
where R0 , G0 , and B 0 are the normalized input RGB pixel values and R, G,
and B are the normalized gamma corrected signals sent to the graphics card.
The values of the constants a and b compensate for the overall system gain and
system offset respectively (essentially gain is contrast and offset is intensity).
For basic applications the value of a, b and γ can be assumed to be consistent
between color channels, however for precise applications they must be measured
for each channel separately.
3 Tristimulus values
3.1 The concept of the tristimulus values
The light that reaches the retina is absorbed by three different pigments that
differ in their absorption spectra. Relative absorption spectra of the short-
wavelength cone (blue) s(λ), middle-wavelength cone (green) m(λ) and long-
wavelength cone (red) l(λ) can be see figure 1.
If one pigment absorbs a photon which leads to its photoisomeration the in-
formation about the wavelength of the photon is lost (principle of univariance).
Lights of different wavelengths are able to produce the same degree of isomera-
tions (if their intensities are adjusted properly) and consequently produce equal
sensations. The probability of isomeration of one pigment is not correlated with
3
the probability of isomeration of another pigment. The probability of isomer-
ation is just determined by the wavelengths of the incident photons. If we do
not think about the influences of the spatial and temporal effects that influence
perception, the sensation of color is determined by the number of isomerations
in the three types of pigments. Therefore colors can be described by just three
numbers, the tristimulus values, independent of their spectral compositions that
lead to these three numbers.
3.3 Consequences
1. The amount of excitation of the three pigment types for a complex light
stimulus I(λ) can be calculated:
Z Z Z
Sexc = s(λ).I(λ).dλ Mexc = m(λ).I(λ).dλ Lexc = l(λ).I(λ).dλ
λ λ λ
Each primary has a defined overlap in the absorption spectra of the three
pigments and consequently leads to a defined sensation. An increase in
intensity of one primary reduces to the multiplication with a scalar for
each pigment. Now, because of the principle of univariance, we can add
the influences of the three primaries to the resulting excitations of the
three pigment types.
3. Because of 2, there exists a linear transformation between the tristimulus
values of a set of primaries and the color space formed by the isomerations
of the cone pigments.
Tristimulus values describe the whole sensation of a color. There exist a lot
of other possibilities to describe the sensation of color. For example it is possible
to use something equivalent to cylinder coordinates where a color is expressed
by hue, saturation and luminance. If the luminance or the absolute intensity of a
color is not of interest then a color can be expressed in chromaticity coordinates.
4
3.4 Chromaticity Coordinates
In order to calculate the tristimulus values T of a light stimulus due to a set of
primaries we need to know the spectral shape of the color matching functions
and of the stimulus. The tristimulus values are calculated by the integration of
the product of the color matching function and the stimulus over the wavelength.
The tristimulus values describe the sensation of the stimulus due to the set of
primaries including the absolute intensities of the three primaries needed to
match the stimulus. Of course the luminance of that stimulus could be varied
without changing the hue and saturation of the stimulus. This is reflected in the
chromaticity coordinates c that form a two dimensional space thus luminance
is ignored.
T1 T2 T3
c1 = c2 = c3 =
T1 + T2 + T3 T1 + T2 + T3 T1 + T2 + T3
c1 + c2 + c3 = 1
Because we get color information from image files which contain only RGB
values we have only to know for each color space the RGB to the color space
transformation formulae.
5
Figure 2: CIE 1931 xyY chromaticy diagram
6
(a) RGB color space (b) CMY color space
The XYZ system is based on the response curves of the three color receptors
of the eye’s. Since these differ slightly from one person to another person, CIE
has defined a ”standard observer” whose spectral response corresponds more or
less to the average response of the population. This objectifies the colorimetric
determination of colors.
XYZ (fig. 4(a)) is a 3D linear color space, and it is quite awkward to work
in it directly. It is common to project this space to the X + Y + Z = 1 plane.
The result is a 2D space known as the CIE chromaticity diagram (see fig. 2).
The coordinates in this space are usually called x and y and they are derived
from XYZ using the following equations:
X Y Z
x= y= z= (1)
X +Y +Z X +Y +Z X +Y +Z
As the z component bears no additional information, it is often omitted.
Note that since xy space is just a projection of the 3D XYZ space, each point
in xy corresponds to many points in the original space. The missing information
is luminance Y. Color is usually described by xyY coordinates, where x and y
determine the chromaticity and Y the lightness component of color (fig. 4(b)).
7
In this section we will define how to compute a linear transformation model.
This model may by a correct approximation for CCD sensor (RGB to XYZ
transform) and CRT display (XYZ to RGB transform). But do not forget, this
is only an approximate model.
R X
G = A. Y (2)
B Z
We can use for example this transformation:
R 3.06322 −1.39333 −0.475802 X
G = −0.969243 1.87597 0.0415551 . Y
B 0.0678713 −0.228834 1.06925 Z
This is all very useful, but the interesting question is ”Where do these num-
bers come from?”. Figuring out the numbers to put in the matrix is the hard
part. The numbers depend on the color system of the output device we are
using. The important parts of a color system are the x and y chromaticity
coordinates and the luminance component of the primaries (xyY ). However, if
we don’t know the Y values, which is often the case, then we have a problem.
However, we can solve this problem if we know the chromaticity coordinates of
the white point. In the previous example we have used a the color system which
has the following specifications:
8
Y
Xr = Yyrr xr Xg = ygg xg Xb = Yybb xb
Yr = Yr Yg = Yg Yb = Yb
Y
Zr = Yyrr zr Zg = ygg zg Zb = Yybb zb
We now make the assumption that the sum of full intensity values of red
green and blue will be white. Using this assumption we can write this relation-
ship:
Xw = Xr + Xg + Xb
Yw = Yr + Yg + Yb
Zw = Zr + Zg + Zb
We can then substitute the previous equations to the current one and then
rewrite this latter as a matrix relationship:
xw xr xg xb
yw Y w yr yg yb Yr
Y w = 1.0 1.0 1.0 . Yg
zw zr zg zb
yw Y w yr yg yb Yb
9
(a) XYZ color space (b) xyY color space
10
X R Xof f set
Y = A. G + Yof f set (3)
Z B Zof f set
with ½ 1
f (U ) = U3 if U > 0.008856
(5)
f (U ) = 7.787U + 16/116 if U ≤ 0.008856
and
4X 9Y
U (X, Y, Z) = et V (X, Y, Z) = (6)
X + 15Y + 3Z X + 15Y + 3Z
³ ´ 13
L∗ = 116 Y
− 16 if Y
> 0.008856
Y Y0
³0 ´
L∗ = 903.3 YY0 if Y
≤ 0.008856
h i Y0
(7)
u∗ = 13L∗ U (X, Y, Z) − U (X0 , Y0 , Z0 )
h i
v∗ = 13L∗ V (X, Y, Z) − V (X0 , Y0 , Z0
11
(a) L∗ a∗ b∗ color space (b) L∗ u∗ v ∗ color space
12
RGB to Y U V transformation
Y = 0.299 × R + 0.587 × G + 0.114 × B
U = −0.147 × R − 0.289 × G + 0.436 × B
V = 0.615 × R − 0.515 × G − 0.100 × B
RGB to Y IQ transformation
Y = 0.299 × R + 0.587 × G + 0.114 × B
I = 0.596 × R − 0.274 × G − 0.322 × B
Q = 0.212 × R − 0.523 × G + 0.311 × B
With these formulae the Y range is [0; 1], but U, V, I, and Q can be as well
negative as positive.
Y CbCr (see fig. 4.5) is a color space similar to Y U V and Y IQ. The trans-
formation formulae for this color space depend on the recommendation used.
We use the recommendation Rec 601-1 which gives the value 0.2989 for red, the
value 0.5866 for green and the value 0.1145 for blue.
13
Figure 8: I1 I2 I3 color space
RGB to I1 I2 I3 transformation
1
I1 = 3 (R + G + B)
1
I2 = 2 (R − B)
1
I3 = 4 (2G − R − B)
14
Figure 9: LSLM color space
15
RGB to HSI transformation
β
H = arctan(
p α)
S = α2 + β 2 (8)
I = (R + G + B)/3
with
½
α=R √
− 12 (G + B)
3
β = 2 (G − B)
• There is different way to compute the HSV (Hue, Saturation and Value)
color space [4]. We use the following algorithm 4.7.
The polar representation of HSV (see fig. 11(a)) and HSI (see fig. 11(b))
color spaces leads a new visualization model of these color spaces (suitable for
color selection).
16
(a) HSV color space (polar representa- (b) HSI color space (polar representa-
tion) tion)
Figure 11: Visualization of HSV and HSI color spaces (polar representation)
L∗ a∗ b∗ to LHC transformation
∗
L=L √
C = a∗2 + b∗2
H = 0 whether a∗ = 0
H = (arctan(b∗ /a∗ ) + k.π/2)/(2π)
whether a 6= 0 (add π/2 to H if H < 0) (9)
and k = 0 if a∗ >= 0 and b∗ >= 0
or k = 1 if a∗ > 0 and b∗ < 0
or k = 2 if a∗ < 0 and b∗ < 0
or k = 3 if a∗ < 0 and b∗ > 0
L∗ u∗ v ∗ to LHS transformation
L = L∗p
S = 13 (u∗ − u∗w )2 + (u∗ − u∗w )2
H = 0 whether u∗ = 0
H = (arctan(v ∗ /u∗ ) + k.π/2)/(2π)
whether u 6= 0 (add π/2 to H if H < 0) (10)
and k = 0 if u∗ >= 0 and v ∗ >= 0
or k = 1 if u∗ > 0 and v ∗ < 0
or k = 2 if u∗ < 0 and v ∗ < 0
or k = 3 if u∗ < 0 and v ∗ > 0
17
L∗ a∗ b∗ to LHC transformation used in ColorSpace
∗
L=L √
C = a∗2 + b∗2
(11)
H = 0 whether a∗ = 0
b∗
H = 180
π (π + arctan( a∗ )
Let us consider the xy chromaticy diagram given by Figure 13(b). Then, any
real color X that lies within the region enclosed by the spectrum locus line and
upper the lines BW and W R can be considered to be a mixture of illuminant
W and spectrum light of its dominant wavelength λd which is determined by
extending the line W X until it intersects the spectrum locus [9].
Any color Y that lies on the opposite side of the illuminant point and below
the lines BW and W R can be described both by a dominant wavelength λd and
18
λd
λd
Green Green
xs max
x
xc λa−d
x
Spectrum locus Spectrum locus
White White
Red y Red
ys
max
Blue Blue
(a) (b)
(c) (d)
19
by its complementary wavelength λcd which is determined by extending the line
Y W until it intersects the line BR (i.e. the purple line).
The saturation S is determined in the xy chromaticity diagram, either by
the relative distance of the sample point and the corresponding spectrum point
from the illuminant point, either by the relative distance of the sample point
and the corresponding purple point from the illuminant point.
Figure 14: (a) RGB Color image, made of 6 regions (Brown, Orange, Yellow,
Pink, Green and Dark Green), projected on different color components. (b),
(c), (d) R, G, B projections. Among the three R, G, B color components, at
most 3 regions can be identified with the component G. (e), (f), (g) Y, Cb , Cr
projections. Among the three Y, Cb , Cr color components, at most 3 regions can
be identified with the component Y . (h), (i), (j) H, S, V projections. Among
the three H, S, V color components, at most 3 regions can be identified with
the component H. In combining G, Y, H color components, all regions can be
identified.
20
tomatically the most relevant color components corresponding to a selected set
of color components. That is the reason why, in order to build a hybrid color
space, based on K 0 color components, from K selected color components, such
as K 0 << K (see Figure 14), we propose the following method: (1) select K
color components, by using a specific interface which enables the user to weight
each selected color components, and build the corresponding image of dimension
K, (2) compute the covariance matrix (of size K × K) of K color components
selected, (3) compute the eigenvectors and the eigen values of this matrix, (4)
reduce to K 0 the number of color components in computing the K 0 most signif-
icant eigen values of the covariance matrix from a principal component analysis
(PCA).
Next, the three first principal components computed (i.e. the decorrelated
hybrid colors components) are used to compute the 3D representation which
best characterizes the image studied (see Figure 15).
weight
2 Using Components Y of xyY , L∗ of L∗ a∗ b∗ ,L of LHC, I of HSI, without weight
21
(a) Parrot image (b)
(c) (d)
22
6 Decorrelated hybrid color spaces applied to
image database
6.1 Decorrelated hybrid color spaces: an extension
We have introduced the hybrid construction scheme in the precedent paragraph,
based on one initial image. This strategy can be easily applied to a list of im-
ages, considering the set of images as one unique image.
We will use the following notations, and we will suppose (for simplicity of for-
mulæ only) all color spaces are normalized.
• S the set of n images and Sl the l-th image.
• K the set of selected color spaces components and Ki the i-th component.
• Kil (x, y) the corresponding value of pixel (x, y) of component Ki of image
Sl .
• Size (Sl ) the size in pixel of the image Sl .
X
Crosslij = Kil (x, y) ∗ Kjl (x, y)
xy∈Sl
We note, that for one image Sl , the covariance is then defined by:
l
Crosslij Sumli Sumlj
Covij = − ×
Size (Sl ) Size (Sl ) Size (Sl )
At this point, the computation of the hybrid color space follows the previ-
ously cited steps:
4. principal component analysis;
5. selection of the 3 most significant axis.
We have developed via ICobra and ColorSpace applications a web interface
system3 [14] to manage these hybrid color spaces. The process is divided in two
steps:
3 Available at: http://www.icobra.info/hybrid.php
23
• Off-line computation. This part intends to compute the main portion of
calculus required by the hybrid color space computation.
• Online interface. This part intends, via the interface, to select color spaces
components and images, to complete the calculus, and, then, to show the
selected image in the computed hybrid space.
Before describes rapidly these two parts, we can note: all color spaces are nor-
malized during the computation (there is a scale rapport from 1 to 200 between
some spaces); the transfer values (primaries and white settings) used are, at this
moment, still approximation.
The figure 17 illustrates the off-line computation. For each image, we will
compute and store:
• for each couple of color spaces components, the Cross value corresponding.
It results a m × m matrix, where t is the number of possible color spaces
components, presently 72 (3 × 24) components.
• for each color spaces components, the Sum value corresponding. It results
a vector of size m.
• the size of image.
24
Figure 18: Overall online scheme
25
– to select a list of color spaces components;
– to choose the mode of visualization: 2D image, 3D, or 3D histogram;
– to launch ColorSpace with the selected parameters;
• A computational part: the final covariance matrix is computed, using
pre-calculated data;
• A CSI file generation: a csi file (Color Space Interface) is generated, in-
cluding all settings and information in order to compute the PCA and
displaying the selected visualization;
Figure 20 illustrates this tool within some screenshots using different images
and color spaces components.
26
(a) Original image (b) Selected com- (c) Decorrelated hybrid color
ponents and images space representation
list
27
[11] H. R. Kang, Color Technology for Electronic Imaging Devices. SPIE
Optical Engineering Press, 1997.
[12] K. N. Plataniotis and A. N. Venetsanopoulos, Color Image Processing
and Application. Springer, 2000.
[13] R. Hall, Illumination and Color in Computer Generated Imagery.
Springer-Verlag, 1988.
[14] J. D. Rugna, P. Colantoni, and N. Boukala, “Hybrid color spaces applied
to image database,” vol. 5304, pp. 254–264, Electronic Imaging, SPIE,
2004.
28