0

假设我有一张未指定颜色深度和尺寸的图像。
有什么方法可以将其压缩为 n 调色板?
我的 google-fu 在这个方面很弱。

4

2 回答 2

1

这个问题被称为颜色量化。例如,参见pngquant

如果您正在寻找算法,请搜索 Median Cut、Octtree、K-Means、Linde-Buzo-Gray、NeuQuant。理想情况下在 Google Scholar 上,因为常规结果是通过隐藏付费墙来发送垃圾邮件的。

于 2012-01-02T01:52:41.343 回答
1

那么最简单的方法就是查看图像并创建一个字典,将像素颜色映射到整数。对于每个像素,如果其颜色在字典中,则增加其计数。如果不是,则将其计数为 1。这将为您提供每种颜色在图像中出现的次数。

然后,按计数排序,您将在图像中找到 256 种最常见的颜色。这些颜色构成了您的调色板。

然后,再次迭代图像。对于每个像素,找到最接近该像素颜色的调色板颜色,并将该像素的索引设置为该调色板索引。

这将是一个很好的“第一次”,但在具有很多颜色的图像中,它可能无法很好地找到调色板。在字典阶段,您可能希望组合“足够接近”的颜色,以避免许多非常相似的颜色都得分不佳,即使它们在一起很常见。

为了获得更好的结果,您将需要查看抖动技术。

于 2010-12-11T00:47:51.710 回答