Skip to content

DIMFLIX-EDUCATION/TestSegmentation

Repository files navigation

Документация к коду сегментации изображений

Общее описание

Код реализует три классических метода сегментации изображений:

  1. Улучшенный Region Growing
  2. Улучшенный Split and Merge
  3. Watershed (водораздел)

Все методы работают с оттенками серого и включают дополнительные оптимизации для улучшения качества сегментации.

Основные функции

adaptive_region_growing(image, min_size=50)

Адаптивный Region Growing с автоматическим выбором семян

  1. Находит семена как локальные минимумы яркости
  2. Удаляет слишком близкие семена через эрозию
  3. Применяет алгоритм водораздела для роста регионов
  4. Возвращает маску сегментов

improved_split_and_merge(image, min_size=20, var_threshold=10, merge_threshold=15)

Улучшенный Split and Merge с дополнительным слиянием

  1. Разделение:
    • Рекурсивно делит изображение на квадранты
    • Останавливается при достижении min_size или низкой дисперсии (var_threshold)
  2. Слияние:
    • Объединяет соседние регионы со схожей средней яркостью (merge_threshold)
    • Использует merge_adjacent_regions для постобработки

merge_adjacent_regions(image, mask, threshold=15)

Слияние смежных регионов

  1. Сравнивает среднюю яркость соседних регионов
  2. Объединяет регионы, если разница яркости < threshold
  3. Возвращает обновленную маску сегментов

visualize_segmentation(image, mask)

Визуализация результатов

  1. Генерирует цветное представление сегментов (случайные цвета)
  2. Выделяет границы регионов красным цветом
  3. Возвращает цветное изображение в формате RGB

Рабочий процесс

  1. Загрузка изображения:
    original = cv2.imread('original.jpg')
  2. Предобработка:
    • Конвертация в grayscale
    • Размытие Гауссом
    • Улучшение контраста через CLAHE
  3. Применение методов сегментации:
    • Region Growing: rg_mask = adaptive_region_growing(enhanced)
    • Split and Merge: sm_mask = improved_split_and_merge(enhanced)
    • Watershed: ws_mask = watershed(...)
  4. Визуализация и сохранение:
    • Генерация цветных масок
    • Сохранение результатов в JPG
    • Построение сравнительной сетки графиков

Требования

  • OpenCV (cv2)
  • NumPy (numpy)
  • SciPy (scipy.ndimage)
  • scikit-image (skimage.segmentation)
  • Matplotlib (matplotlib)

Выходные файлы

  1. improved_region_growing.jpg - результат Region Growing
  2. improved_split_merge.jpg - результат Split and Merge
  3. watershed.jpg - результат Watershed
  4. improved_segmentation_results.jpg - сводная сетка всех результатов

Особенности реализации

  • Автоматический выбор параметров: Пороги вычисляются на основе статистики изображения
  • Постобработка: Все методы включают дополнительные шаги очистки результатов
  • Визуализация: Четкое выделение границ сегментов
  • Интеграция: Классические методы сочетаются с современными подходами (CLAHE, морфологические операции)

Примечание: Для работы требуется изображение original.jpg в рабочей директории.

About

Region Growing / Split and Merge / Watershed

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages