Алгоритмы и структуры данных 2 2017/2018/Segmentation — различия между версиями

Материал из Wiki - Факультет компьютерных наук
Перейти к: навигация, поиск
 
(не показаны 3 промежуточные версии этого же участника)
Строка 1: Строка 1:
 
== Сегментация изображений ==
 
== Сегментация изображений ==
  
В этом задании вам необходимо реализовать алгоритм сегментации изображений с помощью максимального разреза. Для простоты мы будем делать сегментацию на 2 класса на основе цветов пикселей.
+
В этом задании вам необходимо реализовать алгоритм сегментации изображений с помощью локального поиска для минимального разреза. Для простоты мы будем делать сегментацию на 2 класса на основе цветов пикселей.
  
Вам дается код с заготовкой, в которой написана базовая загрузка изображений и некоторые удобные функции для работы с ними. Необходимо реализовать функцию
+
Вам дается код с заготовкой, в которой написана базовая загрузка изображений (с помощью библиотеки scipy) и некоторые удобные функции для работы с ними. Необходимо реализовать функцию
 
сегментации и проверить ее работу на нескольких примерах изображений.
 
сегментации и проверить ее работу на нескольких примерах изображений.
  
Строка 11: Строка 11:
  
 
Пояснения по заданию и коду:
 
Пояснения по заданию и коду:
* Для каждого класса фиксируется свой основной цвет (переменные S и T, нужно задавать вручную для каждого изображения)
+
* Для каждого класса фиксируется свой основной цвет (переменные S и T, нужно задавать вручную для каждого изображения).
* Расстояние между двумя цветам вычисляется как среднеквадратичное между яркостями компонент (функция dist)
+
* Расстояние между двумя цветам вычисляется как среднеквадратичное между яркостями компонент (функция dist).
* Штраф данного пикселя за принадлежность классу равен расстоянию от него до цвета класса
+
* Штраф данного пикселя за принадлежность к классу равен расстоянию от него до цвета класса.
* Штраф для отнесения соседних пикселей к разным классам равен расстоянию между их цветами
+
* Штраф для отнесения соседних пикселей к разным классам равен расстоянию между их цветами.
* В заготовке после сегментации пиксели изображения подкрашиваются в соответствующий цвет для наглядности
+
* В заготовке после сегментации пиксели изображения подкрашиваются в соответствующий цвет для наглядности.
* Заготовкой пользоваться не обязательно, программировать можно как на Python, так и на C++ (но заготовки для C++ нет)
+
* Заготовкой пользоваться не обязательно, программировать можно как на Python, так и на C++ (но заготовки для C++ нет).

Текущая версия на 14:37, 10 октября 2017

Сегментация изображений

В этом задании вам необходимо реализовать алгоритм сегментации изображений с помощью локального поиска для минимального разреза. Для простоты мы будем делать сегментацию на 2 класса на основе цветов пикселей.

Вам дается код с заготовкой, в которой написана базовая загрузка изображений (с помощью библиотеки scipy) и некоторые удобные функции для работы с ними. Необходимо реализовать функцию сегментации и проверить ее работу на нескольких примерах изображений.

Заготовка с кодом

Примеры изображений

Пояснения по заданию и коду:

  • Для каждого класса фиксируется свой основной цвет (переменные S и T, нужно задавать вручную для каждого изображения).
  • Расстояние между двумя цветам вычисляется как среднеквадратичное между яркостями компонент (функция dist).
  • Штраф данного пикселя за принадлежность к классу равен расстоянию от него до цвета класса.
  • Штраф для отнесения соседних пикселей к разным классам равен расстоянию между их цветами.
  • В заготовке после сегментации пиксели изображения подкрашиваются в соответствующий цвет для наглядности.
  • Заготовкой пользоваться не обязательно, программировать можно как на Python, так и на C++ (но заготовки для C++ нет).