2014-04-07 34 views
3

我正在寻找一种方法将栅格(位图)手绘线条转换为一组近似路径的向量。如何将一行从光栅转换为Java中的矢量?

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

具体地,给出以下位图格式,我想向量集合组成橙色线的手绘线。理想情况下,我不希望矢量太紧密地跟随位图。像下面的橙线一样,它应该包含在某个可配置的误差范围内的线后的最小数量的顶点。

enter image description here

在此先感谢!

+1

检查这篇文章:HTTP:// www.cs.mtu.edu/~shene/COURSES/cs3621/N OTES/INT-APP/CURVE-APP-global.html – Danstahr

回答

1

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 

其中

ArrayList<ArrayList<ArrayList<Double[]>>> layers 

意味着大约 ArrayList of color layers < ArrayList of paths < ArrayList of line segments < double x, y, type:straight or quadratic spline > > >

相关问题