Konvertieren einer Strichzeichnung von einem Raster in einen Vektor ** LINES **

16

Hier sind schon solche Fragen, wie:

... und andere.

Ich habe ein S / W-PNG-Bild, enthält eine Zeichnung wie ein Labyrinth, z. B. enthält sie nur Linien , keine Bereiche.

Muss in ein (beliebiges) Vektorformat konvertiert werden, aber als LINES . Jedes Programm, was ich ausprobiert habe, z. B. VectorMagic, Potrace usw., konvertiert die Linien in geschlossene Pfadbereiche.

Kleiner Teil des ursprünglichen PNG-Bildes - gezoomt: Bildbeschreibung hier eingeben

Das Ergebnis der Verfolgung: Bildbeschreibung hier eingeben

Wie Sie sehen, wird die "Linie" wie jede andere flächenhafte Form von beiden Seiten nachgezeichnet .

Auf der Suche nach einem Weg, wie man Linien in echte Linien (PATHS) umwandelt , am besten mit der passenden Linienbreite. (würde aber mit keiner zeile reichen).

Der Grund dafür: Sie müssen mit den verfolgten Linien und Knoten arbeiten, z. B. einige Knoten in Bezier und Ähnliches konvertieren. Nicht möglich (leicht) mit Formen.

Irgendeine Idee:

  • wie man vektorisierte Linien von jedem Verfolgungsprogramm erhält .
  • Welches Tool kann das? (Jedes Betriebssystem - kann Windows, OS X, Linux ... verwenden.)
jm666
quelle

Antworten:

15

Mittellinienverfolgung

Es gibt ein kostenloses Open Source-Tool, AutoTrace, mit dem eine Mittellinienverfolgung einer Strichgrafiken -Bitmap durchgeführt werden kann.

Bildbeschreibung hier eingeben

Führen Sie AutoTrace mit mindestens den folgenden Optionen aus:

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

Bildbeschreibung hier eingeben

Wir können dann die Striche fein abstimmen und die gewünschte Strichstärke hinzufügen.

Wir können auch das grafische Frontend Frontline für AutoTrace installieren, falls wir nicht mit der Befehlszeile vertraut sind.

Linux-Benutzer können möglicherweise Autotrace installieren, das in den meisten Distributionen aus ihren Standardrepositorys bereitgestellt wird. Für Windows gibt es vorkompilierte Pakete, die von der Projektseite heruntergeladen werden können.

Es gibt viele zusätzliche Parameter für AutoTrace, die Sie in der Manpage der Anwendung finden oder mit aufrufen können autotrace -help.

Um eher gerade Linien als Splines zu erhalten, können wir zB folgende Parameter verwenden:

  • -line-threshold [real]:
    Wenn ein Spline nicht mehr als die angegebene Anzahl von Pixeln von der durch seine Endpunkte definierten geraden Linie abweicht, wird er als gerade Linie behandelt (Standard: 1).

  • - line-reversion-threshold [real]:
    Wenn sich ein Spline näher an einer geraden Linie befindet, gewichtet mit dem Quadrat der Kurvenlänge, behalten Sie diese gerade Linie bei, auch wenn es sich um eine Liste mit Kurven handelt. Die Standardeinstellung ist .01.

Takkat
quelle
1
+1 Weißt du, ob es eine Option gibt, mit dem Tracer nur gerade Segmente mit Autotrace zu erstellen?
Joojaa
@joojaa: Siehe Bearbeiten für Optionen.
Takkat
Ich wünschte, ich könnte Autotrace zum Bauen bringen ... Ich würde dies gerne verwenden
slashdottir
1
@slashdottir: Welches System verwendest du? Die Website des Projekts wurde nach Github verlegt, um aktuelle Entwicklungen und Fehlerberichte zu erhalten. Ich habe die Antwort so bearbeitet, dass sie den Link enthält.
Takkat
Oh genial! Ich benutze OSX. Vielen Dank für den Link!
Slashdottir
9

Ganz ehrlich ... greifen Sie zum Stiftwerkzeug und zeichnen Sie die Pfade manuell nach . Das Ergebnis ist die beste Ausgabe.

Auto-Tracing ist oft nicht die beste Option. Wenn Sie nur Pfade wünschen, die Sie streicheln können, schlägt die automatische Verfolgung im Allgemeinen kläglich fehl.

Scott
quelle
Das Bild ist wirklich komplex mit vielen, vielen Zeilen. Haben Sie auch mehr Bilder - einfach zu viel Arbeit - auf der Suche nach einer Alternative ...;)
jm666
außerdem hoffe ich, dass das "tool" eine optimierung durchführt,
zb
Viel Glück! Ich denke wirklich, was Sie verlangen, braucht nur handwerkliches Geschick und Geduld. Ich habe noch nie eine automatisierte Lösung gesehen, bei der es sich gelohnt hat, einzelne Pfade zu erstellen. Ich denke du suchst das Unmögliche ehrlich.
Scott
2
@ Scott, während ich im Allgemeinen mit Ihrem Gefühl in diesem speziellen Fall einverstanden bin, könnte es gerade klappen.
Joojaa
5

Versuchen Sie, Pfade nach dem Trace zu interpolieren, wie hier gezeigt:

Durchschnittlicher Hub von einer Füllung

Sean
quelle
BEEINDRUCKEND. Das sieht SEHR vielversprechend aus. Vielen Dank! +1.
jm666,
@ jm666 Natürlich lässt sich diese Methode nur dann gut automatisieren, wenn Sie sich mit kontinuierlichen Pfaden befassen.
Joojaa
5

Illustrator kann die Mittellinienverfolgung ähnlich wie die automatische Verfolgung durchführen . Es ist für die meisten Dinge nicht besonders nützlich, aber in diesem Fall ist das Bild sehr synthetisch und funktioniert möglicherweise.

Ihr Quellbild ist notorisch schlecht, daher gibt es keinen wirklichen Weg, dies zu versuchen, ohne an Qualität zu verlieren. Ihre Originale sollten besser sein (Sie müssen nicht so gezoomt werden).

Mach das:

  1. Deaktivieren Sie in den Trace-Einstellungen das Füllen und das Aktivieren von Strichen.

  2. Objekt → Erweitern

Bildbeschreibung hier eingeben

Bild 1 : Objekt nach Trace und Expand.

  1. Gehen Sie wie folgt vor, um die Ergebnisse von Ablaufverfolgungsfehlern weiter zu verbessern: Objekt → Pfad → Vereinfachen , gerade Kanten prüfen.

Bildbeschreibung hier eingeben

Bild 2 : Nach der Vereinfachung

  1. Mir scheint, Ihr Bild ist in Linien- und Eckrichtungen etwas eingeschränkt. Wenn dies zutrifft, könnten Sie jetzt versuchen, die Punkte zu quantifizieren, um ein noch besseres (wenn nicht perfektes) Ergebnis zu erzielen.

Bildbeschreibung hier eingeben

Bild 3 : Welche Auswirkung könnte die Quantisierung auf das Ergebnis haben?

PS: Da die Quelle, die Sie geteilt haben, unvollständig ist, würde ich sagen, dass mein Ergebnis ziemlich gut ist. Ich bin damit einverstanden, dass es in diesem Fall im Allgemeinen nicht möglich ist, sich auf die Linienverfolgung zu verlassen.

PPS: Ihre Ecken überlappen sich, dies führt zu Trauer bei Auto-Tracern. Sie können diese mit ein paar Morphologie-Operatoren in z. B. ImageMagick erkennen und beheben, die Tracer VIEL glücklicher machen sollten.

joojaa
quelle
Auch schön. Jetzt mit Autotrace, wegen der einfachen Verwendung der Befehlszeile - für viele Bilder. Das Bitmap-Bild oben ist ein kleiner Teil eines größeren Bildes (1300% Zoom) :) - daher wirkt es verschlechtert. +1, danke.
jm666,
@ jm666 sicher, du kannst auch illustrator von cmd verwenden, wenn du möchtest, aber es ist ein bisschen Arbeit, um anzufangen.
Joojaa
Ich habe versucht, mit der Bildspur des Illustrators und dem Beispiel nur Striche zu verwenden. Ich konnte keine brauchbaren Ergebnisse erzielen. Zugegeben, ich habe nicht viel Zeit dafür aufgewendet, und die Probe ist nicht ideal für die Rückverfolgung. Im Allgemeinen bedeutet die Einstellung der AI-Spur auf nur Striche, dass Sie nur 30-60% des tatsächlichen Bildmaterials nachzeichnen, es sei denn, das Original ist vor der Nachzeichnung ziemlich solide und scharf.
Scott
@Scott Ich habe das Bild wieder auf die ursprüngliche (ish) Größe verkleinert und den Parameter für die Linienbreite so angepasst, dass es einfach funktioniert hat. Wenn Sie Striche unterschiedlicher Breite nachzeichnen, müssen Sie dies möglicherweise in zwei oder drei Durchgängen tun.
Joojaa
2

Ich habe ein gutes Freeware-Tool namens WinTopo gefunden , das für mich die Aufgabe erfüllt hat , nämlich die Verfolgung der Mittellinie.

Die Methode heißt "One-Touch-Vektorisierung" und funktioniert gut.

Da ich aus einem GIS-Kontext komme - in der Pro-Version gibt es eine Option, die Rasterdaten zuerst zu georeferenzieren - könnte dies nützlich sein, noch nicht getestet.

ORiAX
quelle