Wie kann man diese Umrissartefakte in einer Inkscape-SVG-Spur entfernen?

Ich kann in Inkscape gute Trace-Ergebnisse erzielen, wenn ich eine Bitmap in ein Vektorbild umwandele - mit Ausnahme dieser hartnäckigen Artefakte mit dünnen Umrissen. Sie ähneln einer topografischen Karte und ruinieren ziemlich die Spur.

„topografische“ Umrissartefakte

Auf diesen Pfaden gibt es keine Striche, nur Füllungen. Es sollten also keine sichtbaren Umrisse vorhanden sein.

Schlaganfall deaktiviert

Falls es hilft, hier sind meine Trace-Einstellungen:Inkscape-Trace-Einstellungen

Solche Artefakte treten auch in Illustrator-Spuren auf. Aber speziell suche ich eine Lösung, um sie in Inkscape-SVGs zu verhindern oder zu entfernen.

Antworten (3)

Das Problem liegt im Grunde in der Art und Weise, wie Inkscape entscheidet, Ihr Bild in Farbbereiche aufzuteilen: Anstatt einfach die helleren Farben die dunkleren überlappen zu lassen (oder umgekehrt), erhalten Sie am Ende zwei benachbarte Farbbereiche, die beide ein Drittel überlappen Farbe.

Da die Kanten nicht perfekt ausgerichtet sind (aufgrund von Ungenauigkeiten bei der Verfolgung und auch einigen grundlegenden Einschränkungen beim Rendern von Vektorbildern mit Anti-Aliasing), wird ein Teil dieser dritten Farbe durch die Lücke sichtbar und erzeugt die "Kante", die Sie sind Sehen.

Leider kenne ich keine gute Möglichkeit, dieses Problem zu beheben. Sie können die Hintergrundfarben entfernen, indem Sie das Kontrollkästchen "Stapelscans" deaktivieren, aber dann erhalten Sie transparente Lücken zwischen allen Pfaden, was im Allgemeinen noch schlimmer ist. Manchmal ist es möglich , akzeptable Ergebnisse zu erzielen, indem Sie das Bild mit deaktiviertem "Stack Scans" nachzeichnen und dann einen kleinen Anfang (z. B. 0,5 px) auf alle resultierenden Pfade anwenden, um die Lücken zu füllen, aber erwarten Sie dies nicht um feine Details sehr gut zu erhalten.

Für Ihr spezifisches Beispielbild könnte eine mögliche Lösung darin bestehen, es in Graustufen nachzuzeichnen (dh "Graustufen" anstelle von "Farben" auszuwählen) und das nachgezeichnete Bild anschließend neu einzufärben; Der Graustufen-Tracing-Modus scheint nicht unter diesem Problem zu leiden (was ich wirklich als Fehler oder zumindest als Designfehler in Inkscapes Farb-Bitmap-Tracing betrachten würde). Dies funktioniert natürlich nur gut für Bilder, die im Wesentlichen einfarbig sind oder ansonsten eine einfache und leicht wiederherstellbare Farbgebung aufweisen.

Du hast Recht. Ich fand, dass das Deaktivieren von "Stapelscans", das Aufheben der Gruppierung des Objekts und das Anwenden eines Anfangs die beste "schnelle Lösung" war, aber wie Sie sagten, wurden Details nicht gut beibehalten. Am Ende habe ich die Scans gestapelt und mit nur 32 Farben gescannt, was in meinem Fall ausreichend war. Ich habe dann jeden Pfad schrittweise mit Umschalt + Pfeiltasten verteilt, die Teile der Pfade gelöscht, die sich mit unterschiedlichen Farben überlappten, und sie dann neu ausgerichtet. Es war mühsam, gab mir aber die kleine Dateigröße und Skalierbarkeit, die ich brauchte (auf einem Logo für die Verwendung im Internet). Ich empfehle nicht, dies in großen Mengen zu versuchen.

Die Artefakte, die Sie erleben, stammen von den angeblich unsichtbaren Strichen am äußeren Rand der gestapelten Objekte, die für jede beim Nachzeichnen ausgewählte Farbe erstellt wurden.

Artefakte können schlimmer werden, wenn wir vor dem Nachzeichnen eine Gaußsche Unschärfe auf die Bitmap angewendet haben. Dies erfolgt über die smoothOption im Inkscape-Nachverfolgungsdialog. Daher war es eine gute Idee, diese Option nicht zu aktivieren.

Geben Sie hier die Bildbeschreibung ein Reproduktion der Linienartefakte

Definieren Sie einen Strich mit der Füllfarbe

Jetzt das Artefakt loszuwerden ist etwas umständlich. Wir müssen für jedes der 256 Farbobjekte, die wir erstellt haben, einen Strich erstellen und die Strichfarbe identisch mit seiner Füllfarbe einstellen.

  1. Gruppierung der ausgewählten gestapelten Objekte aufheben ( Shift+ Ctrl+ G)

  2. Wählen Sie ein Objekt aus (Pfadmodus hilft zu sehen, dass wir das richtige ausgewählt haben):

    Geben Sie hier die Bildbeschreibung ein

  3. Öffnen Sie das Dialogfeld Objekt > Füllung und KonturShiftCtrlF

  4. Kopieren Sie die Füllfarbe auf der Registerkarte Füllung

  5. Öffnen Sie die Registerkarte Strichfarbe und erstellen Sie einen flachen Farbstrich mit einer Breite von 1 px.

  6. Fügen Sie die Füllfarbe in die Strichfarbe ein:

    Geben Sie hier die Bildbeschreibung ein

  7. Wiederholen Sie 2. bis 6. für jedes der Objekte in unserer Spur.

    Geben Sie hier die Bildbeschreibung ein Es wurde nur eine einzige Zeile entfernt

Möglicherweise finden wir ein Skript oder externes Plugin, das es ermöglicht, die Strichfarbe zu definieren, die der Füllfarbe für jedes Objekt einer SVG entspricht, aber meine vorläufige Suche dazu war leider negativ.

Um auch den noch sichtbaren Farbschritt zwischen benachbarten Objekten zu entfernen, können wir den Objekten einen Unschärfeeffekt hinzufügen, aber dies führt zu einer enormen Verlängerung der Renderzeit des SVG.

Danke, aber wenn Sie ein SVG mit mehr Farben haben, wird deutlich, dass das eigentliche Problem das Stapeln von Pfaden ist, wie Ilmari erklärte, und nicht die "angeblich unsichtbaren Striche". Zuerst dachte ich auch, es sei ein Schlaganfallproblem. Sie haben recht damit, die Smooth-Einstellung auszuschalten. Ich habe jedoch zuerst Ihren Rat ausprobiert und festgestellt, dass das Hinzufügen von Strichen durch Ändern des XML-Codes in der SVG-Datei nicht so schwierig ist - Sie müssen nur für jede Farbe / jeden Pfad kopieren / einfügen. Wenn Sie mit 32 Farben nachzeichnen, erhalten Sie 32 Pfade (31, wenn Sie den Hintergrund entfernen). Könnte ein Python-Skript schreiben, um dies zu automatisieren, aber es ist nicht die Lösung.

Ich verwende Inkscape 0.91 r13725 auf Debian 8

Gehen Sie zu: Filter => Blur => Cross Blur

Ich habe die Helligkeit auf 0 gelassen, Fading auf 0

Ich schätze, dass die Lücken 1 Pixel waren. Ich habe die horizontale Unschärfe auf 0,50 eingestellt. Ich habe die vertikale Unschärfe auf 0,50 eingestellt

und es gab eine merkliche Verbesserung, aber nicht perfekt. Hoffentlich trägt dies zu der Perfektion bei, die Sie suchen. Das Bild war zu groß für meinen schwachen Laptop, um viel zu experimentieren.