5

首先,我不习惯处理图像,所以如果我的措辞不对,请原谅。

我正在寻找一个放在 HTML5 画布上的图像,对其进行采样,减少采样,然后使用主要是三角形和一些其他多边形来创建图像的多边形表示,并将该图像绘制到画布上。

但是我不知道从哪里开始使用算法来做到这一点。这种算法需要什么样的伪代码?

此图像可以更好地理解最终结果:

4

2 回答 2

5

我会做以下事情:

  1. 创建一个由随机放置的点组成的字段。
  2. 从点 创建一个Voronoi 图。
  3. 根据对颜色的采样为每个单元格着色。
    • 你只是在点上选择颜色吗?对单元格内的所有颜色进行采样并将它们平均?按单元格中心加权平均值?每个都会产生不同但可能有趣的结果。

如果结果需要是三角形而不是多边形,则创建一个Delaunay triangulation而不是 Voronoi 图。GitHub为此提供了 15 个 JavaScript 库,但我还没有尝试任何能够专门推荐的库。

于 2013-04-03T13:03:08.860 回答
4

好吧,这有点间接,但是这里......!

这是一个 SVG 插件,可将图像转换为点化艺术:https ://github.com/gsmith85/SeuratJS/blob/master/seurat.js

这是有趣的部分。在引擎盖下,它使用画布进行处理!

示例显示由“点”和“正方形”组成的图像。

也许您可以修改代码来生成三角形——甚至只是对角切割正方形来创建三角形。

于 2013-04-02T19:58:21.663 回答