我正在研究一种颜色量化算法。
这是基本过程:
我所说的“最差集合”是指每个向量与平均向量之间的累积距离越大的集合。
这就是我“分裂一套”的方式:
这基本上可行,但是图像调色板看起来很奇怪,就像从线性渐变中挑选出来一样......
我的算法是否错误?有人可以帮忙吗?
答案 0 :(得分:3)
问题是你的算法在初始集上依赖很多。因为您只拆分集,如果两个彼此非常接近的点恰好在开头处于不同的集合中,则它们将始终处于不同的集合中。这不好。
所以是的 - 这比k-means算法更糟糕。
答案 1 :(得分:1)
我没有看到这比k-means算法更好。也许你应该只做普通的k-means。
答案 2 :(得分:1)
颜色量化的第一步是从N种颜色中选择代表性的K颜色
然而,对于具有如此多颜色的图像,一些渐变/条带问题是不可避免的
然后误差扩散和抖动通过使用可用颜色近似不可用的颜色,通过混合和匹配可用颜色以模仿不可用的颜色来实现。
Top 6 color quantization algorithms。
这里有一些输出示例:
原始图片:
NeuQuant神经网络量化算法减少到256色:
Xialoin Wu的快速最佳色彩量化算法降低到256色:
原始照片:
NeuQuant神经网络量化算法减少到256色:
通过成对最近邻量化算法减少到256色:
读者可以看到误差扩散的编码和抖动在前5种颜色量化算法中非常相似。
每种算法都有自己的优点。我分享了颜色量化的来源,以便进一步讨论和改进
这些源代码是用C ++编写的,以获得最佳性能。
它也是学习机器学习的开端。