В этом уроке я хочу рассмотреть возможности трассировщиков вынесенных в заголовок векторных редакторов. Исследование не претендует на какую-либо истинность и более призвано именно оценить возможности движков трассировки.
Важное замечание. Описанная здесь функциональность актуальна для версий программ: Illustrator CS6 и выше (в CS5 будет чуть иначе), Corel X7, Inkscape 0.91.
Некоторые картинки из-за своей «весовой категории» представлены в виде кликабельных миниатюр.
Трассировкой в отношении векторных редакторов называют автоматизированное преобразование растровой картинки в векторные объекты. противоположностью трассировке является отрисовка, о которой я не так давно немного поговорил. Там, как вы уже скорее всего знаете, весь процесс производится вручную. Это дает более высокое качество выполнения, но страдает скорость. в трассировке же всё ровно наоборот: скорость обработки высокая, но качество в большинстве случаев оставляет желать лучшего. Небольшому обзору того, настолько ли всё плохо, и посвящена данная статья.
«Круговой» тест
Начать я хочу с проверки точности воспроизведения форм объектов.
Ниже вы можете видеть две изначальные картинки: белые круги разных размеров на черном фоне и черные круги на белом фоне.


Что важно знать при добавлении растровых картинок в Illustrator: всегда проверяйте соответствие линейных размеров в пикселях. Связано это с особенностями учета программой разрешения изображений (ppi). Например, оба примера выше имеют размеры 300x300 пикселей. При добавлении в программу они принимают размеры 224,972 по каждой стороне. Нужно изменить их на искомые.

Теперь можно переходить к собственно трассировке. В Illustrator для этого открываем панель Image Trace (Window> Image Trace). Сначала я оставляю там все значения по умолчанию.

Как видите, заметные изменения произошли только с самым маленьким кругом.
Привести его к нормальному виду не составляет труда: достаточно лишь снять галочку с пункта «Snap Curves To Lines».

Так как этот пример был изначально нарисован в векторе, то у меня имеется возможность сравнить количество объектов и опорных точек. У оригинала это 11 объектов и 44 точки:

Разберем трассировку и посмотрим что там:

22 объекта (из них 1 комбинированный) и 93 точки. Откуда что взялось? По умолчанию программа не понимает, что черный фон – 1 фигура и прорезает в нем каждый круг, что увеличивает количество опорных точек вдвое. Отсюда 1 комбинированный контур. Но если посмотреть внимательнее, то есть еще одна фигура. При том лишняя:

Она образовалась из-за несовершенства алгоритма. Ведь при размещении я выровнял изображение по пикселям, но программа всё равно просчитала небольшую кромку. Эту фигуру можно удалить.
А теперь попробуем другие настройки. Если переключить метод трассировки с «Abutting», создающей прорезаемые фигуры, на «Overlapping», то можно улучшить понимание программы относительно количества фигур. Обратите на это внимание при просмотре следующего скриншота. в добавок к этому я изменил и другие параметры:

Здесь видно, что лишняя фигура по границе осталась, но главное преимущество перед предыдущим вариантом – я могу передвинуть один из кругов и под ним будет фон. Там же была бы пустота.


Нужно заметить, что черная фигура при таких настройках обработалась не лучшим образом: лишние точки и неправильные углы с правой стороны (по причине тех же лишних точек):

Потому я вернусь немного назад и подберу иные параметры:

После удаления лишнего элемента, остается фоновая фигура с прекрасными прямыми углами и без лишних точек:

Общие же сведения получаются такими: 11 контуров и 44 точки. В этом смысле отличный результат! Но что с точностью? Проверим.

Я наложил проверочный круг диаметром 10 пикселей и с красным цветом заливки на трассированный. В 800% масштабе это выглядит так:

Различия не так уж и велики. Таковы они и у круга диаметром 20 пикселей (масштаб 800%):

Следующей жертвой стал круг диаметром 40 пикселей:

И напоследок 100-пиксельный круг в масштабе 400%:

Если при увеличении огрехи трассировки видны не очень сильно, то в 100% масштабе их, можно сказать, и нет:

Я считаю результат отличным по всех смыслах.
Перейдем к примеру с черными кругами. Здесь я сразу задам выведенные в предыдущий раз настройки трассировки:

Разберем трассировку. Лишних фигур нет, но у фона опять «пропали» углы:

Решается эта проблема просто – необходимо всего лишь увеличить значение параметра «Corners» до 74%.
По количеству точек обновленный результат превосходен:

С точность дела обстоят так же, как и в первый раз:





В этим тестом Illustrator справился на отлично.
В обоих случаях можно было включить игнорирование белого цвета. правда, в первом примере это удалило бы нужные нам круги. А вот для второго примера послужило бы хорошо – ведь мы не знаем нужен нам белый фон или нет. Добавить же его самостоятельно цельной фигурой – недолго.
Еще одно важное замечание: Illustrator не предоставляет средств для группировки похожих по цвету объектов сразу в окне трассировки. Это придется делать дополнительно.
Посмотрим что нам по этим примерам покажет Corel.
Здесь проблема с линейными размерами добавляемых изображений отсутствует.
Трассировка активируется командой Bitmaps> Outline Trace и выбором пресета. я указал «Logo».

В свойствах пишется, что будет 11 объектов и 54 опорных точки (нод, как они здесь называются). Но это нам пока не так важно, потому как даже в таком масштабе видно, что самый маленький круг имеет не самую лучшую форму. А если приблизить, то выглядеть это будет так:

Нужно немного поподбирать параметры. Я остановился на следующих:

И, заметьте, в итоге 11 объектов и 44 точки. Исходные значения! Но вот не рано ли я радуюсь?

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

Круг с диаметром 20 пикселей вообще меньше проверочного:

К сожалению, даже у самого большого круга (диаметр 100 пикселей) есть ошибки формы (красный круг немного проглядывает с левой стороны).

Но, как вы видели, настроек трассировки не так уж много, зато здесь можно группировать фигуры по цвету (Group objects by color) и убрать прорезание верхними фигурами (Remove object overlap). Правда, как видите, они взаимосвязаны и нельзя включить группировку, отключив прорезание.

Обратимся к примеру с черными кругами. Я задал здесь чуть другие настройки.

Наблюдаются явные проблемы с размерами. Значит такие настройки еще менее применимы, чем для примера с белыми кругами.
10-пиксельный круг в 600% масштабе.

20-пиксельный круг в том же масштабе.

100-пиксельный круг в 100% масштабе.

Результат Corel мне совсем не понравился.
Переходим к рассмотрению тех же примеров в Inkscape.
При импорте растрового изображения программа по умолчанию спрашивает откуда брать значения разрешения: из файла или из своих глобальных настроек.

Добавлять картинку нужно методом линковки, дабы потом было легче от нее избавиться. А также нужно обязательно подогнать размер файла под размер изображения. Делается это из диалогового окна File> Document Properties (Shift+Ctrl+D). Необходимо нажать там кнопку «Resize page to drawing or Selection».

Модуль трассировки запускается командой Path> Trace Bitmap (Ctrl+Alt+B ).
Привычных по другим редакторам пресетов здесь нет. И не смотря на кажущееся многообразие настроек, нам подходят только три варианта из раздела «Multiple scans». А в данном случае так и вообще только два: «Colors» и «Grays». Он позволяет указать напрямую количество цветов, которые будут определены автоматически. «Brightness steps» теоретически тоже может помочь, но так как разница в яркости между нашими цветами максимальна, то и количество промежуточных шагов между ними будет большим. Потом придется их удалять.
Итак, я задал следующие настройки.

Смотрим на маленький круг: более-менее.

А теперь пришло рассказать один нюанс трассировки в Inkscape: вне зависимости от вашего желания вы не получите каждый объект по отдельности. все фигуры одного цвета будут слиты в комбинированный контур. С одной стороны это удобно — не нужно ничего дополнительно объединять (особенно в сложных иллюстрациях), с другой — это объединение тоже не всегда желательно. Именно потому контрольные круги здесь будут непрозрачными — я не смогу подложить их под белые круги, которые есть в результатах других трассировок — он будет перекрываться вышележащей черным объектом.
Что с соответствием?

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

Круг 40x40:

А теперь давайте узнаем откуда погрешности берутся здесь. Для этого достаточно выделить черную фигуру:

Я бы сказал, что желательно выполнить команду Path> Simplify (Ctrl+L), но это плохо отразится на маленьких кругах:


Поэтому лучше оставить как есть. получается 2 объекта и 82 точки.
У полученного здесь результата есть еще одно отличие: единственная трассировка, где цвета не соответствуют исходным. Вместо чистого белого – #f7f7f7, вместо чистого черного – #030303.
Для примера с черными кругами результат практически такой же: не совсем ровные круги, отличные от чистых цвета.

По результатам этого теста моими фаворитами являются Illustrator – за самую круглую форму и Inkscape – за наибольшую точность фигур, хоть и не совсем круглых. Corel – слишком «некруглый».
Точность цветопередачи
Следующий тест я хочу посвятить рассмотрению точности воспроизведения нескольких цветов. Вот исходная картинка:

Перечень цветов (сверху вниз слева направо):
R=255 G=0 B=0 (#ff0000)
R=0 G=255 B=0 (#00ff00)
R=0 G=0 B=255 (#0000ff)
R=255 G=255 B=0 (#ffff00)
R=0 G=255 B=255 (#00ffff)
R=255 G=0 B=255 (#ff00ff)
R=255 G=255 B=224 (#ffffe0)
R=250 G=250 B=210 (#fafad2)
R=26 G=188 B=156 (#1abc9c)
R=22 G=160 B=133 (#16a085)
R=241 G=241 B=241 (#f1f1f1)
R=252 G=252 B=252 (#fcfcfc)
R=128 G=128 B=128 (#808080)
R=26 G=26 B=26 (#1a1a1a)
R=3 G=3 B=3 (#030303)
R=252 G=233 B=79 (#fce94f)
И фоновый квадрат чистого черного цвета (R=0 G=0 B=0 (#000000)), который учитывается в результатах трассировки лишь косвенно.
Далее, для упрощения, цвета будут указываться в формате rgb(252, 233, 79).
Благодаря тому, что фигуры имеют прямые углы, заодно посмотрим как хорошо воспринимают это трассировщики.
Нам известно, что на картинке всего 17 цветов. При задании автоматического определения палитры, программы распознает только 15:

Но потом я изменил их на следующие:

Особо важно здесь принудительно заданное количество цветов (17), а всё остальное способствует правильному восприятию форм.
В полной мере его показали только цвета rgb(128, 128, 128), rgb(26, 26, 26) и rgb(3, 3, 3). Фон я не считаю. Хотя, при создании автоматической палитры, последний, скорее всего, сливался с черным фоном, потому цветов было меньше. У остальных же цветов значения компонентов на единицу меньше (например, вместо rgb(252, 233, 79) стало rgb(251, 232, 79)). По форме все объекты – превосходные квадраты.

Также я проверил свою догадку про слияния цветов в автоматической палитре. я оказался неправ. Цвета слились у отмеченных ниже пар квадратов:

А rgb(3, 3, 3) отлично определился.
Переходим в Corel.
Здесь я выбрал пресет «Detailed logo». Программа автоматически определила 16 цветов.

Здесь как раз слился rgb(3, 3, 3), а из остальных 10 цветов определились абсолютно правильно. Изменим пресет на «High quality image» и получим искомые 17 цветов.

По форме все фигуры превосходны, включая rgb(3, 3, 3).

В Inkscape сразу ставлю 17 цветов и отключаю сглаживание:

Форма у всех фигур отличная, а вот значения компонентов всех же образцов на 1 меньше.

В данном тесте победителем становится Corel – за самую точную передачу цветов, второе место достается Illustrator – 3 точных цвета, а третье места занимает Inkscape как наименее точный.
Лайн-арт
Переходим к более реалистичным примерам использования трассировки.
Часто художники рисуют набросок на бумаге или в растровой программе и только, когда он их полностью устроит, переводят в вектор. Опять же, чаще всего, это только основные контуры будущей иллюстрации, так называемый лайн-арт. Чтобы не отрисовывать его вручную, можно прибегнуть к трассировке. Но вот сэкономит ли это время? Сейчас и узнаем.
Я взял вот такой рисунок:

Как всегда, первым идет Illustrator. Я выбираю пресет «Line Art». Он оказывается, мягко скажем, бесполезным:

Тут еще немного отвлекусь на теорию.
Лайн-арт в начале своей «карьеры» должен быть редактируемым контуром, а не фигурами, потому как иначе его будет долго и не очень просто править. именно потому в настройках трассировки в Illustrator нужно активировать пункт «Strokes» и деактивировать «Fills».
Вот что я смог выжать из иллюстрации:

Результат... «не совсем хороший». С этим заданием Illustrator не справился.
В Corel также выбираю пресет «Line Art». Визуально автоматический результат лучше, чем у Illustrator, но от идеала еще очень далек.

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

…но давайте применим трассировку и взглянем пристальнее:

Увы. Превью в окне трассировки, в силу своей специфики, отражало изменения далеко не полностью. Ну и эти линии явно не являются контурами — это рваные фигуры.
Я пробовал тип трассировки «Outline». Есть еще «Centerline». По названию он подходит больше под поставленную задачу. Взглянем и на него.


И, хоть тут получаются контуры (пример ниже), но сам результат совсем неудовлетворителен.

В Inkscape отсутствует параметр создания только контуров, потому воспользуемся чем есть. несколько фигур нам сейчас не нужны, потому раздел «Multiple Scans» не трогаем. Я остановился на методе «Brightness Cutoff». Ниже вы можете видеть окно настроек трассировки, еще чуть ниже часть изображения в 200% масштабе и всю картинку в 100% виде.



Не смотря на то, что это фигуры, а не контуры, я считаю данный результат трассировки лучшим.
Вывод по данному примеру: со сложным лайн-артом программы скорее всего не справятся или представят его в виде фигур, а не контуров. Так что, пожалуй, попробовав в одной и не увидев хорошего результата, не стоит терять время на другие. Лучше потратить его на отрисовку.
Прежде чем продолжить более интересными примерами, давайте быстро глянем на более простой лайн-арт.
Исходное изображение:

Мистер гомер Симпсон в цветном исполнении уже мог встречаться вам в одном из моих уроков. Он поможет нам и в этом уроке. Векторный исходник позволит нам, при необходимости, увеличить толщину линий или получить растр больших линейных размеров.
Загрузим изображение в Illustrator и посмотрим:

По-моему, очень хороший результат! Отсутствующие зрачки в глаза добавить недолго, как и исправить некоторые недочеты трассировки на стыках контуров. Кстати, убедимся, что это контуры:

Ради интереса я трассирую версию, увеличенную в два раза.

По-моему, стало хуже на стыках контуров. Ниже фрагмент в районе уха в 100% масштабе.

Тем не менее, с таким лайн-артом программа справилась вполне хорошо.
В Corel оба Centerline-метода вновь показали не лучшие результаты:


И пресет «Line Art» для метода «Outline» тоже показал себя не лучшей стороны.

Но всё же эта иллюстрация получилась более качественной, нежели предыдущий пример. Кстати, в этот раз вновь пришлось уменьшать количество предлагаемых цветов до 2 (при начальных 6).
А вот для двукратной версии, результат, пожалуй, получше:

И даже в Centerline-методах наблюдается некоторое улучшение:

Inkscape вновь неплохо проявляет себя:


После удаления ненужных объектов, остается лишь искомый контур (хоть и в виде фигуры), состоящий из 284 точек.

Если брать в расчет только контуры, то тут Illustrator впереди. Но просто визуальный результат мне больше понравился у Inkscape. Corel же не проявил себя хорошо ни в одном из вариантов – и там, и там имеются огрехи.
Гравюра
Следующий тест — на гравюрах.
Я выбрал два следующих изображения (кликабельно):


Как вы видите, он имеют значительное количество мелких деталей важных для целостности иллюстрации. Посмотрим как подопытные программы справятся с ними.
Здесь мы будет сравнивать количество точек и, собственно, точность передачи оригинальной картинки.
Начну я с изображения, представленного выше первым. Его линейные размеры в три раза больше соседа – лишний повод проследить за данной зависимостью.
Итак, в Illustrator я остановился на следующих параметрах:

Вот часть оригинального изображения в 100% масштабе:

И она же после трассировки:

Потерялись линии в небе, а элементы здания получились толще. Если попробовать «вытянуть» небо, то они станут еще толще. Думаю, что здание важнее, потому я и ориентировался на него.
Затем я разобрал трассировку и наложил ее поверх оригинального изображения. Всё тот же участок выглядит так:

Разница очевидна.
Отредактировано: Dark Wood — 16 Июня 2015, 20:27