Перевод в контуры

Как сделать контуры из растрового изображения

С помощью inkscape можно превратить в вектор растровое изображение, то есть превратить его в SVG-элемент контур.

В настоящее время для векторизации в inkscape использует код программы Potrace Питера Селинджера (potrace.sourceforge.net). Возможно в будущем будут добавлены и другие программы, но даже на данном этапе имеющихся возможностей вполне достаточно.

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

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

Для того чтобы сделать из растрового изображения векторные контуры загрузите или импортируйте растровое изображение. Выберите объект растровое изображение, которые будете переводить в контуры и в главном меню выберите команду "Контуры" - "Векторизовать растр...", либо используйте комбинацию клавиш Shift+Alt+B.

меню векторизатора в inkscape

Вы увидите три фильтра. Первый из них "сокращение яркости". Этот фильтр просто использует сумму красного, зелёного и синего компонентов пикселя (иначе говоря, оттенки серого) в качестве индикатора, и решает, воспринимать ли его, как чёрный или как белый. Значение порога яркости может быть задано в диапазоне от 0,0 (чёрный) до 1,0 (белый). Чем выше значение, тем меньше пикселей будет воспринято как "белые" и тем больше черного станет на изображении.

растр в контуры по яркости в inkscape

Вариант второй - "Определение краев". Этот фильтр использует алгоритм определения краев, придуманный Дж. Канни (J. Canny). Этот алгоритм векторизации представляет собой способ быстрого поиска изоклин (изоклина - линия, на всём протяжении которой наклон, определяемый уравнением, сохраняет постоянное значение) и подобных контрастов. Этот фильтр создает картинку, меньше похожую на оригинал, чем результат первого фильтра, но предоставляет информацию о кривых, которая при использовании других фильтров была бы проигнорирована. Значение порога здесь (от 0,0 до 1,0) регулирует порог яркости между смежными пикселями, в зависимости от которого смежные пиксели будут или не будут становиться частью контрастного края и, соответственно, попадать в контур. Фактически, этот параметр определяет темноту или толщину края.

растр в контуры рисунка в inkscape

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

растр в контуры квантованием цветов в inkscape

Обращаем внимание начинающих пользователей, что результат работы векторизатора хоть и расположен поверх исходного растрового рисунка, но представляет собой отдельный объект контуров. Этот объект сразу является выделенным и можно переместить его мышкой или стрелочками клавиатуры, что бы убедиться в его самостоятельности. Узлы объекта можно редактировать с помощью инструмента управления узлами (подробнее см. в разделе инструкция inkscape). Стоит попробовать все три фильтра и внимательно рассмотреть различия в результатах обработки разных изображений. Все изображения индивидуальны. Обязательно найдётся такой рисунок, на котором один фильтр работает лучше, а другие хуже.

После векторизации рекомендуется воспользоваться функцией упрощения контуров, чтобы уменьшить количество узлов. Эта функция находится в главном меню "Контуры" - "Упростить" или комбинация клавиш Ctrl+L. C уменьшением узлов результат работы после векторизации более лёгким для редактирования.

На рисунке ниже слева показан результат последнего фильтра с отображением узлов контура сразу после векторизации. Справа тот же объект но после упрощения контуров. Этот рисунок показывает результат упрощения достаточно наглядно.

результат упрощения контуров в inkscape

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