如何在Java中将线从栅格转换为向量?

Bar*_*man 5 java graphics vector bitmap vector-graphics

我正在寻找一种将栅格(位图)手绘线转换为一组近似路径的矢量的方法。

首先,为此是否有公共Java库或算法?

具体来说,鉴于下面以位图格式绘制的手绘线,我想要构成橙色线的一组矢量。理想情况下,我不希望矢量紧贴位图。像下面的橙色线一样,它应包含在一定可配置误差范围内跟随该线的最小顶点数。

在此处输入图片说明

提前致谢!

And*_*ras 4

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

https://github.com/jankovicsandras/imagetracerjava

您可以获得具有如下路径坐标的对象:

import jankovicsandras.imagetracer.ImageTracer;
...
HashMap<String,Float> options = new HashMap<String,Float>();

options.put( "ltres", 2f ); // Linear error treshold
options.put( "qtres", 2f ); // Quadratic spline error treshold

IndexedImage myimage = ImageTracer.imageToTracedata( "input.jpg", options, null );

ArrayList<ArrayList<ArrayList<Double[]>>> mylayers = myimage.layers;
... process coordinates in mylayers
Run Code Online (Sandbox Code Playgroud)

在哪里

ArrayList<ArrayList<ArrayList<Double[]>>> layers
Run Code Online (Sandbox Code Playgroud)

大致意思是 ArrayList of color layers < ArrayList of paths < ArrayList of line segments < double x, y, type:straight or quadratic spline > > >