okaneco / kmeans-colors

k-means clustering library and binary to find dominant colors in images
Apache License 2.0
136 stars 9 forks source link

Allow using on lab::Lab #59

Open roxwize opened 5 months ago

roxwize commented 5 months ago

There exists another library on Rust, lab, that has a Lab struct nearly identical to palettes, the main difference being the L*a*b* parameters are f32's rather than generic types and there is no white_point. The same also applies to the LCh struct. I would like to be able to use this struct over the one palette provides, if possible. Cheers.

okaneco commented 5 months ago

I'll try to add that as a feature soon.

In the meantime to get up and running, you could wrap it in a newtype then copy the current Lab implementation. But that's obviously cumbersome and not ideal.

As for LCh, I didn't implement it originally because the results end up being the same as Lab, it's just a different representation of the same space. It ends up slower because you now have to do 2 extra conversions of Lab->LCh->Lab. You can just convert the resulting Lab centroids to LCh after the fact.