You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Pillow中Image.quantize方法的kmeans参数?

PIL.Image.quantize的kmeans参数用法说明

PIL.Image.quantize的方法定义如下:

Image.quantize(colors=256, method=None, kmeans=0, palette=None, dither=1)
    colors – 期望输出的颜色数,≤ 256
    kmeans – 整数类型

1. 参数具体使用方式

kmeans仅在未传入自定义palette(即使用程序自动生成调色板)时生效,作用是控制调色板生成阶段的聚类逻辑:

  • 取默认值0时,程序直接使用中位切分法生成符合colors数量要求的调色板,不执行kmeans聚类
  • 取正整数N时,程序会先对图像的所有像素颜色执行kmeans聚类,得到N个聚类中心,再从这N个中心里筛选出出现频率最高的colors个作为最终输出的调色板

2. 常见疑问解答

  • kmeans取值是否需要和colors参数一致?
    不需要,二者没有强制相等的要求,通常建议设置kmeans ≥ colors才能得到符合预期的效果:如果设置kmeans < colors,聚类最多只能得到kmeans个颜色中心,最终输出的实际颜色数最多只能等于kmeans,无法达到你设置的colors数值。
  • 是否可以实现指定10个聚类但仅输出3种颜色,收纳非关注颜色的效果?
    完全可以,这正是该参数的典型使用场景。示例调用代码如下:
# 先聚10类,最终仅输出3种颜色
res_img = origin_img.quantize(colors=3, kmeans=10)

上述代码执行时,会先把图像所有颜色聚为10个类别,再取出现频率最高的3个聚类中心作为最终调色板,其余7个聚类的所有像素都会被映射到这3个最终颜色中距离最近的那个,刚好符合你需要的效果。

内容的提问来源于stack exchange,提问作者P i

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 00:09:01