[Image-SIG] Removing specific range of colors from scanned image

Guy K. Kloss g.kloss at massey.ac.nz
Mon Apr 27 21:33:24 CEST 2009

On Mon, 27 Apr 2009 22:56:00 jcupitt at gmail.com wrote:
> RGB isn't the best colour space for this, but it would sort-of work.

Another issue is that RGB is (usually when encountered "in the wild") the sRGB 
colour space. sRGB as well as most other RGB colour spaces is *not* a linear 
colour encoding per channel. They have been encoded with a geometrical 
function with an exponent of (in the case of sRGB) about 2.2. This is a 
historical effect to compensate for the non-linearity of CRT (cathode ray 
tube) based screens.

If you want to be at least "sort of" linear, you need to undo the gamma 
compensation first:

c' = c ** (1 / gamma)

gamma: the gamma coefficient, usually in the case of sRGB = 2.2
c': linearised RGB colour channel
c: un-linearised (s)RGB colour channel

Now you can perform quantitative sensible computations on the R'G'B' colour 
tuples, like comparing colour distance as the Euclidean distance mentioned in 
John's post.


Guy K. Kloss
Institute of Information and Mathematical Sciences
Te Kura Pūtaiao o Mōhiohio me Pāngarau
Room 2.63, Quad Block A Building
Massey University, Auckland, Albany
Private Bag 102 904, North Shore Mail Centre
voice: +64 9 414-0800 ext. 9585   fax: +64 9 441-8181
eMail: G.Kloss at massey.ac.nz  http://iims.massey.ac.nz

More information about the Image-SIG mailing list