Skip to content

Instantly share code, notes, and snippets.

@bafu
Created August 28, 2018 14:13
Show Gist options
  • Save bafu/1ddd98e89bfe43a55abb9c1645776800 to your computer and use it in GitHub Desktop.
Save bafu/1ddd98e89bfe43a55abb9c1645776800 to your computer and use it in GitHub Desktop.
Generate N RGB tuples
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