我正在研究颜色量化算法。
这是基本过程:
- 将图像转换为一组三维向量(例如 RGB 空间)。
- 将该集合放入集合列表中。
- 虽然列表中的套数少于您想要的颜色数:
- 从列表中删除最差的集合。
- 把它一分为二。
- 在列表中添加两个新集。
- 完毕。
我所说的“最差集合”是指每个向量与平均向量之间的累积距离较大的集合。
这就是我“拆分集合”的方式:
- 通过将所有向量相加并除以向量计数来计算平均向量。
- 计算由每个向量与平均向量之间的绝对差组成的向量。对其进行归一化,我们得到一个平面的法线,将我们的向量集分成相等的两半。
- 根据向量属于平面的哪一侧,使用这个法线二将集合分成两组。
这基本上是可行的,但图像调色板看起来很奇怪,就像从线性渐变中挑选出来的......
我的算法完全错误吗?有人可以帮忙吗?