BookNotesSlidesP-sets Syllabusdraft · v0.2.49.1
◀▲⌂▶
💬Comments welcome. To leave a note, select any text and click the note / highlight button that pops up — or open the panel with the tab at the top-right (‹). Notes are visible only inside our private review group.
💡 In a hurry? Jump to this chapter’s 6 big lessons ↓

3.2 Perceptual color and trichromatic vision⧉

A display can match the yellow of a flower without emitting the flower's spectrum. Different physical lights can produce the same visual response. That makes color reproduction possible, but also means that a color match tells us little about the underlying spectrum.

We distinguish the light's spectrum, the cone responses it produces, and its appearance in a particular context. Color matching is a measurable relation between stimuli for an observer under specified conditions. A standard observer summarizes such measurements; it does not eliminate variation between people or predict every aspect of appearance.

3.2.1 Cone photoreceptors and perceptual color⧉

Even though cones are known to be the color vision receptors, a single cone does not measure wavelength; it produces one number, and stimuli of different wavelengths can yield the same response.

A given cone type $k$ has a spectral sensitivity $c_k(\lambda)$: a curve saying how strongly it responds to light of each wavelength (Figure 3.2.1).

fig-cone-sensitivities
Figure 3.2.1. The three cone spectral sensitivities. The long- (L), medium- (M), and short-wavelength (S) cones peak in the yellow-green, green, and blue-violet respectively. Note how heavily L and M overlap; they are far from independent "red" and "green" detectors. Each cone reports a single number: its sensitivity curve multiplied by the incoming spectrum and integrated.

For a fixed state of adaptation, we model the initial cone excitation from an energy spectrum $E(\lambda)$ as a weighted integral, the spectrum weighted by its sensitivity and summed over all wavelengths (Figure 3.2.2):

$$ r_k = \int E(\lambda)\, c_k(\lambda)\, d\lambda, \qquad k \in \{L, M, S\}. $$

This linear excitation model precedes the nonlinear adaptation and neural response. Use energy-based sensitivities with an energy spectrum, or quantum-based sensitivities with photon counts; mixing the two conventions gives a wavelength-dependent error. Mathematically the integral is a continuous dot product. In the case of monochromatic light (a single wavelength $\lambda$) it reduces to the scalar product of the cone's sensitivity at $\lambda$ and the light's intensity for $\lambda$.

fig-spectrum-cones
Figure 3.2.2. From a spectrum to three numbers. Any incoming spectral power distribution is projected onto the three cone sensitivity curves (L, M, S) by a weighted sum over wavelength, collapsing an effectively infinite-dimensional spectrum into just three responses. Scribble a spectrum with the mouse (or load a real one, such as daylight or tungsten); at each sample wavelength the figure prints the spectrum value and the chosen cone's sensitivity, then writes out the full product-sum that adds up to that cone's response. This projection is exactly why different spectra can look identical (metamerism, next).

As Figure 3.2.3 shows, lights at different wavelengths can yield the same response if their intensity ratio is the inverse of the cone's spectral response ratio for those two wavelengths. A single cone conflates wavelength with intensity, a property called univariance.

fig-cone-confusion
Figure 3.2.3. A single cone cannot distinguish color. One cone type is chosen and its sensitivity is drawn bold, the other two faint. Two monochromatic lights sit at different wavelengths, and each light's intensity is set so the chosen cone gives the same response to both, so that cone alone cannot tell them apart. The other two cones respond differently, which is exactly the comparison the visual system uses to recover wavelength. This is univariance: for one cone, many wavelengths map to one output. Tick "show other cones" to reveal how the other two respond differently to the same two lights.

While a single cone cannot distinguish wavelength, the combination of three cone responses provides much more information (click on "show other cones" in Figure 3.2.3 ). This is the trichromatic theory of color vision, pioneered by Thomas Young and put on a quantitative footing by Hermann von Helmholtz.

fig-young-helmholtz
Figure 3.2.4. Helmholtz's own drawing of the three sensitivities, from the Handbuch der physiologischen Optik. The horizontal axis is the spectrum, labeled in German with the color names of the day: R for Roth, O for orange, G for Gelb (yellow, not green), Gr for Grün, Bl for Blau, V for Violett. Curves 1, 2 and 3 are the three receptor types, drawn broad and heavily overlapping, each one responding across most of the spectrum with a different peak. Compare it with the measured curves in Figure 3.2.1: the shapes were guessed rather than measured, and curve 3 in particular is far too narrow, but the structure is right, and it was right roughly seventy years before anyone could record from a single cone. Everything in this chapter is a refinement of this picture. Image: Hermann von Helmholtz, Gesammelte Schriften III.2 (Olms-Weidmann, 2003), Fig. 21, by 1894; public domain, via Wikimedia Commons.

For photopic color matching, a fixed observer is modeled by three cone excitations $(r_L,r_M,r_S)$. Equal excitations predict a match when spatial, temporal, and adaptation conditions are held fixed. Rod contributions, receptor differences between observers, and contextual appearance require additional considerations.

To compute the integral, sample an energy spectrum at wavelengths $\lambda_i$ with bin widths $\Delta\lambda_i$. Put the spectral-density values into $\mathbf E$, and define the matrix entries as $C_{ki}=c_k(\lambda_i)\Delta\lambda_i$. Then

$$\mathbf r\approx\mathbf C\mathbf E,\qquad r_k\approx\sum_{i=1}^{N}E(\lambda_i)c_k(\lambda_i)\Delta\lambda_i.$$

Each term is the excitation contributed by one wavelength bin. The bin width matters: doubling the number of samples should improve the approximation, not double the response. With nonuniform samples, use the appropriate quadrature weights. Figure 3.2.5 illustrates the matrix computation.

response = [0, 0, 0]
for each wavelength bin i:
    for each cone type k:
        response[k] += spectrum[i] * sensitivity[k, i] * bin_width[i]

Keep spectrum and sensitivity on the same wavelength grid and use one wavelength unit throughout.

fig-cone-response-matrix
Figure 3.2.5. Cone response as a matrix–vector product $\mathbf{r} = \mathbf{C}\,\mathbf{E}$. The spectrum is discretized into $N$ samples (the vector $\mathbf{E}$); the three cone sensitivities are the rows of the $3 \times N$ matrix $\mathbf{C}$; the product is the three cone responses. In the limit $N \to \infty$ the spectrum is infinite-dimensional and the sum becomes an integral. Interactive: draw the spectrum by dragging across the plot, and move the bins slider, and as N grows the staircase sum (a Riemann sum) hugs the continuous curve.
💡 Big lesson (L3.1) — a cone response is a dot product of the spectrum with the cone's sensitivity

Each cone excitation is an integral of spectral density times the appropriate sensitivity. A sampled implementation must include wavelength-bin widths (or absorb them into the matrix). Three excitations summarize photopic color matching for a fixed observer and viewing condition; they do not recover the spectrum.

We established above that a single cone cannot distinguish wavelengths. Only by comparing the three cones' outputs can the brain begin to separate the two. However, this ability is limited. This is unsurprising because trichromatic vision summarizes a whole spectrum with only three numbers.

The three-bin examples below are a model of the spectrum, not three isolated cone channels. A bin containing long-wavelength light generally excites both L and M cones. Changing its power changes their ratio as well as their absolute responses. Equal bin powers need not produce equal cone excitations or a neutral white: those depend on the bin boundaries, sensitivity normalization, and reference white. The displayed swatches show an RGB approximation of the resulting color, limited by the screen's gamut.

A few cases make the three-number code concrete. Put the power in the long-wavelength bin and L responds most, M somewhat less, S hardly at all: red. Put it in the short bin and S leads: blue. In the middle bin, M leads with L close behind: green. Fill the long and middle bins together, with little short, and L and M both respond strongly, with L further ahead than for the middle bin alone: yellow, a color with no bin of its own, which is the sign that yellow sits next to green in cone space. All three bins at comparable power give a color near white, depending on the normalization. Orange (mostly long, some middle), cyan (middle plus short) and purple (long plus short, skipping the middle) fill in the hue circle. Every named color is a ratio of three cone catches, and very different spectra can land on the same ratio.

fig-trichromatic-cartoon
Figure 3.2.6. The crudest color model that works. Chop the visible band into just three bins (S, short, roughly blue; M, medium, roughly green; L, long, roughly red) and set a flat power in each. Even this three-number cartoon of a spectrum already makes a recognizable color: yellow is medium plus long, cyan is short plus medium, purple is short plus long, and white is all three at once. Each color disk is computed from its three bins by integrating the CIE color-matching functions over them, not hand-picked, so it shows the same additive logic the three cone types run, reduced to three numbers. Mix the bins yourself in the companion Figure 3.2.7.
fig-trichromatic-mixer
Figure 3.2.7. Mix a color from three numbers. Drag the three bin powers (S short and blue, M medium and green, L long and red) and the perceived color updates, along with the three cone responses r = (r<sub>L</sub>, r<sub>M</sub>, r<sub>S</sub>) those bins drive. Load a preset to see that yellow is just M plus L, cyan is S plus M, purple is S plus L, and white is all three. Trichromacy in miniature: any spectrum you can make here is summarized by exactly three numbers, and any two that give the same three cone responses look identical.

3.2.2 Metamers⧉

Different nonnegative spectra can produce the same cone-response triple. Such spectra are metamers for that observer and viewing condition. In the sampled model, a spectral perturbation in the null space of $\mathbf C$ leaves the responses unchanged, provided the modified spectrum remains nonnegative (Figure 3.2.8). Displays exploit this: they reproduce an in-gamut color by emitting a metamer rather than the original spectrum. Three fixed physical primaries cannot reproduce every visible color (Chapter 4.1, Linear color reproduction and CIE XYZ).

fig-cone-subspace-projection
Figure 3.2.8. The eye as a projection (interactive). A spectrum sampled at $N$ wavelengths is a point in $N$ dimensions, and the three cones map it to three numbers. Everything the cones send to zero, the null space of $\mathbf C$, has $N-3$ dimensions: move the spectrum along one of those directions with the slider and the curve changes while the three responses and the color do not. The slider stops where some sample would go negative, since past that point the curve is no longer a light. On the right is response space: each ray is one sampled wavelength, drawn to where it crosses $L+M+S=1$, so the tips trace the spectral locus, and every spectrum's ray crosses inside it. Drop a cone and response space flattens to a plane; a second spectrum that differed only in that cone's response lands on the same point, which is why a dichromat confuses colors a trichromat tells apart.
💡 Big lesson (L3.2) — metamers: different spectra, same cone response

Different spectra can yield the same cone excitations for a specified observer. This enables color reproduction without reproducing the spectrum, but a fixed display can match only colors within its gamut. Matches between reflecting materials can fail when the illuminant changes.

fig-metamers
Figure 3.2.9. Two metamers. The two spectra (left) are completely different functions of wavelength, yet they project to the same three cone responses and so look like the same color (right). Metamerism (a direct consequence of the three-number projection) is what lets a three-primary display match almost any color.
fig-metamer-explorer
Figure 3.2.10. Metamerism, made constructive. The top spectrum is projected onto the three cone curves to give the responses $(r_L, r_M, r_S)$; the bottom spectrum is built to be different at every wavelength yet share the same three responses, so both collapse to the same triple and the same perceived color. Generate a fresh metamer, switch families (smooth, spiky with a chosen number of spikes, or block/step), or overlay many family members, all sharing identical cone responses. Many spectra, one response. Interactive: draw the top spectrum by dragging across the panel; the bottom spectrum is generated to be different at every wavelength yet share the same three cone responses.

Two fabrics can match in a shop and differ outdoors. For a nonfluorescent surface in the simple reflectance model, the spectrum reaching the eye is proportional to illuminant times reflectance. A change of illuminant weights the reflectance differences differently, so equality of the three integrals need not survive (Figure 3.2.13). Narrow spectral peaks can make matches sensitive to particular reflectance differences, but smooth illuminants can also break a match. Color-critical work specifies the illuminant and observer. Figure 3.2.11 shows a printed metameric pair under daylight and halogen illumination.

fig-illuminant-metamerism-photo
Figure 3.2.11. Illuminant metamerism, photographed. Two gray patches printed as a metameric pair in Billmeyer & Saltzman's Principles of Color Technology (their differing reflectance curves are shown on the page). Left: under daylight the two patches read as the same neutral gray. Right: under a warm halogen lamp the match breaks: the right patch takes on a pink cast while the left stays gray. A metameric match is a match between two products (reflectance × illuminant); change the light and the products pull apart, and the camera records the same divergence the eye sees.
Figure 3.2.12. community Upload your own photo of metamers (colors that match under one light but split apart under another) to share with other readers.
💡 Big lesson (L3.3) — metamerism can break when the illuminant changes

A metameric match is a match between two products of reflectance and illuminant (L2.6). Swap the illuminant and you multiply by a different spectral shape, so two surfaces that looked identical under one light can diverge under another: illuminant metamerism. It is the headache behind prints that shift between the proofing booth and the living room, and fabrics that match in the shop but clash in daylight; color-critical work must always name the light a match is judged under.

fig-metamerism-illumination
Figure 3.2.13. Metamerism depends on the light (interactive). Two reflectance spectra are built to be metamers under one illuminant, say fluorescent: multiplied by that light they land on the same three cone responses, so they look identical. Under a second illuminant, say daylight, the same two reflectances multiply by a different spectral shape and their colors pull apart. Draw your own reflectance and press "new metamer" for a fresh partner that matches under illuminant A; the two swatch pairs show the match holding under A and breaking under B. Press "new random metamer" for an ordinary partner, or "new adversarial metamer" for a strong mismatch, a partner chosen among the metamers of A by a projected power iteration to change the response under B as much as it can find; "new adversarial reflectance 1" goes further and moves reflectance 1 itself toward the edges of the physical [0,1] range, so its partner can diverge further. Both search for a large mismatch; neither is a proved maximum under the [0,1] constraint. The "match under both" checkbox does the opposite, much harder job: find a reflectance that matches under both lights at once, a perturbation that lives in the null space of both illuminants. That extra constraint is exactly the challenge of printing, where an ink set mixed to match a target under the proofing light drifts under the customer's bulbs, and matching everywhere costs many more degrees of freedom.

Consider a printer matching a fabric. The inks and the fabric can have quite different reflectance spectra while sending the same three cone responses to an observer under the proofing light. Moving both under another light changes the wavelength-by-wavelength weights before those responses are summed. The differences that canceled under the first light need not cancel under the second. A narrow spectral peak can emphasize a region where the two reflectances differ; a smooth change of illumination can also break the match. This is why specifying only three color coordinates does not promise a match under every illuminant. A proofing agreement needs a viewing illuminant and observer as well as a numerical tolerance.

3.2.3 Color blindness⧉

In dichromatic vision, two functionally distinct cone classes supply the photopic color signal. More spectra then share the same response than for a trichromatic observer. In anomalous trichromacy, three classes remain but their spectral sensitivities differ from the usual model. This can reduce discrimination between particular colors. “Color blindness” covers several conditions; it does not usually mean seeing only gray.

fig-ishihara
Figure 3.2.14. An Ishihara test plate. Dots of varying lightness but two carefully chosen hues spell a number that a normal trichromat reads easily but a red–green dichromat cannot separate from the background: a direct demonstration that a missing cone projects distinguishable spectra onto the same response.
fig-xkcd-1213
Figure 3.2.15. xkcd #1213 "Combination Vision Test", Randall Munroe, xkcd.com/1213 (CC BY-NC 2.5).

Protan and deutan deficiencies affect the L/M system; tritan deficiencies affect the S-cone system. Complete achromatopsia involves severely impaired cone function and affects acuity and light sensitivity as well as color. Oliver Sacks's The Island of the Colorblind describes its unusually high prevalence on Pingelap Sacks, The Island of the Colorblind. These conditions cannot all be modeled by simply deleting an RGB channel.

fig-abnormal-cones
Figure 3.2.16. How color-vision deficiency reshapes the cones and their responses. Switch between normal vision and the common deficiencies (buttons) and watch the L (red) and M (green) sensitivity curves, with the normal curves left faint for reference. In anomalous trichromacy (protanomaly, deuteranomaly) all three cones remain but one pigment is shifted so its peak slides toward its neighbor: L and M overlap even more and red-green discrimination is squeezed. In dichromacy (protanopia, deuteranopia) a cone is missing outright and a whole red-green axis collapses. Draw a spectrum E(λ) on the plot and the cone responses r_k = ∫ E c_k dλ update on the right, with the normal responses faint behind: you can see the red and green cones report almost the same number (anomalous), or one channel vanish (dichromacy).

Common inherited red–green deficiencies are associated with L/M opsin genes on the X chromosome and occur more frequently in males. Prevalence varies by population. Other deficiencies have different genetic or acquired causes (National Eye Institute).

For imaging interfaces, do not make hue the only way to distinguish information. Use labels, shapes, or adequate lightness contrast as well. Simulations can reveal likely confusions, but they do not reproduce every observer's experience. Screen versions of test plates depend on the display and viewing conditions and should not be treated as a diagnosis. Recoloring and spectral filters can change which differences are visible; they do not add a missing receptor class.

Anyone can check their own color vision in a few minutes. Ishihara plates screen for red-green deficiency; arrangement tests such as the Farnsworth–Munsell 100 hue test, in which the observer orders colored caps around the hue circle, measure discrimination along that circle, and the pattern of errors shows which axis is affected. Online versions are useful screening, with the display caveats above. Help comes in two kinds, neither a cure. Software daltonization remaps an image to push confusable colors apart, and phones and design tools can simulate a deficiency so a designer can check a chart. Notch-filter glasses remove a narrow band where the L and M sensitivities overlap most, which can enlarge the difference between their responses for some anomalous trichromats; they add no pigment and do little for a dichromat.

Both tools start from the same model. To simulate a dichromat, convert each pixel to cone responses and replace them with the closest triple the dichromat's two remaining cone classes cannot tell from it: the response of the missing class is filled in from the other two, so the pixel moves onto a surface in cone space where every color it could be confused with lands on the same point. Brettel, Viénot and Mollon built that surface from two half-planes anchored on colors that dichromats and trichromats describe alike Brettel, Viénot & Mollon 1997; Machado, Oliveira and Fernandes extended the model to anomalous trichromacy by shifting a pigment's sensitivity by a chosen amount rather than removing it Machado, Oliveira & Fernandes 2009. Daltonization then uses the difference between the original and the simulated image, which is exactly the information the viewer loses, and adds it back along a direction the viewer can see, typically into lightness or the blue-yellow axis. Early web tools such as Vischeck made simulation widely available; the same computation now ships in accessibility checkers and in browser developer tools. A simulation predicts which colors collapse, not what the viewer experiences, and daltonization trades the natural look of the colors for their separability.

The genetics explains much of the difference in prevalence. The L- and M-opsin genes are close together on the X chromosome. Recombination between these similar sequences can remove a gene or produce a hybrid pigment gene, changing the set of spectral sensitivities. With only one X chromosome, an affected copy is sufficient for an X-linked deficiency; with two, another functioning copy can protect against it. MedlinePlus Genetics gives about one in twelve males and one in two hundred females for inherited red-green deficiency in populations of Northern European ancestry, with lower frequencies in many other populations. Blue-yellow deficiencies have different inheritance and are much rarer.

TypeWhat changesMalesFemales
ProtanopiaL cones absentabout 1%about 0.02%
ProtanomalyL pigment shiftedabout 1%about 0.03%
DeuteranopiaM cones absentabout 1%about 0.01%
DeuteranomalyM pigment shiftedabout 5%about 0.4%
TritanopiaS cones absentabout 0.002%about 0.002%
Achromatopsialittle or no cone functionabout 0.003%about 0.003%

Approximate prevalence in populations of European ancestry, after Sharpe and colleagues Sharpe et al. 1999; red-green rates are lower in many other populations, and published estimates vary with the test used.

This is a useful distinction for the projection model. Anomalous trichromacy changes the measurement curves but retains three functionally distinct classes. Dichromacy reduces their number to two. Monochromacy is a further loss of chromatic discrimination, although different clinical conditions can produce it. A software simulation should model the relevant change in sensitivities, not merely turn off the screen's red or green primary.

Trichromacy itself is also a limitation: three measurements cannot identify an arbitrary spectrum. A trichromat can distinguish some pairs that a dichromat cannot, while both discard most of the spectral information. Calling one observer color deficient should not obscure the same information loss in the standard observer used by imaging systems.

3.2.4 Opponent process and the multistage model⧉

A yellow light need not stimulate a “yellow cone.” Comparisons between cone signals contribute to chromatic processing. Physiological opponent responses and psychophysical hue-cancellation measurements support multistage accounts of color vision De Valois et al. 1966 Hurvich & Jameson 1957. They do not establish that one fixed matrix explains unique hues, afterimages, and color names.

A useful teaching model forms one sum and two differences of the cone signals. For cone contrasts relative to positive background excitations $r_{k,0}$, define

$$d_k=\frac{r_k-r_{k,0}}{r_{k,0}},\qquad \begin{pmatrix}q\\a\\b\end{pmatrix} =\underbrace{\begin{pmatrix}1/2&1/2&0\\1&-1&0\\-1/2&-1/2&1\end{pmatrix}}_{\mathbf M} \begin{pmatrix}d_L\\d_M\\d_S\end{pmatrix}.$$

Here $q$ averages the L and M contrasts, $a$ compares them, and $b$ compares S contrast with that average. Equal fractional increases in all three cone excitations change $q$ but leave $a$ and $b$ zero. This is a simplified opponent representation, not a calibrated model of an individual observer's luminance or hue perception.

fig-opponent-channels
Figure 3.2.17. The opponent channels. The L/M/S cone responses are re-mixed into a light–dark (luminance) channel and two chromatic opponents, red–green and blue–yellow. This decorrelation matches the four unique hues, explains complementary afterimages, and is the perceptual basis for the luma/chroma split used in image compression.

Derrington, Krauskopf, and Lennie studied chromatic mechanisms in macaque lateral geniculate neurons Derrington, Krauskopf & Lennie 1984 (DKL cardinal directions). The resulting DKL framework describes modulations around an adapting background along luminance and chromatic cardinal directions. Its numerical transform depends on cone fundamentals, background, luminance weights, and axis normalization. Our equal-weight matrix illustrates sum-and-difference processing; it should not be substituted for a calibrated DKL transform in an experiment. Cardinal directions also need not coincide with an observer's unique red, green, blue, and yellow.

fig-dkl-pipeline
Figure 3.2.18. The cone matrix, then the DKL matrix, on one line (interactive). An updated version of Figure 3.2.5, which stops at $\mathbf{r} = \mathbf{C}\,\mathbf{E}$: the spectrum in $N$ bins hit by the $3 \times N$ matrix of cone sensitivities, drawn as a grid whose cell opacity is the entry. Here the same spectrum carries straight on through the $3 \times 3$ above, drawn the same way, and every result column is shaded by the numbers it holds. Draw on the spectrum and the whole line follows. The $3 \times 3$ acts on cone increments about an adapting background, so $\Delta\mathbf{r}$ is $\mathbf{r}$ minus the background's own, which is why the origin of the opponent space is the background rather than black. Underneath each result is the space it lives in, the same pair of frames as Figure 3.2.19: cone space under the LMS column, opponent space under the opponent column, each with the other frame's directions ghosted behind it and each orbiting on its own. What the axes are for: each chromatic direction is the one that leaves the other mechanisms alone, and the line at the foot checks that on the matrix rather than asserting it. The background is a fully neutral $(1,1,1)$: each cone is expressed in units of the background's own response, so $\Delta\mathbf{r}$ is simply $\mathbf{r} - 1$ in every channel and the arithmetic can be checked by eye. DKL in the literature is also defined on cone contrast about an adapting white, but with axes calibrated so that the luminance axis tracks measured luminance. The equal weights here are schematic: they show opponent recoding, not a calibrated DKL transform, so constant $L+M$ in this figure does not guarantee constant physical luminance. The daylight-like and warm preset spectra are schematic too. The section writes the matrix on plain increments; normalizing this way rescales the axes and leaves untouched what each one holds fixed. Changing the background still moves everything, because it changes what $\mathbf{r}$ is divided by.
💡 Big lesson (L3.4) — color vision is multi-stage: trichromatic, then opponent

Cone excitations are followed by neural comparisons and adaptation. Sum-and-difference models illustrate this processing, but their axes are not exact perceptual hue axes. Engineering luma/chroma transforms exploit related sensitivity differences without reproducing the neural pathway.

fig-lms-opponent-3d
Figure 3.2.19. Human color in two stages, shown as geometry. Stage 1 is the three cone responses (L, M, S), a point set with the sliders and held inside the physically realizable gamut (inputs outside it are projected to its boundary). Stage 2 recodes that point onto opponent axes, a luminance proxy (L+M)/2, red-green (L−M), and blue-yellow (S−(L+M)/2). The same point is shown in two views side by side, the LMS cone space and the opponent space, where the geometry is sheared so the opponent axes are orthogonal; each orbits on its own. The equal weights are a schematic opponent model, not a calibrated luminance or DKL transform. The opponent channels are differences of cone signals, not raw cones, which is why there is no reddish-green, why an afterimage rebounds the opposite way, and why luma/chroma encodings compress: luminance carries the detail and the two chroma differences are smooth. Drag either view to orbit it; the swatch shows the point's color (LMS→sRGB). Below the two panels a live wiring diagram, in the same style as the opponent-channels schematic above, carries the three cone nodes L, M, and S (each showing the point's cone value) through their + and − connections into the three opponent boxes, which print each channel's formula and its value for this point: luminance (L+M)/2, red−green L−M, and blue−yellow S−(L+M)/2, colored toward red or green and blue or yellow by sign.

Afterimages involve adaptation across the visual system, including cone and postreceptoral mechanisms (Chapter 3.3, Adaptation and constancy). Compression exploits lower sensitivity to fine chromatic detail, but that is an empirical property of spatial vision, not a consequence of taking differences alone. The engineering channel $Y\prime$ is luma computed from nonlinear RGB, distinct from physical luminance. Thin colored text and saturated edges can reveal chroma-subsampling artifacts.

3.2.5 So what are the primary colors?⧉

A screen adds light from its primaries, usually red, green, and blue. Inks and filters instead modify the spectrum of incident light; cyan, magenta, and yellow are useful subtractive choices. Neither list is a property of light itself. Different primary spectra give different gamuts.

Psychological unique hues describe appearances such as a yellow that seems neither reddish nor greenish. They are not display primaries or cone classes. Traditional red–yellow–blue painting instruction is another use of “primary”; actual pigment mixtures depend on absorption and scattering, and their gamut depends on the pigments chosen. Chapter 4.7, Synthesizing color develops these physical mixing processes.

💡 Big lesson (L3.5) — primary colors are a choice, not a fact about light

Specify the purpose when naming primaries: sources whose light is added, inks or filters that absorb light, or perceptual hue judgments. RGB and CMY describe common engineering choices, not unique sets required by nature. The chosen spectra and mixing process determine what can be reproduced.

The ambiguity is why an argument about “the primary colors” so often has no useful answer. A physiologist may mean receptor classes, a painter may mean a set of pigments for mixing, and a display engineer may mean the emitters whose powers can be controlled. A perceptual experiment may instead ask which hues appear unmixed. State which experiment or technology the word refers to before choosing a list. Red-yellow-blue painting instruction is a mixing convention, not a competing account of the cone sensitivities.

3.2.6 Color as linear algebra⧉

Cone sensing is a linear measurement from many spectral samples to three excitations. It is not an expansion of the spectrum in three basis functions. The sensitivity curves are measurement weights; three of them cannot span an arbitrary spectrum.

Reproduction asks a different question. Put the cone-response triples of three chosen primary lights in the columns of a $3\times3$ matrix $\mathbf A$. To match target responses $\mathbf r$, solve

$$\mathbf A\mathbf p=\mathbf r.$$

The entries of $\mathbf p$ are primary powers. Even if $\mathbf A$ is invertible, a negative entry means the target cannot be emitted by adding those primaries. A finite display also imposes upper limits. This separates two issues: solving a linear system and producing its solution with physical light. Chapter 4.1, Linear color reproduction and CIE XYZ develops the distinction.

A two-dimensional basis-and-dual diagram (Figure 3.2.20) illustrates why dotting with nonorthogonal synthesis vectors does not directly recover their coefficients. It is a linear-algebra analogy, not a model in which cone curves form a basis for all spectra.

💡 Big lesson (L3.6) — Human color is non-orthogonal and non-negative

Cone sensitivity curves overlap, and physical spectra and emitted primary powers are nonnegative. Cone responses are measurements, not spectrum coefficients. Matching a response triple with three primary lights requires solving for their powers; a negative solution identifies a color outside those primaries' additive gamut.

fig-nonorthogonal-dual-basis
Figure 3.2.20. Synthesis versus analysis in a non-orthogonal positive basis. Two cone vectors $c_1, c_2$ both sit in the positive quadrant. Synthesis is easy: any color is some combination $a_1 c_1 + a_2 c_2$, a parallelogram. Analysis (recovering $a_1, a_2$) is not a plain perpendicular projection onto $c_1, c_2$; it requires projecting onto the dual basis $c_1^{*}, c_2^{*}$ (defined by $c_i^{*}\!\cdot c_j = \delta_{ij}$), which points partly into the negative quadrants. Only for an orthonormal basis do a basis and its dual coincide, making analysis = synthesis = projection.
Video 3.2.1. Video: Color Perception in 5 minutes (YouTube). A short tour of how the eye turns light into the sensation of color, from the cones to the opponent channels, the same path this chapter develops.

The overlap of the sensitivity curves and the nonnegativity of light are separate constraints. Because L and M sensitivities overlap strongly, an ordinary spectral change usually affects both responses. We cannot freely prescribe one response while holding the others at zero simply because three coordinates are available on paper. A mathematical solution can call for subtracting light at some wavelengths; a physical source can only supply a nonnegative spectrum. This is the connection between the cone-sensitivity plot and the gamut restrictions on the reproduction solve.

Recap: big lessons of this chapter

💡 Big lesson (L3.1) — a cone response is a dot product of the spectrum with the cone's sensitivity

Each cone excitation is an integral of spectral density times the appropriate sensitivity. A sampled implementation must include wavelength-bin widths (or absorb them into the matrix). Three excitations summarize photopic color matching for a fixed observer and viewing condition; they do not recover the spectrum.

fig-cone-response-matrix
Figure 3.2.5 (reproduced). Cone response as a matrix–vector product $\mathbf{r} = \mathbf{C}\,\mathbf{E}$. The spectrum is discretized into $N$ samples (the vector $\mathbf{E}$); the three cone sensitivities are the rows of the $3 \times N$ matrix $\mathbf{C}$; the product is the three cone responses. In the limit $N \to \infty$ the spectrum is infinite-dimensional and the sum becomes an integral. Interactive: draw the spectrum by dragging across the plot, and move the bins slider, and as N grows the staircase sum (a Riemann sum) hugs the continuous curve.
💡 Big lesson (L3.2) — metamers: different spectra, same cone response

Different spectra can yield the same cone excitations for a specified observer. This enables color reproduction without reproducing the spectrum, but a fixed display can match only colors within its gamut. Matches between reflecting materials can fail when the illuminant changes.

fig-metamer-explorer
Figure 3.2.10 (reproduced). Metamerism, made constructive. The top spectrum is projected onto the three cone curves to give the responses $(r_L, r_M, r_S)$; the bottom spectrum is built to be different at every wavelength yet share the same three responses, so both collapse to the same triple and the same perceived color. Generate a fresh metamer, switch families (smooth, spiky with a chosen number of spikes, or block/step), or overlay many family members, all sharing identical cone responses. Many spectra, one response. Interactive: draw the top spectrum by dragging across the panel; the bottom spectrum is generated to be different at every wavelength yet share the same three cone responses.
💡 Big lesson (L3.3) — metamerism can break when the illuminant changes

A metameric match is a match between two products of reflectance and illuminant (L2.6). Swap the illuminant and you multiply by a different spectral shape, so two surfaces that looked identical under one light can diverge under another: illuminant metamerism. It is the headache behind prints that shift between the proofing booth and the living room, and fabrics that match in the shop but clash in daylight; color-critical work must always name the light a match is judged under.

fig-metamerism-illumination
Figure 3.2.13 (reproduced). Metamerism depends on the light (interactive). Two reflectance spectra are built to be metamers under one illuminant, say fluorescent: multiplied by that light they land on the same three cone responses, so they look identical. Under a second illuminant, say daylight, the same two reflectances multiply by a different spectral shape and their colors pull apart. Draw your own reflectance and press "new metamer" for a fresh partner that matches under illuminant A; the two swatch pairs show the match holding under A and breaking under B. Press "new random metamer" for an ordinary partner, or "new adversarial metamer" for a strong mismatch, a partner chosen among the metamers of A by a projected power iteration to change the response under B as much as it can find; "new adversarial reflectance 1" goes further and moves reflectance 1 itself toward the edges of the physical [0,1] range, so its partner can diverge further. Both search for a large mismatch; neither is a proved maximum under the [0,1] constraint. The "match under both" checkbox does the opposite, much harder job: find a reflectance that matches under both lights at once, a perturbation that lives in the null space of both illuminants. That extra constraint is exactly the challenge of printing, where an ink set mixed to match a target under the proofing light drifts under the customer's bulbs, and matching everywhere costs many more degrees of freedom.
💡 Big lesson (L3.4) — color vision is multi-stage: trichromatic, then opponent

Cone excitations are followed by neural comparisons and adaptation. Sum-and-difference models illustrate this processing, but their axes are not exact perceptual hue axes. Engineering luma/chroma transforms exploit related sensitivity differences without reproducing the neural pathway.

fig-lms-opponent-3d
Figure 3.2.19 (reproduced). Human color in two stages, shown as geometry. Stage 1 is the three cone responses (L, M, S), a point set with the sliders and held inside the physically realizable gamut (inputs outside it are projected to its boundary). Stage 2 recodes that point onto opponent axes, a luminance proxy (L+M)/2, red-green (L−M), and blue-yellow (S−(L+M)/2). The same point is shown in two views side by side, the LMS cone space and the opponent space, where the geometry is sheared so the opponent axes are orthogonal; each orbits on its own. The equal weights are a schematic opponent model, not a calibrated luminance or DKL transform. The opponent channels are differences of cone signals, not raw cones, which is why there is no reddish-green, why an afterimage rebounds the opposite way, and why luma/chroma encodings compress: luminance carries the detail and the two chroma differences are smooth. Drag either view to orbit it; the swatch shows the point's color (LMS→sRGB). Below the two panels a live wiring diagram, in the same style as the opponent-channels schematic above, carries the three cone nodes L, M, and S (each showing the point's cone value) through their + and − connections into the three opponent boxes, which print each channel's formula and its value for this point: luminance (L+M)/2, red−green L−M, and blue−yellow S−(L+M)/2, colored toward red or green and blue or yellow by sign.
💡 Big lesson (L3.5) — primary colors are a choice, not a fact about light

Specify the purpose when naming primaries: sources whose light is added, inks or filters that absorb light, or perceptual hue judgments. RGB and CMY describe common engineering choices, not unique sets required by nature. The chosen spectra and mixing process determine what can be reproduced.

💡 Big lesson (L3.6) — Human color is non-orthogonal and non-negative

Cone sensitivity curves overlap, and physical spectra and emitted primary powers are nonnegative. Cone responses are measurements, not spectrum coefficients. Matching a response triple with three primary lights requires solving for their powers; a negative solution identifies a color outside those primaries' additive gamut.