Векторизация пиксельной графики

Векторизация пиксельной графики

Inkscape работает от libdepixelize с возможностью автоматического векторизации этих «специальных» изображений Pixel Art. Вы также можете попробовать другие типы входных изображений, но будьте осторожны: результат не будет одинаково хорош, и лучше использовать другой трассировщик Inkscape, potrace.

Начнем с образца изображения, чтобы показать вам возможности этого механизма трассировщика. Ниже приведен пример растрового изображения (взятого из Liberated Pixel Cup) слева и его векторизованного вывода справа.

 

 

 

 



Libdepixelize использует алгоритм Kopf-Lischinski для векторизации изображений. Этот алгоритм использует идеи нескольких методов компьютерной науки и математических понятий для получения хорошего результата для изображений пиксельных изображений. Следует заметить, что альфа-канал полностью игнорируется алгоритмом. В настоящее время в libdepixelize нет расширений, чтобы дать первоклассное гражданское лечение для этого класса изображений, но все изображения пиксельных изображений с поддержкой альфа-канала дают результаты, похожие на основной класс изображений, распознаваемых Kopf-Lischinski.

 

 

 

 


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

 

Ниже приведен снимок экрана диалога Trace Pixel Art в английской локализации. Вы можете открыть это диалоговое окно, используя меню Path> Trace Pixel Art ... или щелкнув правой кнопкой мыши на объекте изображения, а затем на Trace Pixel Art.

 

 

 

 

 

 

 

 


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


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

 

Выход по умолчанию должен давать самый плавный результат и, вероятно, то, что вы хотите. Вы уже видели вывод по умолчанию для первых образцов этого урока. Если вы хотите попробовать сами, просто откройте диалоговое окно Trace Pixel Art и нажмите OK после выбора изображения на Inkscape.


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


 

 

 

 

 

 

 

 


Стандартный выход B-splines даст вам плавные результаты, поскольку предыдущий выход Voronoi будет преобразован в квадратичные кривые Безье. Однако преобразование не будет равно 1: 1, потому что существует больше эвристик, которые решат, какие кривые будут объединены в один, когда алгоритм достигнет Т-перехода среди видимых цветов. Подсказка об эвристике этого этапа: вы не можете их настроить.


Заключительный этап libdepixelize (в настоящее время не экспортируемый графическим интерфейсом Inkscape из-за его экспериментального и неполного состояния) - это «оптимизация кривых», чтобы удалить эффект лестницы кривых B-Spline. Этот этап также выполняет метод обнаружения границ, чтобы предотвратить сглаживание некоторых функций и метод триангуляции для фиксации положения узлов после оптимизации. Вы должны иметь возможность индивидуально отключать каждую из этих функций, когда этот выход выходит из «экспериментальной стадии» в libdepixelize (надеюсь, скоро).

Раздел эвристики в gui позволяет вам настроить эвристику, используемую libdepixelize, чтобы решить, что делать, когда он сталкивается с блоком 2x2 пикселей, где две диагонали имеют одинаковые цвета. «Какую связь я должен сохранить?» Это то, что запрашивает libdepixelize. Он пытается применить все эвристики к конфликтующим диагоналям и поддерживает связь победителя. Если связь происходит, оба соединения стираются. Если вы хотите проанализировать влияние каждой эвристики и играть с цифрами, лучшим выходом будет выход Voronoi. Вы можете более легко увидеть эффекты эвристики на выходе Voronoi, и, когда вас устраивают настройки, вы можете просто изменить тип вывода на тот, который вы хотите. На изображении ниже изображено изображение и выход B-Splines с одной только эвристикой, включенной для каждой попытки. Обратите внимание на фиолетовые круги, которые подчеркивают различия, которые выполняет каждая эвристика.

 

 

 

 

 

 

 

 

 

 


Для первой попытки (верхнее изображение) мы используем только эвристические кривые. Эта эвристика пытается удерживать длинные кривые, соединенные вместе. Вы можете заметить, что его результат аналогичен последнему изображению, где применяется эвристика разреженных пикселей. Одно из отличий заключается в том, что его «сила» более справедлива, и это только дает высокую оценку его голосу, когда действительно важно поддерживать эти связи. «Ясное» определение / концепция здесь основано на «человеческой интуиции» при анализе базы данных пикселей. Другое отличие состоит в том, что эта эвристика не может решить, что делать, когда группы соединений образуют большие блоки вместо длинных кривых (подумайте о шахматной доске).


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


Для третьей попытки (нижнее изображение) мы разрешаем только разреженные эвристические пиксели. Эта эвристика пытается сохранить кривые с подключенным цветом переднего плана. Чтобы узнать, что представляет собой цвет переднего плана, эвристика анализирует окно с пикселями вокруг противоречивых кривых. Для этой эвристики вы не только настраиваете ее «силу», но и просматриваете окна пикселей. Но имейте в виду, что когда вы увеличиваете окно анализируемых пикселей, максимальная «сила» для его голосования также будет увеличиваться, и вы можете настроить множитель для его голосования. Оригинальный автор libdepixelize считает, что эта эвристика слишком жадна и любит использовать значение «0.25» для своего множителя.

 

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


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

Вот и все! Для этого начального выпуска libdepixelize это все варианты, которые у вас есть. Но если исследование оригинального автора libdepixelize и его творческого наставника преуспевает, вы можете получить дополнительные опции, которые расширяют даже еще диапазон изображений, для которых libdepixelize дает хороший результат. Желаю им удачи.



Коментарии