-
Notifications
You must be signed in to change notification settings - Fork 0
/
Colorimetry.tex
216 lines (158 loc) · 16.2 KB
/
Colorimetry.tex
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
\subsection{Colorimetry}
\textit{The current recommended source for colorimetry is \gls{CIE} document `\gls{CIE} 015:2018'\citep{cie_cie_2018}\footnote{Though as \citet{fairchild_cie_2019} notes, this document is `expensive and somewhat difficult to find', and as such I have been using a draft of the now superseded `\gls{CIE} 15.3:2004'\citep{cie_cie_2004-2} as my personal guide. All equations listed in this chapter come from this source.}. Whilst this is the authoritative reference, my personal opinion is that an understanding of \gls{CIE} colorimetry is best gained from an understanding of its history, and for this I recommend Janos Schanda's book `Colorimetry: Understanding the \gls{CIE} System' \citep{schanda_colorimetry_2007}. Another valuable, and perhaps more easily accessed, reference source is \citet{stockman_color_2010}.}
\bigskip
I define `colorimetry' as the study of the quantitative specification of colour. As a subjective, internal and anthropocentric concept, in order to measure anything meaningful and comparable, we use a standard observer, or more precisely, one of a number of defined standard observers \cite{cie_bs_2011}.
The classic standard observer was defined by the \gls{CIE} in 1931, following experiments by Wright and Guild \cite{wright_re-determination_1929, guild_colorimetric_1931}. Despite several more recently published standard observers, the 1931 observer is still much used, and I shall use it in the following example of how a basic colorimetric computation is performed.
\glsreset{SPD}
\glsreset{SRF}
\glsreset{CMF}
\glsreset{SSF}
An illuminant is defined by its \gls{SPD}, a surface by its \gls{SRF}, and the sensitivity of a sensor (such as a photosensitive cell in the retina, or a pixel in a camera) by its \gls{CMF} (or in the case that biologically based measurements are used - the \gls{SSF}). Examples of these are shown in Figure \ref{fig:specFun}.
\begin{figure}[htbp]
\includegraphics[max width=\textwidth]{figs/LitRev/SPDetc.pdf}
\caption{An \gls{SPD} (D65), a set of \glspl{SRF} (from a Macbeth Colour Checker) and three \glspl{CMF} (\gls{CIE} 1931 observer).}
\label{fig:specFun}
\end{figure}
% % How is D65 normalised here?
The light reaching the eye for a given reflecting surface under a given illuminant (termed the `colour signal') can be computed by multiplying the \gls{SPD} by the \gls{SRF} at each sampled interval.
\begin{equation}
\phi(\lambda)=R(\lambda) \cdot S(\lambda)
\end{equation}
where $R(\lambda)$ is the \gls{SRF}, $S(\lambda)$ is the \gls{SPD} and $\phi(\lambda)$ is the resulting colour signal. From this a set of values termed `tristimulus values' may be computed. Tristimulus values are computed by multiplying the colour signal by the \glspl{CMF} or \glspl{SSF}, and following the principle of univariance (that each cone type cannot alone distinguish between different wavelengths) the tristimulus values can, to some extent, be thought of as containing the entirety of the chromatic information about a surface (for a human standard observer, excluding high level colour appearance phenomena predicted by \Glspl{CAM}, and properties such as gloss).
%KC: make sure these equations are on the same page as the explanation
\begin{subequations}
\begin{align}
X=k \sum_{\lambda} \phi(\lambda) \overline{x}(\lambda) \Delta \lambda \\
Y=k \sum_{\lambda} \phi(\lambda) \overline{y}(\lambda) \Delta \lambda \\
Z=k \sum_{\lambda} \phi(\lambda) \overline{z}(\lambda) \Delta \lambda
\end{align}
\label{eq:XYZ}
\end{subequations}
\nopagebreak %this doesn't work currently
where $\overline{x}(\lambda)$ (said `x bar'), $\overline{y}(\lambda)$ and $\overline{z}(\lambda)$ are the \glspl{CMF} of the 1931 observer (or are replaced by the \Glspl{CMF}/\Glspl{SSF} of the chosen observer), $\phi(\lambda)$ is as defined above, $k$ is a normalising factor, and $\Delta\lambda$ is 1nm. It is traditional to set $k$ such that $Y=100$, though in the case of relative colorimetry (most cases) this is often not done since the following equation renders it superfluous.
From the tristimulus values ($X,Y$ and $Z$) chromaticity co-ordinates ($x$ and $y$) can be computed. These can then be plotted on a 1931 chromaticity space diagram, shown as Figure \ref{fig:1931}.
\begin{subequations}
\begin{align}
x=\frac{X}{X+Y+Z} \\
y=\frac{Y}{X+Y+Z}
\end{align}
\label{eq:1931chrom}
\end{subequations}
% Here's a \gls{MATLAB} example, using \gls{PTB} for data:
% \begin{lstlisting}[language=MATLAB]
% load spd_D65 % SPD: CIE D-series illuminant D65
% load sur_macbeth % SRF: macbeth colour checker
% load T_xyz1931 % CMF: CIE 1931
% colourSignals = sur_macbeth.*spd_D65;
% XYZ = T_xyz1931*colourSignals;
% xy = [XYZ(1,:)./sum(XYZ);XYZ(2,:)./sum(XYZ)];
% \end{lstlisting}
% Plotting:
% \begin{lstlisting}[language=MATLAB]
% spectralLocus = [T_xyz1931(1,:)./sum(T_xyz1931);T_xyz1931(2,:)./sum(T_xyz1931)];
% sRGBSpectralLocus = XYZToSRGBPrimary(T_xyz1931);
% figure, hold on,
% scatter(spectralLocus(1,1:70),spectralLocus(2,1:70),[],sRGBSpectralLocus(:,1:70)','filled')
% scatter(xy(1,:),xy(2,:),'k')
% axis equal, axis([0 1 0 1])
% xticks([0 1]), yticks([0 1])
% xlabel('x'), ylabel('y')
% \end{lstlisting}
\begin{figure}[htbp]
\includegraphics[max width=\textwidth]{figs/LitRev/ColorimetryDemo1.pdf}
\caption{The \gls{CIE} 1931 chromaticity space, showing the chromaticity of the Macbeth colour checker patches under D65. Note that for all of the plots in this section, the colours used for the spectral loci are only approximations.}
\label{fig:1931}
\end{figure}
\subsubsection{Specific Colour Spaces} \label{sec:speccolspac}
Over time various other colour spaces have been proposed and formally accepted by the \gls{CIE}, each aiming to improve upon a prior space in one or more ways. One of the most frequently sought characteristics for a colour space is perceptual uniformity, whereby a set distance in one part of the space is comparable in terms of apparent colour difference to that same distance in another part of the space.
One such chromaticity space which shall be used extensively in this thesis is the \gls{CIE} 1976 UCS (uniform chromaticity scale) space (colloquially \gls{CIE} u'v'), which is a relatively simple transformation of the 1931 chromaticity space. The conversion can be accomplished in a number of analogous fashions, one of which is shown below.
\begin{subequations}
\begin{align}
u' &= 4x / (-2x + 12y + 3) \\
v' &= 9y / (-2x + 12y + 3)
\end{align}
\end{subequations}
where $x$ and $y$ are the 1931 chromaticity co-ordinates as defined in Equation \ref{eq:1931chrom}. The data presented in Figure \ref{fig:1931} are re-plotted in this new space in Figure \ref{fig:UCS}.
\begin{figure}[htbp]
\includegraphics[max width=\textwidth]{figs/LitRev/ColorimetryDemo3.pdf}
\caption{\gls{CIE} 1976 UCS (uniform chromaticity scale) space, showing the chromaticity of the macbeth colour checker patches under D65 (as in Figure \ref{fig:1931}).}
\label{fig:UCS}
\end{figure}
A three-dimensional extension to the CIE 1976 UCS space is the \gls{CIE} 1976 L*u*v* colour space, often abbreviated to CIELUV, which aims to provide perceptual uniformity in a space that includes both chromaticity and lightness (relative to a white object under the same illumination). It is defined as follows:
\begin{subequations}
\begin{align}
L^{*} &= 116 f(Y/Y_{n})-16 \\
\textrm{where} f(Y/Y_{n}) &= (Y/Y_{n})^{1/3} &\textrm{ if } (Y/Y_{n}) > (24/116)^{3} \\
\textrm{or} f(Y/Y_{n}) &= (841/108)(Y/Y_{n})+16/116 &\textrm{ if } (Y/Y_{n}) \leq (24/116)^{3} \\
u^{*} &= 13L^{*}(u'-u'_{n}) \\
v^{*} &= 13L^{*}(v'-v'_{n})
\end{align}
\end{subequations}
where $Y_{n}$, $u'_{n}$ and $v'_{n}$ refer to the colour stimulus of a perfect reflector. The same data presented in Figures \ref{fig:1931} and \ref{fig:UCS} is presented in CIELUV in Figure \ref{fig:CIELUV} (though of course the three-dimensional quality of the data is somewhat lost in this presentation).
\begin{figure}[hbtp]
\includegraphics[max width=0.8\textwidth]{figs/LitRev/ColorimetryDemo4.pdf}
\caption{A representation of CIELUV, showing the values for the macbeth colour checker patches under D65 (as in Figure \ref{fig:1931} and \ref{fig:UCS}). Note that if viewed from above, the distribution of points would appear similar to as in Figure \ref{fig:UCS}. If all of the points were of uniform $L^{*}$, then the distribution would be identical, only with different scaling and offsetting.}
\label{fig:CIELUV}
\end{figure}
Introduced at the same time as CIELUV was a colourspace with a similar goal of perceptual uniformity: CIELAB. They are similar in many ways, and share $L^{*}$. CIELAB seems to be in slightly more common usage, but CIELUV is used in this thesis (particularly Chapter \ref{chap:Tablet}) due to the neat mathematical link to an associated chromaticity space (the CIE 1976 UCS space).
The two spaces suit subtly different purposes, requested by two different user groups identified at the time of the creation of these spaces: ``lighting engineers interested in a space and formula that is a linear transformation of the CIE chromaticity diagram, and industrial colorists interested in a formula predicting perceived average color differences better than any existing one'' \citep{kuehni_color_2008}. CIELUV satisfied the first group, and CIELAB was designed to better suit the second, using a cube root function for the chromaticity values, mirroring $L^{*}$. CIELAB is defined as follows:
\begin{subequations}
\begin{align}
L^{*} &= 116 f(Y/Y_{n})-16 \\
\textrm{where} f(Y/Y_{n}) &= (Y/Y_{n})^{1/3} &\textrm{ if } (Y/Y_{n}) > (24/116)^{3} \\
\textrm{or} f(Y/Y_{n}) &= (841/108)(Y/Y_{n})+16/116 &\textrm{ if } (Y/Y_{n}) \leq (24/116)^{3} \\
a^{*} &= 500[f(X/X_{n}) - f(Y/Y_{n})] \\
b^{*} &= 200[f(Y/Y_{n}) - f(Z/Z_{n})]
\end{align}
\end{subequations}
where $f(X/X_{n})$ and $f(Z/Z_{n})$ follow the same format as $f(Y/Y_{n})$.
The final colour space presented here is the \acrfull{MB} colour space. This space does not aspire to be perceptually uniform\footnote{This can be clearly noted by comparing Figure \ref{fig:lrMB} with previous figures. Where this set of chromaticities previously spanned the spaces fairly broadly, here all the chromaticities inhabit only a small portion of the chromaticity space.}. Instead, it aspires to provide a colour space which has a physiological underpinning. As such, the standard observer model consists of nominal \glspl{SSF} (rather than \glspl{CMF}), and the conversion from tristimulus values to chromaticity space attempts to mirror the way in which this actually occurs physiologically.
It was originally proposed by \citet{macleod_chromaticity_1979}, but was recently revised and endorsed by the \gls{CIE}, in documents `CIE 170-1:2006' \citep{cie_cie_2006} and `CIE 170-2:2015' \citep{cie_cie_2015}\footnote{I understand that the final publication in the series (`CIE 170-3:XXXX') is in preparation.}. The revisions included the definition of a new observer (formally the `TC 1-36 Modified Colorimetric Observer', colloquially refered to as the \gls{CIE} 2006 observer), based on the work of \citet{stockman_spectral_1999} and \citet{stockman_spectral_2000} (and referred to below as $\overline{lms}$), and the introduction of a set of new normalising terms, such that it is now calculated as follows.
\begin{subequations}
\begin{align}
L_{\text{MB}}&=k_{l} \sum_{\lambda} \phi(\lambda) \overline{l}(\lambda) \Delta \lambda \\
M_{\text{MB}}&=k_{m} \sum_{\lambda} \phi(\lambda) \overline{m}(\lambda) \Delta \lambda \\
S_{\text{MB}}&=k_{s} \sum_{\lambda} \phi(\lambda) \overline{s}(\lambda) \Delta \lambda
\end{align}
\label{eq:MBTristim}
\end{subequations}
where $k_{l}$ = 0.68990272, $k_{m}$ = 0.34832189, $k_{s}$ = 0.03715971. This set differs minimally but purposefully from Equation \ref{eq:XYZ}; in the choice of observer ($\overline{lms}$), and in the use of different scaling factors for each tristimulus value. The different scaling values dictate the relative contributions of $L_{\text{MB}}$ and $M_{\text{MB}}$ to luminance, and constrict $s_{\text{MB}}$ to a maximum value of 1 in the following equation (Equation \ref{eq:MB}). \gls{MB} chromaticity values are then calculated as follows:
\begin{subequations}
\begin{align}
l_{\text{MB}}&= \frac{L_{\text{MB}}}{L_{\text{MB}}+M_{\text{MB}}} \\
s_{\text{MB}}&= \frac{S_{\text{MB}}}{L_{\text{MB}}+M_{\text{MB}}}
\end{align}
\label{eq:MB}
\end{subequations}
Whereas the relationship between the axes of previous colour spaces was important, here the axes are nominally independent (representing different post-receptoral mechanisms) and so the scaling between the axes is arbitrary. As such, in vision science the axes of this diagram are often re-scaled to suit the task at hand (see for example \citet{christiansen_chromatic_2017,bosten_what_2015,danilova_superior_2016}). The same data as presented previously is presented again in Figure \ref{fig:lrMB} in a \gls{MB} chromaticity space.
\begin{figure}[htbp]
\includegraphics[max width=\textwidth]{figs/LitRev/ColorimetryDemo5.pdf}
\caption{A \gls{MB} chromaticity space diagram (as per \gls{CIE} 170-2:2015 \citep{cie_cie_2015}) showing the values for the macbeth colour checker patches under D65, as in previous figures.}
\label{fig:lrMB}
\end{figure}
\subsubsection{Correlated Colour Temperature}
The \acrfull{CCT} of an illuminant is defined by CIE 15.3:2004 \citep{cie_cie_2004-2} as follows:
\begin{itquote}{}
The temperature of a Planckian radiator having the chromaticity nearest the chromaticity associated with the given spectral distribution on a diagram where the (CIE 1931 standard observer based) u', 2/3v' coordinates of the Planckian locus and the test stimulus are depicted.
\end{itquote}
Whilst by this definition a light source of any chromaticity could be assigned a \gls{CCT}, as the distance between the Planckian locus and the test stimulus increases, the \gls{CCT} becomes a less meaningful descriptor. CIE 15.3:2004 \citep{cie_cie_2004-2} defines chromaticity limits on the maximum distance between the Planckian locus and the test stimulus, beyond which \gls{CCT} should not be used, which are described in Equation \ref{eq:CCTlim}.
\begin{equation}
\Delta C=\left[\left(u_{t}^{\prime}-u_{P}^{\prime}\right)^{2}+\frac{4}{9} \cdot\left(v_{t}^{\prime}-v_{P}^{\prime}\right)^{2}\right]^{1 / 2}=5 \cdot 10^{-2}
\label{eq:CCTlim}
\end{equation}
where $u^{\prime}_{t}, v^{\prime}_{t}$ refer to the test source and $u^{\prime}_{P}, v^{\prime}_{P}$ to the Planckian radiator.
Figure \ref{fig:BBR} shows the Planckian locus (the curve formed by a set of black body radiators of different temperatures) in \gls{CIE} 1931 chromaticity space. It is worth noting that most real light sources (natural and artificial) fall upon the relatively straight section of the left-hand part of this line.
\gls{CCT} is often used as the independent variable in experiments, with the implicit assumption that this can be considered a complete descriptor of a light source. This assumption only holds to the extent that the spectral form is similar between conditions (for example if only a single light source is used and well defined filtration is applied, which shifts the chromaticity of the light source along the Planckian locus), and that the only difference between conditions is a shift along the Planckian locus.
A shift in chromaticity perpendicular to the Planckian locus would result in no change to the \gls{CCT}. To counter this issue, an additional parameter ($D_{\text {uv }}$) is defined \citep{ohno_practical_2014} as per Equation \ref{eq:Duv}, which provides a value for the distance from the Planckian locus.
\begin{equation}
D_{\mathrm{uv}}=\left[\left(u^{\prime}-u_{0}^{\prime}\right)^{2}+\left(\frac{2}{3} v^{\prime}-\frac{2}{3} v_{0}^{\prime}\right)^{2}\right]^{\frac{1}{2}} \cdot \operatorname{sgn}\left(v^{\prime}-v_{0}^{\prime}\right)
\label{eq:Duv}
\end{equation}
where $\operatorname{sgn}(z)=1$ for $z\geq0$ and $\operatorname{sgn}(z)=-1$ for $z<0$.
\citet{ohno_practical_2014} notes that the combination of \gls{CCT} and $D_{\text {uv }}$ is sufficient to describe the chromaticity of most light sources, and does so in a fashion which is slightly more intuitive than values of chromaticity.
\begin{figure}[htbp]
\includegraphics[max width=\textwidth]{figs/LitRev/BBR.pdf}
\caption{The Planckian locus on a \gls{CIE} 1931 chromaticity chart, highlighting \glspl{CCT} of 1000K, 6500K and 10000K.}
\label{fig:BBR}
\end{figure}
\clearpage