track-anything-annotate / tools /mask_display.py
lniki's picture
add model
0e83290 verified
import numpy as np
def visualize_unique_mask(unique_mask):
# Создаем цветовую карту для визуализации уникальной маски
unique_values = np.unique(unique_mask)
color_map = np.zeros((len(unique_values), 3), dtype=np.uint8)
# Генерация уникальных цветов для каждого уникального значения
for i, value in enumerate(unique_values):
if value == 0: # Фон
color_map[i] = [0, 0, 0] # Черный для фона
else:
color_map[i] = tuple(
np.random.randint(0, 255, size=3)
) # Случайный цвет для объектов
# Создаем цветную визуализацию уникальной маски
colored_unique_mask = np.zeros(
(unique_mask.shape[0], unique_mask.shape[1], 3), dtype=np.uint8
)
for i in range(unique_mask.shape[0]):
for j in range(unique_mask.shape[1]):
colored_unique_mask[i, j] = color_map[unique_mask[i, j]]
return colored_unique_mask
def visualize_wb_mask(mask):
colored_mask = np.zeros(
(mask.shape[0], mask.shape[1], 3), dtype=np.uint8
) # Фон черный
# Устанавливаем белый цвет для всех объектов (не нулевых значений)
colored_mask[mask > 0] = [255, 255, 255] # Белый цвет для объектов
return colored_mask
def mask_map(mask):
labels = np.unique(mask)
labels = labels[labels!=0].tolist()
object_images = []
for value in labels:
# Создаем маску для текущего объекта
object_mask = (mask == value).astype(np.uint8)
# Создаем черное изображение с теми же размерами, что и маска
colored_mask = np.zeros((mask.shape[0], mask.shape[1], 3), dtype=np.uint8)
# Устанавливаем белый цвет для текущего объекта
colored_mask[object_mask > 0] = [255, 255, 255]
# Добавляем изображение объекта в список
object_images.append(colored_mask)
return object_images