[PD] Can GEM select a color from an image?

Mathieu Bouchard matju at artengine.ca
Sun Sep 11 04:24:06 CEST 2011

On Sat, 10 Sep 2011, Sebastian Valenzuela wrote:

> I am in the process of writing an algorithmic piece where I take 
> pictures, determine the most prevalent color in that picture, then store 
> that as a number in an array. I would then call on these numbers to 
> determine the triggering of samples. Is there an object in Pure Data 
> that can determine the most common color in an image? If so, how does it 
> work?

To be able to do this, you need to be defining how to clusterise your 
colours. For example, if you just classify them by their exact value, 
you might get a lot of a very specific shade, and select that, and miss 
the fact that there is another shade that looks very close to a lot of 
other shades in the picture, and so, by different criteria, it would be 
the most common.

What would match the perception of the human eye and most people's 
expectation, is something that picks the average of a bunch of very 
similar shades. That's not very obvious to do.

[cv/#KMeans] (from GridFlow's OpenCV wrappers) does something like that : 
it categorises the pixels in your image to make a palette (among multiple 
possible uses). Then you can use GridFlow's [#cluster_avg] to find the 
average colour of each palette item.

However, the palette items are not the best that can possibly be chosen, 
because it's impossible to guarantee it, and it's hard to do a good job in 
a short time. So sometimes it could pick too many palette items for the 
same kind of colours, and mislead you in finding the most used kind of 

| Mathieu Bouchard ---- tél: +1.514.383.3801 ---- Villeray, Montréal, QC

More information about the Pd-list mailing list