Files

150 lines
4.9 KiB
Python
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# config_3d.py
# =============================================================================
# Конфигурация для 3D обработки данных Brain Tumour
# АДАПТИРОВАНА ПОД ВАШ ПУТЬ
# =============================================================================
import os
from pathlib import Path
# =============================================================================
# ПУТИ — ИСПРАВЛЕНО!
# =============================================================================
# Корень проекта (где лежит этот файл)
PROJECT_ROOT = Path(__file__).parent.resolve()
# !!! ВАЖНО: ВАШ ТОЧНЫЙ ПУТЬ К ДАННЫМ !!!
DATA_ROOT = Path(r"D:\Radiomics_Data\Experiments\experiment-17-06-2026\Task01_BrainTumour\Task01_BrainTumour")
# Папки с данными
PATH_IMAGES_TRAIN = DATA_ROOT / "imagesTr"
PATH_IMAGES_TEST = DATA_ROOT / "imagesTs"
PATH_LABELS_TRAIN = DATA_ROOT / "labelsTr"
# Папка для результатов
OUTPUT_ROOT = PROJECT_ROOT / "data_3d_output"
PATH_FEATURES = OUTPUT_ROOT / "features"
PATH_LOGS = OUTPUT_ROOT / "logs"
PATH_MODELS = OUTPUT_ROOT / "models"
# =============================================================================
# НАСТРОЙКИ ФАЙЛОВ
# =============================================================================
# Формат файлов
FILE_EXTENSION = ".nii.gz"
# =============================================================================
# НАСТРОЙКИ ОБРАБОТКИ
# =============================================================================
# Максимальное количество пациентов (None = все)
MAX_PATIENTS = None
# Использовать параллельную обработку
USE_PARALLEL = False # Для отладки лучше False
# Количество ядер для параллельной обработки
N_JOBS = -1 # -1 = все ядра
# =============================================================================
# НАСТРОЙКИ RADIOMICS
# =============================================================================
RADIOMICS_SETTINGS = {
'minimumROIDimensions': 2,
'minimumROISize': None,
'normalize': True,
'normalizeScale': 100,
'removeOutliers': None,
'resampledPixelSpacing': None,
'interpolator': 'sitkBSpline',
'preCrop': True,
'padDistance': 5,
'distances': [1],
'force2D': False,
'force2Ddimension': 0,
'resegmentRange': None,
'label': 1
}
ENABLED_FEATURES = {
'firstorder': True,
'shape': True,
'glcm': True,
'glrlm': True,
'glszm': True,
'gldm': True,
'ngtdm': False,
}
ENABLED_IMAGE_TYPES = {
'Original': {},
'Wavelet': {},
'LoG': {'sigma': [1.0, 2.0, 3.0]},
'Square': {},
'SquareRoot': {},
'Logarithm': {},
'Exponential': {},
'Gradient': {}
}
# =============================================================================
# ВСПОМОГАТЕЛЬНЫЕ ФУНКЦИИ
# =============================================================================
def ensure_directories():
"""Создаёт все необходимые директории"""
print("\n📁 СОЗДАНИЕ ПАПОК:")
for path in [PATH_FEATURES, PATH_LOGS, PATH_MODELS]:
path.mkdir(parents=True, exist_ok=True)
print(f" ✅ {path}")
print()
def print_structure():
"""Выводит структуру проекта"""
print("\n" + "=" * 70)
print("🧠 3D РАДИОМИКА — BRAIN TUMOUR")
print("=" * 70)
print(f" 📂 Проект: {PROJECT_ROOT}")
print(f" 📂 Данные: {DATA_ROOT}")
print(f" 📂 Обучающие: {PATH_IMAGES_TRAIN}")
print(f" 📂 Тестовые: {PATH_IMAGES_TEST}")
print(f" 📂 Маски: {PATH_LABELS_TRAIN}")
print(f" 📂 Результаты: {PATH_FEATURES}")
print(f" 📂 Логи: {PATH_LOGS}")
print("=" * 70 + "\n")
def check_data():
"""Проверяет наличие данных"""
print("🔍 ПРОВЕРКА ДАННЫХ:")
print("-" * 50)
for name, path in [
("Обучающие изображения", PATH_IMAGES_TRAIN),
("Тестовые изображения", PATH_IMAGES_TEST),
("Маски", PATH_LABELS_TRAIN)
]:
if path.exists():
files = list(path.glob(f'*{FILE_EXTENSION}'))
print(f" ✅ {name}: {len(files)} файлов")
else:
print(f" ❌ {name}: папка не найдена ({path})")
json_path = DATA_ROOT / "dataset.json"
if json_path.exists():
print(f" ✅ dataset.json: {json_path}")
else:
print(f" ❌ dataset.json: не найден")
print("-" * 50 + "\n")
if __name__ == "__main__":
print_structure()
ensure_directories()
check_data()