光栅到矢量转换库

时间:2013-09-02 13:53:45

标签: image algorithm colors vectorization color-palette

是否有用于将光栅图像转换为矢量的库,将采样颜色的数量限制为特定的一组?像VectorMagic中所做的那样,但是要使用一部分颜色。

2 个答案:

答案 0 :(得分:1)

开源库/程序potrace执行精细的矢量化。问题是它首先将输入图像转换为luminensce图像,然后将其二值化。这个步骤是可选的,由一个单独的程序完成,所以你可以通过构建自己的几个版本的二值化图像以不同的方式使用potrace。我认为VectorMagic基于输入图像的渐变/拉普拉斯来构建轮廓,这就是为什么你不能施加任何颜色的原因。

如果您有一个颜色子集用作输入,我建议您使用以下算法:

  • 对于输入颜色子集的每种颜色,找到颜色空间的子空间,该子空间与所选颜色“最接近”而不是任何其他颜色。像计算输入子集的Voronoi分区的算法一样可以很好地完成工作;例如,使用qhull
  • 对于每个子空间,将输入图像二值化,如果在子空间内则绘制每个像素白色,否则绘制黑色。然后在其上应用potrace或VectorMagic的矢量化。

最后,您将获得一组轮廓。也许轮廓不完全匹配,但是会有足够的距离让你简化它们并删除正确的轮廓加倍。

答案 1 :(得分:1)

Imagetracer是一个免费的开源(公共域)库和应用程序,可能很有用。免责声明:我做了这些。

如果您需要命令行应用程序,我建议使用

中的ImageTracer.jar

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