Created
August 28, 2018 14:13
-
-
Save bafu/1ddd98e89bfe43a55abb9c1645776800 to your computer and use it in GitHub Desktop.
Generate N RGB tuples
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
def generate_class_color(class_num=20): | |
"""Generate a RGB color set based on given class number. | |
Args: | |
class_num: Default is VOC dataset class number. | |
Returns: | |
A tuple containing RGB colors. | |
""" | |
colors = [(1, 0, 1), (0, 0, 1), (0, 1, 1), | |
(0, 1, 0), (1, 1, 0), (1, 0, 0)] | |
const = 1234567 # only for offset calculation | |
colorset = [] | |
for cls_i in range(class_num): | |
offset = cls_i * const % class_num | |
ratio = (float(offset) / class_num) * (len(colors) - 1) | |
i = math.floor(ratio) | |
j = math.ceil(ratio) | |
ratio -= i | |
rgb = [] | |
for ch_i in range(3): | |
r = (1 - ratio) * colors[i][ch_i] + ratio * colors[j][ch_i] | |
rgb.append(math.ceil(r * 255)) | |
colorset.append(tuple(rgb[::-1])) | |
return tuple(colorset) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment