Image 光栅到矢量转换库

Image 光栅到矢量转换库,image,algorithm,colors,vectorization,color-palette,Image,Algorithm,Colors,Vectorization,Color Palette,是否有用于将光栅图像转换为矢量图像的库,将采样颜色的数量限制在特定集合内?类似于在中所做的事情,但给出了要使用的颜色子集。有一个执行精细矢量化的开源库/程序。问题是它首先将输入图像转换为发光图像,然后对其进行二值化。这一步是可选的,由一个单独的程序完成,因此您可以使用potrace,但方式不同,您可以自己构造多个版本的二值化图像。我认为VectorMagic是基于输入图像的梯度/拉普拉斯曲线构建其轮廓的,这就是为什么你不能强加任何一组颜色 如果有颜色子集用作输入,我建议您遵循以下算法: 对于输

是否有用于将光栅图像转换为矢量图像的库,将采样颜色的数量限制在特定集合内?类似于在中所做的事情,但给出了要使用的颜色子集。

有一个执行精细矢量化的开源库/程序。问题是它首先将输入图像转换为发光图像,然后对其进行二值化。这一步是可选的,由一个单独的程序完成,因此您可以使用potrace,但方式不同,您可以自己构造多个版本的二值化图像。我认为VectorMagic是基于输入图像的梯度/拉普拉斯曲线构建其轮廓的,这就是为什么你不能强加任何一组颜色

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

  • 对于输入颜色子集的每种颜色,找到颜色空间的子空间,该子空间距离所选颜色“最近”,而不是任何其他颜色。类似于计算输入子集的Voronoi划分的算法可以立即很好地完成这项工作;举个例子
  • 对于每个子空间,对输入图像进行二值化,如果在子空间内,则将每个像素绘制为白色,否则绘制为黑色。然后在其上应用potrace或VectorMagic的矢量化

最后,您将获得一组轮廓。也许等高线不会精确匹配,但会有足够的距离让您简化等高线并正确删除等高线。

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

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

有这样的选择吗

java-jar ImageTracer.jar input.png outfilename output.svg numberofcolors 4

将颜色数限制为4。如果从Java程序调用库,可以使用自定义调色板,还有许多其他选项

您可以从浏览器或Node.js使用JavaScript版本:

您也可以在HSB颜色空间中分割/聚类图像,然后将轮廓用作分层图像。之后,你可以用杂烩。