У меня есть словарь, содержащий сопоставление цветового кода с индексом класса, например:
color_to_class_idx = {(0, 0, 0) : 0, (180, 120, 120): 1, (80, 50, 50): 2, (140, 140, 140): 3, (4, 250, 7): 4, (150, 6, 51): 5, (0, 102, 200): 6, (233, 255, 7): 7, (255, 31, 0): 8, (120, 120, 120): 9}
Теперь у меня есть список значений цветового кода, например:
list_ = [(0, 0, 0) , (80, 50, 50), (255, 255, 255)]
Я хотел бы получить еще один список с class_idx
. Обратите внимание, что в list_
могут быть цветовые коды, которых нет в клавишах color_to_class_idx
. В этих случаях он должен иметь значение по умолчанию (например, 0). Итак, окончательный результат будет выглядеть так - [0, 2, 0]
list_
может быть размером 345600
. Так что скорость для меня имеет значение. Вот моя реализация:
values = np.array([color_to_cls_idx.get(key, 0) for key in segmented_img_list])
Но это медленно.
TIA