Перетворіть лінійний малюнок з растрового у векторний ** LINES **


16

Ось уже такі питання, як:

... та інші.

У мене зображення B&W png, містить малюнок як лабіринт, наприклад, він містить лише лінії , без областей.

Потрібно перетворити його у (будь-який) векторний формат, але як LINES . Кожна програма, що я спробував, наприклад, VectorMagic, potrace тощо, перетворює лінії в закриті ділянки шляху.

Невелика частина оригінального зображення PNG - масштабування: введіть тут опис зображення

Результат сліду: введіть тут опис зображення

Як бачите, "лінія" простежується з обох боків, як і будь-яка інша подібна до області форма.

Шукаєте спосіб, як простежити лінії в реальних лініях (PATHS) , найкраще з відповідною шириною лінії. (але буде достатньо будь-якого рядка з).

Причина: потрібна робота з відстеженими лініями та вузлами, наприклад, перетворення деяких вузлів на безцільніші тощо. Неможливо (легко) з фігурами.

Будь-яка ідея:

  • як отримати векторизовані лінії з будь-якої програми трасування.
  • який інструмент може це зробити? (будь-яка ОС - може використовувати Windows, OS X, Linux ..)

Відповіді:


15

Відстеження центральної лінії

Існує безкоштовний інструмент з відкритим вихідним кодом AutoTrace, який здатний виконати відстеження центральної лінії растрового рядка.

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

Запустіть AutoTrace принаймні наступними параметрами:

autotrace -centerline -color-count 2 -output-file output.svg -output-format SVG input.png 

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

Потім ми можемо тонко налаштувати штрихи та додати бажану силу удару ..

Ми також можемо встановити графічну передню лінію фронтену для AutoTrace, якщо ми не знайомі з командним рядком.

Користувачі Linux можуть мати змогу встановити автоматичне відстеження, надане зі своїх сховищ за замовчуванням у більшості дистрибутивів. Для Windows є попередньо складені пакети для завантаження із сторінки проекту.

Існує багато додаткових параметрів для AutoTrace, які можна знайти на головній сторінці програми або зателефонувавши за допомогою autotrace -help.

Для отримання прямих ліній, ніж сплайнів, ми можемо використовувати такі параметри:

  • -line-threshold [real]:
    Якщо сплайн не відхиляється від прямої, визначеної його кінцевими точками, більше, ніж зазначена кількість пікселів, тоді трактуйте її як пряму (за замовчуванням: 1).

  • - line-reversion-threshold [real]:
    Якщо сплайн ближче до прямої, ніж ця, зважена квадратом довжини кривої, тримайте її прямою, навіть якщо це список із кривими; за замовчуванням - 01.


1
+1 Чи знаєте ви, чи є можливість відстежувати лише прямі сегменти з автоматичним відстеженням.
joojaa

@joojaa: перегляньте параметри редагування.
Таккат

Я б хотів, щоб я міг отримати автодоріжку для побудови ... Я хотів би скористатися цим
slashdottir

1
@slashdottir: яку систему ви використовуєте? Сайт проекту перемістився до Github для останніх розробок та повідомлень про помилки. Я відредагував відповідь, щоб включити посилання.
Таккат

О блискуче! Я використовую OSX. Дякую за посилання!
slashdottir

10

Цілком чесно ... візьміть інструмент для пера та вручну простежте стежки. Це призведе до найкращого результату.

Автоматичне відстеження часто не найкращий варіант. Коли ви хочете лише шляхи, якими ви можете рухатись, автоматичне відстеження, як правило, не вдається.


зображення дійсно КОМПЛЕКСНО з багато-багатьма рядками. Також є більше зображень - просто занадто багато роботи - шукаю альтернативу ...;)
jm666

також сподіваюся, що "інструмент" зробить оптимізацію, наприклад, створить завжди найдовші можливі шляхи і так далі ... ручна робота не завжди найкраща;)
jm666

Удачі! Я дійсно думаю, що те, що ви просите, просто вимагає ручної майстерності та терпіння. Я ніколи не бачив автоматизованого рішення, яке було б вагомим для створення єдиних контурів. Я думаю, що ти шукаєш неможливого чесно.
Скотт

2
@scott, хоча я взагалі погоджуюся з вашими почуттями в цьому конкретному випадку, це просто може вийти.
joojaa

5

Спробуйте скористатися Інтерполяцією контурів після сліду, як показано тут:

Середній хід від заливки


ОГО. Це виглядає ДУЖЕ перспективно. Дякую! +1.
jm666

@ jm666 звичайно такий метод не буде дуже добре автоматизуватися, якщо ви не маєте справу з нескінченними шляхами.
joojaa

5

Illustrator може відстежувати центральну лінію так само, як автотрек . Це не дуже корисно для більшості речей, але в цьому випадку зображення є дуже синтетичним і може працювати.

Зображення Yor-джерела, як відомо, погано, тому немає реального способу спробувати це, не втрачаючи якості, ваші оригінали повинні бути кращими (не потрібно так масштабувати)

Зробити це:

  1. У налаштуваннях трасування відключити заливки та включити обведення.

  2. Об'єкт → Розгорнути

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

Зображення 1 : Об'єкт за слідом та розгортання.

  1. Щоб додатково покращити результати помилок трасування, виконайте: Об'єкт → Шлях → Спростити , перевірте прямі ребра.

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

Зображення 2 : Після спрощення

  1. Мені здається, що ваше зображення дещо обмежене в напрямках ліній та кутових місцях, якщо це правда, тепер ви можете спробувати кількісно оцінити бали для ще кращих (якщо не ідеальних) результатів.

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

Зображення 3 : Що може зробити квантування для результату.

PS: враховуючи, що джерело, яким ви поділилися, є неповним, я б сказав, що мій результат є досить хорошим. Хоча я згоден, що в цілому неможливо покластися на відслідковування ліній, у цьому випадку це спрацює.

PPS: Ваші кути перекриваються, це спричиняє автоматичне відстеження певного горя. Ви можете їх виявити та виправити за допомогою декількох операторів морфології, скажімо ImageMagick, які повинні зробити трекери НАШЕ щасливішими.


Також приємно. Тепер використовується автовідстеження, завдяки простому використанню командного рядка - для багатьох зображень. Зображення растрових зображень вище - це невелика частина більшого зображення (1300% збільшення) :) - тому воно виглядає деградованим. +1, дякую.
jm666

@ jm666 Впевнений, ви можете також використовувати ілюстратор з cmd, якщо хочете, але це трохи роботи, щоб почати.
joojaa

Я намагався за допомогою сліду зображення і зразка Illustrator використовувати лише штрихи. Я не зміг отримати жодних корисних результатів. Справді, я не інвестував багато часу на це, і зразок не ідеальний для відстеження. Але я вважаю, що встановлення сліду AI лише штрихами означає, що ви отримуєте лише 30-60% фактичного твори мистецтва, за винятком випадків, якщо оригінал є досить твердим і гострим перед відстеженням.
Скотт

@Scott я зменшив зображення до початкового розміру та відкоригував параметр ширини рядка, щоб воно просто працювало. Якщо ви відстежуєте штрихи різної ширини, можливо, знадобиться це зробити через 2 або 3 окремі проходи.
joojaa


2

Я знайшов хороший безкоштовний інструмент під назвою WinTopo , який для мене зробив цю роботу, тобто відстеження центральної лінії.

Метод називається "векторизація одним дотиком" і працює добре.

Оскільки я виходжу з контексту ГІС - у професійній версії є можливість спочатку Georeference растрових даних - може бути корисним, але ще не перевірено.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.