I wrote something similar in javascript a couple years ago and have some suggestions:<p>Have a look at the WCAG contrast ratio and luminance functions to gauge similarities/differences between colors. If you are looking to extract a theme those formulas are gold!<p>What sort of hashing/tolerance are you using for grouping? Using the above you can specify a tolerance level, and use sqrt((r1-r2)^2 + (g1-g2)^2 + (b1-b2)^2) to get a diff and then compare that with the tolerance.