Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Question: computing variance #328

Open
dhowe opened this issue Feb 14, 2024 · 9 comments
Open

Question: computing variance #328

dhowe opened this issue Feb 14, 2024 · 9 comments

Comments

@dhowe
Copy link

dhowe commented Feb 14, 2024

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
Copy link

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
Copy link
Author

dhowe commented Feb 19, 2024

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
Copy link

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 added a commit to regorxxx/chroma.js that referenced this issue Feb 20, 2024
… colors as an RGBA component. See [Issue 328] (gka#328 (comment))

Signed-off-by: regorxxx <regorxxx@protonmail.com>
regorxxx added a commit to regorxxx/chroma.js that referenced this issue Feb 20, 2024
… in an array of colors. See [Issue 328] (gka#328 (comment))

Signed-off-by: regorxxx <regorxxx@protonmail.com>
regorxxx added a commit to regorxxx/chroma.js that referenced this issue Feb 20, 2024
… colors as an RGBA component. See [Issue 328] (gka#328 (comment))

* added chroma.palette() to retrieve the n-most representative colors in an array of colors. See [Issue 328] (gka#328 (comment))

Signed-off-by: regorxxx <regorxxx@protonmail.com>
@regorxxx
Copy link

Added

@dhowe
Copy link
Author

dhowe commented Feb 20, 2024

amazing - when will the next release happen ?

@regorxxx
Copy link

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

@dhowe
Copy link
Author

dhowe commented Feb 20, 2024

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
Copy link

Fork is not published on npm.

@dhowe
Copy link
Author

dhowe commented Feb 20, 2024

is it in any cdn, other than github ?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants