The Fading of Printed Photos
A model for the fading of printed photos, complete with a small applet to demonstrate the model.
1. Printed Photos
Photos are usually printed in three or four inks, with one for each of the three primary colors and black. When the photo is exposed to the elements these inks degrade over time and produces the familiar "faded photo" look.
2. Model
We make the following assumptions:
-
the inks consist of particles
-
the degradation process is a stochastic process where each particle, for each time step, has a given fixed probability to degrade to an invisible state
-
each pixel in a digital image can be modeled as a set of buckets, one for each primary color, that contain ink particles in amounts proportional to the amount of ink required to represent the primary color in that pixel
With these three assumptions we can set up a simple model for the decay.
-
First, we convert the RGB[a] image to CMY[b] color space, since we are dealing with subtractive color synthesis[c].
-
Each pixel is now a CMY triplet, and we will consider each channel in isolation. Given the probabilities of decay for the C, M and Y particles being Pc, Pm and Py, respectively, for each C, M and Y value and each time step:
-
multiply by the probability that a particle will decay:
(eq.1)C' = CPc, M' = MPm, Y' = YPy
-
-
Convert C'M'Y' back into RGB.
A more interesting model is obtained if we also assume that particles may shield each other. In that case, the probability that a particle will decay isn't constant - it is inversely proportional to the number of non-decayed particles in the bucket. The decay accelerates at the end. We model this by extending the computation with a second set of decay rates, Dc, Dm and Dy and extend the time step to:
C' = CPc - (1 - C)Dc, M' = MPm - (1 - M)Dm, Y' = YPy - (1 - Y)Dy
3. The Application
Fade[d] - requires HTML5 canvas
and optional FileReader
support. So far, I've only tested it with Firefox 3.6 and Chrome 5.
4. Sample Result
For those not using Firefox or a compatible browser - here's a sample result. The following values were used in the algorithm:
C | M | Y | |
---|---|---|---|
P | 0.80 | 0.90 | 0.80 |
D | 0.02 | 0.05 | 0.05 |