Convert a line drawing from raster to vector **LINES**

Here are already such questions, like:

… and others.

I have an B&W png image, contains a drawing like an maze, e.g. it contains only lines, no areas.

Need convert it into (any) vector format, but as LINES. Every program what i tried, e.g. VectorMagic, potrace etc. converts the lines into closed path areas.

Small part of the original PNG image – zoomed:
enter image description here

The result of the trace:
enter image description here

As you can see, the “line” is traced from its both side like any other area-like shape.

Looking for a way, how to trace lines into real lines (PATHS), best with the matching line-width. (but would be enough any line with).

The reason behind: need work with the traced lines and nodes, e.g. convert some nodes to bezier and like. Not possible (easily) with shapes.

Any idea:

  • how to get vectorised lines from any tracing program.
  • which tool can do this? (any OS – could use Windows, OS X, Linux..)


Centerline Tracing

There is a free Open Source tool AutoTrace which is able to perform a centerline trace of a line-art bitmap.

enter image description here

Run AutoTrace with at least the following options:

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

enter image description here

We can then fine tune the strokes and add the desired stroke strength..

We may also install the graphical frontend Frontline for AutoTrace in case we are not familiar with the command line.

Linux users may be able to install autotrace provided from their default repositories in most distributions. For Windows there are precompiled packages to download form the project’s page.

There are many additional parameters for AutoTrace which can be found in the application’s man page or by calling it with autotrace -help.

To rather get straight lines than splines we can e.g. use the following parameters:

  • -line-threshold [real]:
    If a spline does not deviate from the straight line defined by its endpoints by more than the specified number of pixels, then treat it as a straight line (default: 1).

  • - line-reversion-threshold [real]:
    If a spline is closer to a straight line than this, weighted by the square of the curve length, keep it a straight line even if it is a list with curves; default is .01.

Source : Link , Question Author : jm666 , Answer Author : Community

Leave a Comment