Как мне реализовать простую онлайн-фотосъемку, чтобы удалить фон для загруженных изображений? - PullRequest
0 голосов
/ 24 марта 2011

Мы создаем приложение, которое включает в себя цифровую галерею, которая отображает фотографии и текст.

Пользователь обычно загружает фотографию с фоном, мы хотели бы замаскировать фон, при этом объект переднего плана остается скомпонованнымс нашим собственным фоном.Объект в основном темный и имеет простую форму, поэтому, если он сфотографирован на белом фоне, контур будет четко определен.Мы хотели бы предоставить очень простые в использовании инструменты, которые помогут пользователю удалить фон, который предоставляет аналогичные функции фотошопа, но без его сложности.Мы также должны позволить пользователю изменить размер объекта до того же размера.

Некоторые идеи,

  1. Инструмент волшебной палочки
  2. Инструмент линии, который создает закрытый Безьелинии
  3. Некоторые предопределенные формы в виде масок.

Инструмент может быть создан с помощью flash / air / html5.

1 Ответ

0 голосов
/ 24 марта 2011

Если объект всегда темнее фона, вы должны использовать простой метод порога с одним параметром, чтобы установить его: (Все, что ярче, чем порог, это BG, остальное - FG). Если это не так, взгляните на алгоритмы водораздела. Я думаю, что бесплатная библиотека OpenCV (http://opencv.willowgarage.com/wiki/) от Intel включает реализацию. Для этого также нужно очень мало параметров: точки заполнения, чтобы начать сегментацию, чтобы пользователь мог просто щелкнуть объект переднего плана, а затем снова установить интерактивную настройку порога до тех пор, пока Весь объект выделен. Это в основном как "Волшебная палочка". Если этого все еще недостаточно, возможно, вам подойдут подходы «змей» и «набор уровней». Пользователь может нарисовать грубую кривую вокруг объекта, и алгоритм пытается найти точную фактическую границу. Эти алгоритмы специально предназначены для нахождения оптимального разделения между передним и задним фонами в зависимости от того, какое свойство вы определяете, и ими можно управлять с помощью нескольких параметров (обычно 2 или 3), что должно быть достаточно простым для большинства пользователей. Я сомневаюсь, что у Intel есть реализация для них, но я использовал это некоторое время назад: http://vivienmallet.net/fronts/, и это было очень приятно и с открытым исходным кодом, так что вы можете легко адаптировать его к вашим потребностям.

Я предлагаю начать с OpenCV, так как он содержит МНОЖЕСТВО различных подходов, достаточных для большинства простых задач.

Ура!

...