Как создать эффект обводки в Photoshop?

Я ищу способ программно воссоздать следующий эффект:

Введите входное изображение:
http://www.shiny.co.il/shooshx/ConeCarv/q_input.png

Я хочу многократно применять эффект "обводки".
Первый шаг выглядит следующим образом:
http://www.shiny.co.il/shooshx/ConeCarv/q_step1.png

Второй шаг выглядит следующим образом:
http://www.shiny.co.il/shooshx/ConeCarv/q_step2.png

И так далее.

Я предполагаю, что это будет включать в себя какое-то обнаружение края, а затем каким-то образом отследить край.
Существует ли известный алгоритм, позволяющий сделать это эффективным и надежным способом?


person shoosh    schedule 31.10.2008    source источник


Ответы (1)


По сути, пользовательский алгоритм будет, согласно этой теме:

Возьмите окрестность 3x3 вокруг пикселя, установите порог альфа-канала, а затем посмотрите, имеет ли какой-либо из 8 пикселей вокруг пикселя значение альфа, отличное от него. Если это так, нарисуйте круг заданного радиуса с центром в пикселе. Чтобы сделать внутри/снаружи, модулируйте пороговым альфа-каналом (обратите, чтобы сделать другую сторону). Вам придется установить порог большей окрестности, если радиус круга больше пикселя (что, вероятно, и есть).


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

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

Следует отметить, что наиболее общий морфологический алгоритм требует O(m*n) операций, где m — количество пикселей изображения, а n — количество элементов в структурирующем элементе. Однако в некоторых особых случаях это можно оптимизировать до O(m) операций (например, если структурирующим элементом является прямоугольник или ромб).

person VonC    schedule 31.10.2008