Introduction
Recently, I read an article claiming that the color pink doesn’t exist, and is only an illusion from our brain. Because I struggle to accept this idea, this is the motivation into diving in the understanding of the human perception of colors.
Cones
The perception of light is due to photoreceptors cells, called cone and rod cells. Rod cells gives low intensity light perception, and cones cells gives high intensity light perception. Most humans have three kinds of cones, each sensitive to a different spectrum of lights, and the combination of those three signals analyzed by our brain gives the sensation of color.
From data collected from http://cvrl.ucl.ac.uk/cones.htm , we can plot the different sensitivy of those three cones, sensitives to either small ($S_S$), medium ($S_M$) or long ($S_L$) wavelenghts.
Figure 1 : Normalized cone sensitivy to light
Cones responses to any light spectrums
For each wavelength $\lambda$, the contribution to the cone’s response is the product of the light’s intensity $I(\lambda)$ and the cone’s sensitivity $S(\lambda)$ at that wavelength.
So the sensation of color is encoded by the triplet $\mathbf{r} = {r_{S},r_{M},r_{L}}$ corresponding to the response to each cone. It is reasonable to assume that two different triplets will give different colors, and equivalently two same triplets will give the same color.
The space of possible cone responses
Let’s name $\mathcal{R} = {\mathbf{r}}$ the set of all possible triplets. We could think that set of triplets are in a cube of size $1$, but because the three sensitivy curves overlap, the responses of cone are dependant of each other. Let’s first observe the set of responses corresponding to a monochromatic stimulus.
Space of monochromatic stimulus
Figure 2 : Response to monochromatic stimulus
First let’s inspect all possibles cones responses to monochromatic stimulation. We can plot on a 3D axis the values ${r_S, r_{M},r_{L}}$ with
- $r_S = S_S(\lambda)$
- $r_M = S_M(\lambda)$
- $r_L = S_L(\lambda)$ with $\lambda \in [ 400 nm, 800 nm]$. Let’s call this set $\mathcal{R}_{mono}$
Figure 3 : The set of possible triplets of responses to monochromatic stimulus. On the left, the color shows the different lambda values (see the colorbar). On the right, the color is coded by the triplet $(r_l, r_m, r_s)$.
It’s interesting to see that every distinct $\lambda$ will give another triplet (therefore another color). In fact, the condition to distinguish all different monochromatic lights (within a visible bandwidth) is to have at least two disctinct cones, and that the two overlap enough! (see Appendix).
Space of all responses
An amazing feature with having three cones is that the range of colors perceived is bigger than the one provoked by monochromatic lights. I think the observation “the color pink doesn’t exist” comes from this statement: pink is a color that is felt only via a combination of monochromatic lights. For the same reason, we could also say that white doesn’t exist!
Because we assume that
- any spectrum can be written as a distribution $I(\lambda)$
- the sensitivy function is a linear mapping
- the maximum of sensitivy is reached by monochromatic stimulations,
the set of all possible triplets is equal to the convex hull $\mathcal{R}$ generated by the set $\mathcal{R}_{mono}$.
Figure 4 : Convex hull generated by the set $\mathcal{R}_{mono}$.
Even if any color is only an interpretation of the brain and we could argue that no color exist, we could keep this terminology to describe colors that are produced after a monochromatic stimulation. Following this definition, existing colors are the one in $\mathcal{R}_{mono}$, and the other existing colors are stricly inside the convex hull.
Metamerism
Normalization of the color space
Reproducing the sensation of color via RGB leds
Appendix: minimal number of cones for monochromatic light distinction
To be able to see every monochromatic light as a different color, and if we assume that every cone sensitivy has a shape similar to a gaussian curve (increasing then decreasing), we can see that one cone is not enough.
Figure A.1 : Vision with one cone
We need a bijection between $\lambda$ and $(S_0(\lambda),S_1(\lambda))$. For that, we need at least two cones, but whose spectrum overlaps enough!