22

我不确定如何减少 PIL 图像的调色板。我想将图像的调色板减少到该图像中的 5 种突出颜色。我的总体目标是做一些基本的颜色采样。

4

3 回答 3

35

这很简单,只需使用未记录的颜色参数:

result = image.convert('P', palette=Image.ADAPTIVE, colors=5)

我正在使用 Image.ADAPTIVE 来避免抖动

于 2009-07-02T14:22:06.167 回答
5

我假设你想做一些比海报化更复杂的事情。正如您所说,“采样”需要一些技巧,因为图像中最常见的 5 种颜色可能彼此相似。也许看看直方图中最分离的 5 个峰。

于 2009-07-01T03:38:51.823 回答
3

简短的回答是使用该Image.quantize方法。有关更多信息,请参阅:如何使用 Python 图像库将任何图像转换为 4 色调色板图像?

于 2009-07-01T20:38:53.030 回答