gka / chroma.js

JavaScript library for all kinds of color manipulations
https://vis4.net/chromajs/
Other
9.94k stars 543 forks source link

Question: computing variance #328

Open dhowe opened 5 months ago

dhowe commented 5 months ago

I may have missed it in the API, but is there a way to compute variance/sd for a list of colors in chroma.js ? thanks

regorxxx commented 5 months ago

What do you mean by variance for a list of colors? Distance between colors is defined totally different in different spaces and/or methods.

There is not a method in chroma.js to output a "variance" but you have multiple methods to output a distance between 2 colors which you can use for your intended usage. Which one is the mean value is up to you, and that depends on the color space.

dhowe commented 5 months ago

So one use-case is a color-based image quad tree (like this), where, for each region of an image, you need to decide if it should be subdivided, based on how much color variance it contains.

Not sure if its in scope, but would be ideal, at least for teaching, to be able to take the list of colors extracted from the pixels in the region/channel (and possibly also a color space), and pass it to chroma to compute the variance and/or standard deviation.

regorxxx commented 5 months ago

You can do it by yourself with the current methods, but anyway, in my fork, I'm already coding a method to compute the std deviation and also the n-most representative colors (with a configurable callback) for an array of colors. Will mention here when ready.

regorxxx commented 5 months ago

Added

dhowe commented 5 months ago

amazing - when will the next release happen ?

regorxxx commented 5 months ago

Just download the compiled chroma***.js files, they are always up to date. Look at the docs for info.

dhowe commented 5 months ago

I guess I was referring to the npm version, which is currently on 2.4.2... Of course I can dl directly but I'm teaching node/npm this week, so was hoping to use chroma as an example (along with quad trees)

regorxxx commented 5 months ago

Fork is not published on npm.

dhowe commented 5 months ago

is it in any cdn, other than github ?