RE: color difference equations

new topic     » topic index » view thread      » older message » newer message

Where did you get that code from? It looks very similar to something I wrote 
a long time ago, but I can't remember for what program.
Anyway, you could view the two colors as 3D vectors and calculate the 
difference in length of the vectors, the angle between the vectors or some 
other measure.  Or you could calculate the luma of each color and take the 
difference between those (where luma = 0.299*R + 0.587*G + 0.114*B). I bet 
there are lots of other formulaes.


>I don't know which formula this function uses, but it doesn't work good:
>}}}
<eucode>
>--// Returns difference of two colors.
>--// atom between 0 and 1.
>--// 0 = smallest difference
>--// 1 = biggest difference
>global function weighted_color_distance (COLOR color1, COLOR color2)
>   integer rmean
>   integer dr,dg,db
>
>   rmean = floor((GetRValue (color1) + GetRValue (color2)) / 2)
>   dr = (GetRValue (color1) - GetRValue (color2))
>   dr *= dr
>   dr = floor((dr * (512 + rmean)) / 256)
>
>   dg = (GetGValue (color1) - GetGValue (color2))
>   dg = (dg * dg)  * 4
>
>   db = (GetBValue (color1) - GetBValue (color2))
>   db *= db
>   db = floor((db * (767 - rmean)) / 256)
>
>   return (dr + dg + db) / 584970
>end function
></eucode>
{{{

>
>
>
>

new topic     » topic index » view thread      » older message » newer message

Search



Quick Links

User menu

Not signed in.

Misc Menu