将线条图从光栅转换为矢量**LINES**

平面设计 向量 墨景 转变 位图
2021-12-28 14:28:09

这里已经有这样的问题,比如:

... 和别的。

我有一个黑白 png 图像,包含一个像迷宫一样的绘图,例如它只包含线条,没有区域。

需要将其转换为(任何)矢量格式,但为 LINES我尝试过的每个程序,例如 VectorMagic、potrace 等,都将线条转换为闭合路径区域。

原始PNG图像的一小部分 - 放大: 在此处输入图像描述

追踪结果: 在此处输入图像描述

如您所见,“线”是从它的两侧追踪的,就像任何其他类似区域的形状一样。

寻找一种方法,如何将线条追踪到真实线条(PATHS),最好使用匹配的线宽。(但任何一条线都足够了)。

背后的原因:需要处理跟踪的线和节点,例如将一些节点转换为贝塞尔曲线等。不可能(很容易)使用形状。

任何想法:

  • 如何从任何跟踪程序中获取矢量化线。
  • 哪个工具可以做到这一点?(任何操作系统 - 可以使用 Windows、OS X、Linux..)
4个回答

中心线追踪

有一个免费的开源工具AutoTrace,它能够执行艺术线条位图的中心线跟踪。

在此处输入图像描述

至少使用以下选项运行AutoTrace :

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

在此处输入图像描述

然后我们可以微调笔画并添加所需的笔画强度。

如果我们不熟悉命令行,我们也可以为 AutoTrace 安装图形前端Frontline 。

Linux 用户可能能够在大多数发行版中安装从他们的默认存储库中提供的自动跟踪。对于 Windows,可以从项目页面下载预编译包。

AutoTrace 有许多附加参数,可以在应用程序的手册页中找到,也可以使用autotrace -help.

为了获得直线而不是样条曲线,我们可以使用以下参数:

  • -line-threshold [real]
    如果样条线与其端点定义的直线的偏差不超过指定的像素数,则将其视为直线(默认值:1)。

  • - line-reversion-threshold [real]
    如果样条曲线比这更接近直线,按曲线长度的平方加权,即使它是带有曲线的列表,也保持直线;默认值为 0.01。

更新

在最近的版本(Inkscape 1.0+)中,使用自动跟踪的中心线跟踪包含Inkscape 中,通过Path > Trace Bitmap

在此处输入图像描述


* 参考:Inkscape 1.0 发行说明

老实说……拿起钢笔工具并手动追踪路径。它会产生最好的输出。

自动跟踪通常不是最佳选择。当您只想要可以描边的路径时,自动跟踪通常会失败。

尝试在跟踪后使用插值路径,如下所示:

填充的平均行程

Illustrator 可以像autotrace一样进行中心线跟踪它对大多数事情都不是超级有用,但在这种情况下,图像是高度合成的,它可能会起作用。

你的源图像是出了名的糟糕,所以没有真正的方法可以在不损失质量的情况下尝试这个,你的原件应该更好(不需要如此放大)

做这个:

  1. 在跟踪设置中禁用填充并启用笔触。

  2. 对象 → 展开

在此处输入图像描述

图 1:跟踪和扩展后的对象。

  1. 要进一步增强任何跟踪错误的结果,请执行以下操作:对象 → 路径 → 简化,检查直边。

在此处输入图像描述

图 2:简化后

  1. 在我看来,您的图像在线条方向和角落位置上有些限制,如果那是真的,您现在可以尝试量化这些点以获得更好(如果不是完美)的结果。

在此处输入图像描述

图 3:量化可能对结果产生什么影响。

PS:鉴于您共享的来源不完整,我会说我的结果非常好。虽然我同意一般来说不可能依赖线路跟踪,但在这种情况下它会起作用。

PPS:您的角重叠,这会导致自动跟踪器有些麻烦您可以使用 ImageMagick 中的一些形态学运算符检测和修复这些问题,这应该使跟踪器更快乐。