/
Manifest
/
Real_Texture
Обзор
Документация
Войти
/
Manifest
/
Real_Texture
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
ToolsForUE/5_Create_Meta_CSV.py
84 строки
4 KB
m.samodurov
init commit for The Invaders
17 фев 2026, 04:57
17 фев 2026, 04:57
4a668d4
Код
Авторство
О чём код?
import csv def generate_colors(base_color, count, step): """ Генерация цветов с уменьшением по step. base_color: (R, G, B) count: количество объектов step: шаг уменьшения """ colors = [] R, G, B = base_color for i in range(count): colors.append((max(R - i * step, 0), max(G - i * step, 0), max(B - i * step, 0), 1)) return colors def main(): n_classes = int(input("Введите количество классов: ")) step = int(input("Введите шаг уменьшения цвета: ")) mode = input("Одинаковое количество объектов для всех классов? (y/n): ").strip().lower() counts = [] if mode == "y": count_objects = int(input("Введите количество объектов для каждого класса: ")) counts = [count_objects] * n_classes else: for i in range(1, n_classes + 1): cnt = int(input(f"Введите количество объектов для класса {i}: ")) counts.append(cnt) # Базовые цвета для классов (8 штук. Если классов больше, то начинаем комбинировать в одном цвете. Каждый вектор RGB - отдельный класс) base_colors = [ (255, 0, 0), # красный (Люди) 50 шт (205, 0, 0), # красный (Машины) 50 шт (155, 0, 0), # красный (Автобусы) 50 шт (105, 0, 0), # красный (Грузовики) 50 шт (0, 0, 255), # синий Здания Зоны 1 43 шт (255, 255, 0), # жёлтый Здания Зоны 2 62 шт (255, 0, 255), # пурпурный Здания Зоны 3 111 шт (255, 255, 255), # белый Здания Зоны 4 - ЛЭПы 228 шт (0,255,255), # берюзовый Здания Зоны 4 - многоэтажки 177 шт (0, 255, 0), # зелёный (Деревья ОКА) 3 шт (0, 252, 0), # зелёный (Деревья Берёзки) 3 шт (0, 249, 0), # зелёный (Деревья Клён) 1 шт (0, 248, 0), # зелёный (Деревья Сосна) 1 шт (0, 247, 0), # зелёный (Деревья Билборд Берёки) 3 шт (0, 244, 0), # зелёный (Деревья Билборд Клён) 1 шт (0, 243, 0), # зелёный (Деревья Билборд Сосна) 1 шт ] classes = [] objects = [] object_id = 1 for class_id in range(1, n_classes + 1): base_color = base_colors[(class_id - 1) % len(base_colors)] class_title = f"Class_{class_id}" R, G, B = base_color classes.append([class_id, class_title, R, G, B, 1]) colors = generate_colors(base_color, counts[class_id - 1], step) for col in colors: r, g, b, a = col objects.append([object_id, class_id, r, g, b, a]) object_id += 1 # Сохраняем classes.csv with open("classes.csv", "w", newline="", encoding="utf-8") as f: writer = csv.writer(f) writer.writerow(["class_id", "class_title", "R", "G", "B", "fix"]) writer.writerows(classes) # Сохраняем object_db.csv with open("object_db.csv", "w", newline="", encoding="utf-8") as f: writer = csv.writer(f) writer.writerow(["object_id", "class_id", "R", "G", "B", "fix"]) writer.writerows(objects) print("Файлы classes.csv и object_db.csv успешно созданы!") if __name__ == "__main__": main()