Алгоритмы и структуры данных 2 2018/2019/segmentation
Материал из Wiki - Факультет компьютерных наук
Версия от 21:16, 23 сентября 2018; .obj (обсуждение | вклад)
Сегментация изображений
В этом задании вам необходимо реализовать алгоритм сегментации изображений с помощью локального поиска для минимального разреза. Для простоты мы будем делать сегментацию на 2 класса на основе цветов пикселей.
Вам дается код с заготовкой, в которой написана базовая загрузка изображений (с помощью библиотеки scipy) и некоторые удобные функции для работы с ними. Необходимо реализовать функцию сегментации и проверить ее работу на нескольких примерах изображений.
Пояснения по заданию и коду:
- Для каждого класса фиксируется свой основной цвет (переменные S и T, нужно задавать вручную для каждого изображения).
- Расстояние между двумя цветам вычисляется как среднеквадратичное между яркостями компонент (функция dist).
- Штраф данного пикселя за принадлежность к классу равен расстоянию от него до цвета класса домноженному на коэфф alpha(>=0).
- Штраф за отнесение соседних пикселей к разным классам равен расстоянию между их цветами домноженному на коэфф beta(<=0).
- В заготовке после сегментации пиксели изображения подкрашиваются в соответствующий цвет для наглядности.
- Заготовкой пользоваться не обязательно, программировать можно как на Python, так и на C++ (но заготовки для C++ нет).
- Адаптируйте код под количество цветов > 2. (landscape.jpg)
- Адаптируйте код так, чтобы картинка sky.jpg имела две правильные части: небо и объект перед. При каком соотношениее alpha/beta получается лучший результат?