Код реализует три классических метода сегментации изображений:
- Улучшенный Region Growing
- Улучшенный Split and Merge
- Watershed (водораздел)
Все методы работают с оттенками серого и включают дополнительные оптимизации для улучшения качества сегментации.
Адаптивный Region Growing с автоматическим выбором семян
- Находит семена как локальные минимумы яркости
- Удаляет слишком близкие семена через эрозию
- Применяет алгоритм водораздела для роста регионов
- Возвращает маску сегментов
Улучшенный Split and Merge с дополнительным слиянием
- Разделение:
- Рекурсивно делит изображение на квадранты
- Останавливается при достижении
min_sizeили низкой дисперсии (var_threshold)
- Слияние:
- Объединяет соседние регионы со схожей средней яркостью (
merge_threshold) - Использует
merge_adjacent_regionsдля постобработки
- Объединяет соседние регионы со схожей средней яркостью (
Слияние смежных регионов
- Сравнивает среднюю яркость соседних регионов
- Объединяет регионы, если разница яркости <
threshold - Возвращает обновленную маску сегментов
Визуализация результатов
- Генерирует цветное представление сегментов (случайные цвета)
- Выделяет границы регионов красным цветом
- Возвращает цветное изображение в формате RGB
- Загрузка изображения:
original = cv2.imread('original.jpg')
- Предобработка:
- Конвертация в grayscale
- Размытие Гауссом
- Улучшение контраста через CLAHE
- Применение методов сегментации:
- Region Growing:
rg_mask = adaptive_region_growing(enhanced) - Split and Merge:
sm_mask = improved_split_and_merge(enhanced) - Watershed:
ws_mask = watershed(...)
- Region Growing:
- Визуализация и сохранение:
- Генерация цветных масок
- Сохранение результатов в JPG
- Построение сравнительной сетки графиков
- OpenCV (
cv2) - NumPy (
numpy) - SciPy (
scipy.ndimage) - scikit-image (
skimage.segmentation) - Matplotlib (
matplotlib)
improved_region_growing.jpg- результат Region Growingimproved_split_merge.jpg- результат Split and Mergewatershed.jpg- результат Watershedimproved_segmentation_results.jpg- сводная сетка всех результатов
- Автоматический выбор параметров: Пороги вычисляются на основе статистики изображения
- Постобработка: Все методы включают дополнительные шаги очистки результатов
- Визуализация: Четкое выделение границ сегментов
- Интеграция: Классические методы сочетаются с современными подходами (CLAHE, морфологические операции)
Примечание: Для работы требуется изображение
original.jpgв рабочей директории.