Алгоритмы и структуры данных 2 2018/2019/segmentation — различия между версиями
Материал из Wiki - Факультет компьютерных наук
.obj (обсуждение | вклад) (→Сегментация изображений) |
.obj (обсуждение | вклад) (→Сегментация изображений) |
||
Строка 1: | Строка 1: | ||
== Сегментация изображений == | == Сегментация изображений == | ||
− | В этом задании вам необходимо реализовать алгоритм сегментации изображений. Для | + | В этом задании вам необходимо реализовать алгоритм сегментации изображений. Для начала мы будем делать сегментацию на два класса на основе цветов пикселей. |
Вам дается [https://www.dropbox.com/s/ewdk7fd5u8n5u1p/base.py?dl=0 код с заготовкой], в которой написана базовая загрузка изображений (с помощью библиотеки scipy) и некоторые удобные функции для работы с ними. Необходимо реализовать функцию сегментации и проверить ее работу на нескольких [https://www.dropbox.com/s/htf6w177phvnase/images.zip?dl=0 примерах изображений]. | Вам дается [https://www.dropbox.com/s/ewdk7fd5u8n5u1p/base.py?dl=0 код с заготовкой], в которой написана базовая загрузка изображений (с помощью библиотеки scipy) и некоторые удобные функции для работы с ними. Необходимо реализовать функцию сегментации и проверить ее работу на нескольких [https://www.dropbox.com/s/htf6w177phvnase/images.zip?dl=0 примерах изображений]. | ||
Строка 6: | Строка 6: | ||
Пояснения по заданию и коду: | Пояснения по заданию и коду: | ||
− | # | + | # Для каждого класса фиксируется свой основной цвет (переменные S и T, нужно задавать вручную для каждого изображения). |
− | # | + | # Расстояние между двумя цветами вычисляется как среднеквадратичное между яркостями компонент (функция dist). |
− | # | + | # Штраф данного пикселя за принадлежность к классу равен расстоянию от него до цвета класса, умноженному на коэффициент alpha. |
− | # | + | # Штраф за отнесение соседних пикселей к разным классам равен расстоянию между их цветами, умноженному на коэффициент beta. |
− | # | + | # В заготовке после сегментации пиксели изображения подкрашиваются в соответствующий цвет для наглядности. |
− | # | + | # Заготовкой пользоваться необязательно, программировать можно как на Python, так и на C++ (но заготовки для C++ нет). |
− | # | + | # Адаптируйте код под количество цветов, большее двух (как в примере из файла landscape.jpg). |
− | + |
Текущая версия на 22:45, 23 сентября 2018
Сегментация изображений
В этом задании вам необходимо реализовать алгоритм сегментации изображений. Для начала мы будем делать сегментацию на два класса на основе цветов пикселей.
Вам дается код с заготовкой, в которой написана базовая загрузка изображений (с помощью библиотеки scipy) и некоторые удобные функции для работы с ними. Необходимо реализовать функцию сегментации и проверить ее работу на нескольких примерах изображений.
Пояснения по заданию и коду:
- Для каждого класса фиксируется свой основной цвет (переменные S и T, нужно задавать вручную для каждого изображения).
- Расстояние между двумя цветами вычисляется как среднеквадратичное между яркостями компонент (функция dist).
- Штраф данного пикселя за принадлежность к классу равен расстоянию от него до цвета класса, умноженному на коэффициент alpha.
- Штраф за отнесение соседних пикселей к разным классам равен расстоянию между их цветами, умноженному на коэффициент beta.
- В заготовке после сегментации пиксели изображения подкрашиваются в соответствующий цвет для наглядности.
- Заготовкой пользоваться необязательно, программировать можно как на Python, так и на C++ (но заготовки для C++ нет).
- Адаптируйте код под количество цветов, большее двух (как в примере из файла landscape.jpg).