From: Mathew Brennesholtz <msb@philabs.research.philips.com>

One intention of the L*a*b* formulation is that when you calculate:

    delta-E = sqrt((delta-L*)^2 + (delta-a*)^2 + (delta-b*)^2),

a delta-E = 1 should be just barely percievable to some viewers.  If you
want most people to be able to distinguish between two colors most of the
time, a delta-E = 3 is needed. Delta-E = 3 is called a MPCD (minimum
perceptible color difference) or a JND (just noticable difference) by
some authors.  Keep in mind that the L*a*b* space is not a perfectly
uniform space, so the delta-E value that is percievable depends on
location in x-y space and the direction between the two colors.

Using a delta-E = 1 threshold, M. R. Pointer (The Number of Discernible
Colours, Color Research and Application, 23:1 February 1998) calculated
that there are 2.28 million discernable color/luminance combinations.
Other studies (see references in Pointer) show that printing inks give
1.6 million colors and EBU phosphors give 1.35 million colors.  These are
far less than the 16 million colors claimed by 8 bit/color video cards,
never mind 10 or 12 bit video systems.  Obviously, some of these
color/luminance combinations are indistiguishable from each other.

Hope that helps.

IPLAB wrote:

> Hallow !!
> I understand that to measure contrast between two objects in color
> picture, I can calculate the vector distance on  L a b space (between
> the two objects).
> Does anyone can tell me what is the minimum of the Vector distance
> ,that eye can see ??
>
> Thanks
>
> from sally

http://www.compuphase.com/cmetric.htm:


typedef struct {
   unsigned char r, g, b;
} RGB;

long ColourDistance(RGB e1, RGB e2)
{
  long r,g,b;
  long rmean;

  rmean = ( (int)e1.r + (int)e2.r ) / 2;
  r = (int)e1.r - (int)e2.r;
  g = (int)e1.g - (int)e2.g;
  b = (int)e1.b - (int)e2.b;
  return (((512+rmean)*r*r)>>8) + 4*g*g + (((767-rmean)*b*b)>>8);
}
