Как стать автором
Обновить

Комментарии 22

Четко, мб стоит выложить в paint.net плагины?

Хм, не думал об этом. Плагины там могут тянуть зависимости? В данном случае придется вытянуть OpenCVSharp, который к тому же за собой тянет dll от самого OpenCV. Поизучаю вопрос, спасибо.

зависимости, если не тянутся сами по себе, можно попробовать впихнуть через костуру.

Было бы не плохо, ссылку на демку и исходники.

Ссылка на репозиторий сразу после ката. Можно просто собрать проект и запустить, рядом с image.jpg создастся out.png.

как сделать не игрушки, опиши
Делать ничего не надо, только скилл, ибо это элемент творчества.
+
Автоматизация нужна не в этой области. Я уже тут говорил кому-то, что творчество оптимизировать — потерять человечность. Но такие статьи все появляются и появляются. Бред…
Даже если предположить что эти инструменты хотят претендовать на качество… просто вырезать изображение не достаточно, но для некоторых это почему-то секрет… Ну а если это не профессиональный инструмент — значит это игрушка.

Правда промежуточные результаты интересны, даже интереснее финального

Эпоха, когда все делали серьезные профессионалы профессиональными инструментами прошла (это считая, что она когда-то была).


К тому же, ценность мифической "человечности" — вопрос философский, а возможность быстро и без особых познаний решить вопрос простой обработки изображения (или нескольких сотен/тысяч) имеет вполне практическую ценность. Качество бывает не всегда важно, а творческая составляющая может отсутствовать в принципе.

Я как человек творчества, очень надеюсь что все мы будем ценить в будущем не только практичность.
И не спорю — все что вы сказали, безусловно, право и логично.
Я так понимаю, что автор решает задачу наподобие заполнения каталога магазина.

Грубо говоря, специально обученный человек (не фотограф же, фотография — процесс творческий) вкладывает в лайткуб товары и нажимает на спуск фотоаппарата. Получаются сотни фотографий разных товаров. Потому он запускает этот фильтр и получает изображения которые можно добавить в каталог магазина. Чисто механический процесс.

Конечно же, элитный магазин может нанять фотографа и художника, чтобы они творчески отсняли товары и отретушировали снимки. Но эту будет стоить совсем других денег, которые в конечном итоге должен будет заплатить покупатель. Да и захочет ли творческий человек удалять фон на сотнях фотографий компьютерных мышек?

Да, в моем случае смысл именно в быстрой автоматической съемке объектов. Творчество в каком-то виде может разве что иметь место в плане подгонки освещения и прочей подготовке к фотографии. В удалении фона уж точно творчества минимум, поэтому пытаюсь вот таким образом этот этап автоматизировать, хотя бы самую скучную и монотонную его часть.

Вроде, не по теме, но всегда интересовал вопрос. При съёмке на одноцветном фоне как удаляют цветные блики? Т.е. если мы будем снимать белый кубик на зелёном фоне, то неминуемо получим зелень на некоторых гранях кубика. Как с этим бороться? Или, наверное, ещё сложнее вариант с прозрачными и полупрозрачными объектами.

Меня он тоже интересовал, пока этот фильтр делал. Частично удалось это решить проходом эрозии по маске — это удаляет "гало" вокруг объекта, но так можно случайно обрезать часть контура.


Как вариант — применить morphological gradient, разницу между дилитацией и эрозией (или повторно применить оператор Собеля к маске). Тогда получим контур объекта вроде такого


image

И попиксельно корректировать цвет изображения в этих точках. Я пытался так сделать, но не придумал нормального способа определять относительную позицию пикселя внутри контура (ближе к внутреннему краю, центру или внешнему?), чтобы корректировать их по-разному.

А что будет, если объект имеет «дырку» — например, ножницы лежат на фоне, в их кольцах удалится фон?

Нет, не удалится. Это, конечно, проблема. Как ее решить без участия пользователя (задающего точку начала заливки вместо угла изображения) — не придумал. Так как фильтр простой и не имеет представления о высокоуровневых понятиях вроде "объект" или "фон", то автоматически отличить дырку в ножницах от просто однородной поверхности объекта довольно затруднительно.


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

Подробнее можно узнать в этом вопросе (ценность принятого ответа на который, возможно, превышает ценность всего данного поста).

Ссылка ведёт не туда, куда задумано.

Спасибо, исправил. Имел ввиду вот этот stackoverflow вопрос.

В том же OpenCV (не знаю как в его C# версии) есть отличная штука для отделения объекта от фона — GrabCut
не рабочее это, в смысле работает только с помощью ручной разметки
вот из доков:
image

те надо помогать отделять фон.
Прошу прощения за поздний ответ, вполне рабочее, там есть вариант инициализации прямоугольником (ничто не мешает в качестве прямоугольника задать 0 0 w h), для простых фонов особенно хорошо справляется
те хромакей — legacy?

ru.wikipedia.org/wiki/%D0%A5%D1%80%D0%BE%D0%BC%D0%B0%D0%BA%D0%B5%D0%B9
С помощью хромакея можно «удалить» фон, и «подложить» изображение или видео через видеоредактор. Также в повседневной жизни хромакеем называют сам экран, на фоне которого снимают
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории