1

我有一个学习任务,我需要编写一个 Java 程序来跟踪(矢量化)图像。

我只能使用 JDK 1.5 及更高版本;所以,我必须在需要的地方实现一些算法。

该程序必须通过以下步骤:

  1. 色彩还原(色彩量化);[对于一组颜色或最大颜色数]
  2. 移除区域[具有给定的最大尺寸]
  3. 边缘检测
  4. 简化段[最小是 Douglas-Peucker 算法]
  5. 圆弧段为曲线
  6. 输出到 SVG

我想确保尽可能使用 JDK API。然而,我之前的研究并没有真正找到很多有用的资源。(迄今为止最有用的资源是 JAI 的 Sun 文档——Java Advanced Imaging API——在这个位置

我的问题是:JDK 中的类可以处理或促进这些步骤中的哪一个?


由于这是一个相当全面的问题,因此我会尽可能提供 250 分的赏金。

4

3 回答 3

1

图像处理工具的 Java 选择是JAI。有可用的文档,并且与其他 Java 工具兼容。

您是否需要实现此类图像处理任务和算法,或者只是应用并获得它们的效果?即使您可能宁愿使用纯 JDK,我也坚持要使用外部库来帮助。FMHO 将是最好的选择。

我建议去Open CV,一个非常完整和稳定的图像处理库。它现在具有 Java 支持和良好的文档可用性,而且您还会发现一个受损的社区

像你提到的东西:

  1. 色彩还原(色彩量化);[对于一组颜色或最大颜色数]
  2. 移除区域[具有给定的最大尺寸]
  3. 边缘检测 简化分段 [最少是 Douglas-Peucker 算法]
  4. 圆弧段为曲线

就像使用库函数和关于 SVG 一样简单,我认为它也可以用它来执行。

于 2013-11-14T23:05:39.220 回答
1

使用 JDK 编写的类可以处理图像跟踪过程的所有方面(由于 Java 是图灵完备的并且存在图像跟踪器,它们可以在 Java - QED 中实现)。至于您的具体查询领域,

1) 是的!JAI 包括量化方法。
6) 是的!试试Batik SVG Toolkit,尤其是SVG Generator
2-5)你将不得不实施。4)特别是看起来有一些可用的实现,但我没有详细调查。
于 2013-11-11T16:29:17.580 回答
1

What parts of the image tracing process can be handled by classes in the JDK?

Java can handle all the processes required by your image processing program, no problem. The real question is , do you want to write your own classes or use a 3rd party library ?

于 2013-11-16T13:52:52.107 回答