【发布时间】:2013-09-05 15:54:34
【问题描述】:
是否有任何库可以将光栅图像转换为矢量,将采样颜色的数量限制为特定的集合?类似于VectorMagic 中所做的事情,但提供了要使用的颜色子集。
【问题讨论】:
标签: image algorithm colors vectorization color-palette
是否有任何库可以将光栅图像转换为矢量,将采样颜色的数量限制为特定的集合?类似于VectorMagic 中所做的事情,但提供了要使用的颜色子集。
【问题讨论】:
标签: image algorithm colors vectorization color-palette
Imagetracer 是一个免费的开源(公共领域)库和应用程序,可能很有用。免责声明:这些都是我做的。
如果你需要一个命令行应用程序,我推荐 ImageTracer.jar from
https://github.com/jankovicsandras/imagetracerjava
有这样的选项
java -jar ImageTracer.jar input.png outfilename output.svg numberofcolors 4
将颜色数限制为 4 种。如果从 Java 程序调用该库,则可以使用自定义调色板,还有许多其他选项。
您可以通过浏览器或 Node.js 使用 JavaScript 版本: https://github.com/jankovicsandras/imagetracerjs
【讨论】:
有一个开源库/程序potrace 可以执行精细的矢量化。问题是它首先将输入图像转换为发光图像,然后将其二值化。此步骤是可选的,由单独的程序完成,因此您可以使用 potrace,但以不同的方式,通过构建自己的多个二值化图像版本。我认为 VectorMagic 会根据输入图像的梯度/拉普拉斯算子构建其轮廓,这就是为什么您不能强加任何颜色集的原因。
如果您有一个颜色子集用作输入,我建议您遵循以下算法:
最后,你会得到一组轮廓。也许轮廓不会完全匹配,但会足够接近让您简化它们并正确删除轮廓的双倍。
【讨论】: