2015-09-18 2 views
0

Я ищу алгоритм или, что еще лучше, некоторую библиотеку, которая покрывает фоновое смещение от одиночное статическое изображение (без наличия фоновой модели). Что бы было возможно, хотя это какой-то пользовательский ввод, например, например, https://clippingmagic.com. К сожалению, мой google fu здесь плохо, так как я не могу найти какие-либо документы по этой теме с моим ограниченным количеством ключевых слов.Фоновая субстанция с пользовательским вводом

ответ

0

Эта страница действительно впечатляет. Если бы я попытался реализовать что-то подобное, я бы, вероятно, использовал k-означает кластеризацию, используя Цветовое пространство CIELAB. Причина изменения цветового пространства заключается в том, что цвета могут быть представлены двумя точками, а не 3 как обычное изображение RGB. Это должно ускорить кластеризацию. Кроме того, цветовое пространство CIELAB было построено для этой цели, нахождением «расстояний» (сходств) между цветами и счетами для восприятия человеком цвета. Не просто смотреть на необработанные двоичные данные, которые есть у компьютера.

Но быстрый обзор kmeans. В этом примере мы скажем k = 2 (что означает только два кластера)

  1. Инициализировать каждый кластер средним значением.
  2. Пройдите через каждый пиксель в своем изображении и решите, что означает, что он ближе к кластеру 1 или 2?
  3. Вычисляется новое среднее для кластеров после того, как вы обработаны все пиксели
  4. используя вновь вычисленное средство повторите шаги 2-4 до сходимости (не означает, что средства не меняются очень много)

Теперь это будет хорошо работать, когда изображение переднего плана заметно отличается от фона. Скажем красный шар на синем фоне, но если цвета будут похожи, это будет более проблематично. Я бы все равно придерживался kmeans, но имел большее количество кластеров. Таким образом, на этой веб-странице вы можете сделать несколько красных или зеленых выборов. Я бы сделал каждый из этих штрихов кластером и инициализировал мой кластер в среднем. Так сказать, я нарисовал 3 красных штриха и 2 зеленых. Это означает, что у меня будет 5 групп. Но как-то внутренне я добавляю дополнительный атрибут как передний/задний. Так что каждый кластер будет иметь небольшую дисперсию, но в конце я бы отображал только этот атрибут, передний план или фон. Надеюсь, это имело смысл.

Возможно, теперь у вас есть условия поиска для начала. Могут быть много других методов, но это первый, о котором я думал, удачи.

EDIT

После игры с веб-сайта немного больше я вижу, что использует пространственную близость к кластеру. Скажем, у меня было 2 одинаковых красных пятна на противоположных сторонах изображения. Если я только аннотирую левую часть изображения, капля с правой стороны может не обнаружиться. Kmeans не будет реплицировать это поведение, поскольку описанный мной метод использует только цвет для пикселов кластера, полностью не обращая внимания на их местоположение на изображении.

Я не знаю, какие инструменты у вас есть в вашем распоряжении, но вот хороший пример/учебник по Matlab на color based kmeans

Смежные вопросы