Вот уже такие вопросы, как:
... и другие.
У меня есть черно-белое изображение png, содержит рисунок, похожий на лабиринт, например, он содержит только линии , без областей.
Нужно преобразовать его в (любой) векторный формат, но как LINES . Каждая программа, которую я пробовал, например, VectorMagic, potrace и т. д., преобразовывала линии в закрытые области пути.
Небольшая часть исходного изображения PNG - увеличено:
Как видите, «линия» прослеживается с обеих сторон , как и любая другая плоская фигура.
Ищете способ, как трассировать линии в настоящие линии (ПУТИ) , лучше всего с соответствующей шириной линии. (но было бы достаточно любой строчки).
Причина: нужно работать с трассируемыми линиями и узлами, например преобразовать некоторые узлы в Безье и тому подобное. Невозможно (легко) с формами.
Есть идеи:
Существует бесплатный инструмент AutoTrace с открытым исходным кодом , который может выполнять трассировку центральной линии растрового изображения со штриховой графикой.
Запустите AutoTrace , по крайней мере, со следующими параметрами:
autotrace -centerline -color-count 2 -output-file output.svg -output-format SVG input.png
Затем мы можем точно настроить штрихи и добавить желаемую силу штриха.
Мы также можем установить графический интерфейс Frontline для AutoTrace, если мы не знакомы с командной строкой.
Пользователи Linux могут установить автотрассировку из репозиториев по умолчанию в большинстве дистрибутивов. Для Windows есть предварительно скомпилированные пакеты, которые можно загрузить со страницы проекта.
Для AutoTrace существует много дополнительных параметров, которые можно найти на справочной странице приложения или вызвать его с помощью autotrace -help
.
Чтобы получить прямые линии, а не сплайны, мы можем, например, использовать следующие параметры:
-line-threshold [real]
:
если сплайн не отклоняется от прямой линии, определяемой его конечными точками, более чем на указанное количество пикселей, то он рассматривается как прямая линия (по умолчанию: 1).
- line-reversion-threshold [real]
:
если сплайн ближе к прямой линии, взвешенный по квадрату длины кривой, оставьте его прямой линией, даже если это список с кривыми; по умолчанию .01.
В более поздних версиях (Inkscape 1.0+) трассировка центральной линии с использованием автотрассировки включена * в Inkscape через Path > Trace Bitmap :
* Ссылка: примечания к выпуску Inkscape 1.0
Честно говоря... возьмите инструмент "Перо" и вручную проследите пути. Это приведет к лучшему результату.
Автоматическая трассировка часто не лучший вариант. Когда вам нужны только пути, которые вы можете обвести, автотрассировка обычно терпит неудачу.
Попробуйте использовать Interpolate Paths после вашей трассировки, как показано здесь:
Illustrator может выполнять трассировку центральной линии так же, как и автоматическую трассировку . Это не очень полезно для большинства вещей, но в этом случае изображение очень синтетическое, и оно может сработать.
Ваше исходное изображение, как известно, плохое, поэтому нет никакого реального способа попробовать это без потери качества, ваши оригиналы должны быть лучше (нет необходимости в таком масштабировании).
Сделай это:
В настройках трассировки отключите заливку и включите обводку.
Объект → Развернуть
Изображение 1 : Объект после трассировки и расширения.
Изображение 2 : после упрощения
Изображение 3 : Как квантизация может повлиять на результат.
PS: учитывая, что источник, которым вы поделились, неполный, я бы сказал, что мой результат довольно хороший. Хотя я согласен с тем, что в целом невозможно полагаться на трассировку строк, в этом случае она сработает.
PPS: Ваши углы перекрываются, это вызывает некоторые проблемы у автотрассировщиков. Вы можете обнаружить и исправить это с помощью нескольких операторов морфологии, скажем, в ImageMagick, что должно сделать трассировщиков НАМНОГО счастливее.
Для Inkscape на github также доступно расширение трассировки центральной линии: https://github.com/Moini/inkscape-centerline-trace (форк https://github.com/fablabnbg/inkscape-centerline-trace )
Я нашел хороший бесплатный инструмент под названием WinTopo , который сделал за меня всю работу, т.е. отслеживание центральной линии.
Метод называется «векторизация в одно касание» и работает хорошо.
Поскольку я исхожу из контекста ГИС - в профессиональной версии есть возможность сначала выполнить географическую привязку к растровым данным - может быть полезно, еще не проверено.
джуджа
Таккат
слэшдоттир
Таккат
слэшдоттир
Пшемыслав Ремин
'autotrace' is not recognized as an internal or external command
Как заставить его работать?Таккат
с.ученье
Таккат