一尘不染

缩小图像调色板

algorithm

我是第一次玩计算机图形程序。我想将RGB(24位)图像转换为索引调色板(8位)图像(如GIF)。我最初的想法是使用k-均值(k = 256)。

如何为给定图像选择最佳调色板?对我来说,这是一次学习的经历,因此我希望对源代码使用概述型答案。

编辑: 抖动当前是题外话。我仅指的是“简单”的颜色转换,除了心理视觉/感知模型以外;颜色空间目前也离题,尽管我首先想到的是在颜色空间之间移动:)


阅读 195

收藏
2020-07-28

共1个答案

一尘不染

编辑: 更新以支持256色调色板

如果您需要最简单的方法,那么我建议基于直方图的方法:

计算R / G / B通道的直方图
定义4个强度范围
对于强度范围内的每个通道
  将直方图分成4个相等的部分
  对于每个直方图部分
    提取该部分最频繁的值

现在您将拥有4 * 4 ^ 3 =
256个调色板。将像素分配给调色板颜色时,只需计算像素的平均强度即可查看必须使用的强度区域。之后,只需将强度区域的这64种颜色之一映射到像素值即可。

祝好运。

2020-07-28