Как избавиться от этих артефактов контура в трассировке Inkscape SVG?

Я могу получить хорошие результаты трассировки в Inkscape, преобразуя растровое изображение в векторное изображение, за исключением этих постоянных артефактов тонкого контура. Они напоминают топографическую карту и изрядно портят след.

артефакты «топографических» очертаний

На этих путях нет штрихов, только заливки. Так что никаких видимых контуров быть не должно.

инсульт отключен

Если это поможет, вот мои настройки трассировки:Параметры трассировки Inkscape

Такие артефакты появляются и в трассировках Illustrator. Но конкретно я ищу решение для предотвращения или удаления их в Inkscape SVG.

Ответы (3)

Проблема в основном в том, как Inkscape решает разделить ваше изображение на цветовые области: вместо того, чтобы просто накладывать более светлые цвета на более темные (или наоборот), вы получаете две смежные цветовые области, которые обе перекрывают третью. цвет.

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

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

Для вашего конкретного примера изображения одним из возможных решений может быть трассировка его в оттенках серого (т. е. выбор «Серые» вместо «Цвета»), а затем повторное окрашивание трассируемого изображения; режим трассировки в оттенках серого, похоже, не страдает от этой проблемы (которую я действительно считаю ошибкой или, по крайней мере, недостатком дизайна в трассировке цветных растровых изображений Inkscape). Конечно, это хорошо работает только для изображений, которые по существу являются монохромными или имеют простую и легко воспроизводимую окраску.

Ты прав. Я обнаружил, что снятие флажка «Сканирование стека», разгруппировка объекта, а затем применение начала было лучшим «быстрым исправлением», но, как вы сказали, детали не сохранились должным образом. В конце концов я сложил сканы и отсканировал всего 32 цвета, чего в моем случае было достаточно. Затем я распределил каждый путь пошагово, используя Shift+клавиши со стрелками, удалил части путей, которые пересекались с разными цветами, а затем выровнял их заново. Это было утомительно, но дало мне небольшой размер файла и масштабируемость, которые мне были нужны (на логотипе для использования в Интернете). Я не рекомендую делать это массово.

Артефакты, которые вы испытываете, возникают из-за предполагаемых невидимых штрихов на внешнем крае сложенных объектов, созданных для каждого цвета, выбранного при трассировке.

Артефакты могут стать хуже, если мы применили размытие по Гауссу к растровому изображению перед трассировкой. Это делается с помощью smoothпараметра в диалоговом окне трассировки Inkscape. Поэтому было хорошей идеей не проверять эту опцию.

введите описание изображения здесь Воспроизведение линейных артефактов

Определить обводку цветом заливки

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

  1. Разгруппировать выбранные объекты в стопке ( Shift+ Ctrl+ G)

  2. Выберите объект (режим пути помогает увидеть, что мы выбрали правильный объект):

    введите описание изображения здесь

  3. Откройте диалоговое окно «Объект» > «Заливка и обводка».ShiftCtrlF

  4. Скопируйте цвет заливки на вкладке «Заливка»

  5. Откройте вкладку «Обводка» и сделайте плоскую обводку толщиной 1 пиксель.

  6. Вставьте цвет заливки в цвет обводки:

    введите описание изображения здесь

  7. Повторите шаги с 2 по 6 для каждого объекта в нашей трассе.

    введите описание изображения здесь Удалена только одна строка

Мы можем найти скрипт или внешний плагин, который позволяет определить цвет обводки, соответствующий цвету заливки для каждого объекта SVG, но мой предварительный поиск по этому вопросу, к сожалению, дал отрицательный результат.

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

Спасибо, однако, если у вас есть SVG с большим количеством цветов, станет очевидным, что реальная проблема заключается в наложении путей, как объяснил Илмари, а не в «предполагаемых невидимых штрихах». Сначала я тоже думал, что это проблема инсульта. Вы правы в том, что отключили настройку Smooth. Однако сначала я попробовал ваш совет и обнаружил, что добавление штрихов путем изменения XML в файле SVG не так сложно - просто нужно скопировать/вставить для каждого цвета/пути. Если вы проследите 32 цветами, вы получите 32 пути (31, если убрать фон). Можно написать скрипт Python для автоматизации этого, но это не исправление.

Я использую Inkscape 0.91 r13725 на Debian 8.

Перейдите к: Фильтры => Размытие => Перекрестное размытие.

Я оставил яркость на 0, исчезновение на 0

УГАДАЯ, что промежутки составляли 1 пиксель, я установил размытие по горизонтали на 0,50. Я установил размытие по вертикали на 0,50.

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