# Color Counter

A project for getting the color distribution of one image.

The current version works by dividing the CIELAB color space linearly and creating "regions" of colors sorted by frequency.

## Using
This command will divide the color space in 10 regions (10% of the dimension each), with 1000 regions in total, display the first 2 regions sorted by their most frequent color, and print the 2 most frequent colors of those regions, using the file forest.jpg.

```bash

cargo run -- -r 2 -c 2 -s 0.1 -f forest.jpg

Region 1
Color 1: rgb(142, 146, 113) Frequency: 48
Color 2: rgb(138, 142, 109) Frequency: 36

Region 2
Color 1: rgb(145, 149, 116) Frequency: 48
Color 2: rgb(148, 152, 119) Frequency: 46
```

To see the options:
```bash
cargo run -- --help
```

## Project Conclusion

While doing this I realised that there is a whole thing about this kind of color
extraction, such as color quantization, if I ever come with different implementations it will probably be made into
a different crate (color quantize, maybe?).

Another thing to note, the CIELAB space is not linear and linear space division might not be ideal to this problem.

## Webassembly notes

On the lib.rs there is a function called colors_from_bytes, that can be used from a webassembly context, I have tested that to work
properly to some degree.
