The following is some of my notes and an implementation of the forward and reverse transforms for the CIECAM02 colour appearance model.
This source code is provided under an MIT-style license and may be used in both commercial and non-commerical applications without fee. Thanks to Nathan Moroney of HP Labs for his contributions to this code.
The intensity of the surround of an image can greatly affect its appearance. The following is an example of the surround effect. The squares on the light background appear darker than those with a dark background, even though they have the same pixel values.
The following is a prediction of the surround effect by the CIECAM02 appearance model. The idea for this demonstration comes from a class project done by some students at Stanford. The boxes below have the same JCh values in the CIECAM02 appearance model, but different pixel values.
The following plots represent the number of pixels in sRGB having the given lightness values. We are counting from gamma corrected 8-bit sRGB, converting to linear RGB, then to XYZ with a white point of D65, and finally to CIECAM02 using an average surround.