[Feature request] Add class `Color`
Erol444 opened this issue · 4 comments
I would add a main class Color
(naming TBD), and the whole library would work with it.
eg. distinct_color()
returns Color
. color_distance()
takes 2x Color as argument. The why
is that we don't need to create our own helper classes for normalization/color order conversion.
distinctipy.distinct_color().bgr().normalize(256).tuple() # Returns tuple of ints, 0..255, BGR order
# Same as:
distinctipy.distinct_color().cv2() # New proposed method
color = distinctipy.distinct_color()
cv2.putText(image, 'Text', (20,20), font, 1, color.cv2(), thickness, cv2.LINE_AA)
cv2.putText(image, 'Text', (20,40), font, 1, color.get_text_color().cv2(), thickness, cv2.LINE_AA)
Let me know your thoughts, as I (or one of our team members) would like to start working on this.
Thanks, Erik
Hi @Erol444 , thanks for using distinctipy! I think I'd be happy for this to be added to distinctipy because I can see some of the benefits, but note that:
- I'd like distinctipy to have as few dependencies as possible (but extra dependencies for optional features is ok)
- I'd like any changes to be backwards compatible, as much as possible (if they're not we can discuss whether the change is worth a major version bump)
But PRs certainly welcome 🙂
Draft PR here: #25
Head up: for our project (depthai-sdk) we might fork this to remove dependencies to panda/matplotlib and create a separate library, as we don't require such features (only create unique colors).
Draft PR here: #25
Great, I'll take a look when I have some time (hopefully later this week)
Head up: for our project (depthai-sdk) we might fork this to remove dependencies to panda/matplotlib and create a separate library, as we don't require such features (only create unique colors).
@Erol444 The latest versions of distinctipy
only have numpy as a core dependency actually, the pandas/matplotlib/etc. dependencies are optional extras now, which you should only get if you do pip install 'distinctipy[optional]'
or pip install 'distinctipy[all]'
. If you're still getting them from pip install distinctipy
that's a bug.