File size: 2,344 Bytes
0e83290
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
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