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

如何将图像的颜色数量精准减少到指定的固定数值?

你提供的原始图像直方图如下:
图像直方图

将图像调整为仅包含10种不同颜色属于色彩量化操作,处理后直方图就会仅保留10个取值,以下是两种常用的实现方式:

方法1:直接调用图像处理库现成接口(最快实现)

以Python的PIL库为例,只需要几行代码就能完成:

from PIL import Image

# 读取本地图像
img = Image.open("你的图像存储路径")
# 直接量化为10种颜色
quantized_img = img.quantize(colors=10)
# 保存处理后的图像
quantized_img.save("输出路径/量化后图像.png")

这个方法底层默认用的是中值切割量化算法,处理速度快,色彩过渡也比较自然。

方法2:基于K-means聚类自定义实现(灵活度更高)

如果你需要自定义量化规则,比如优先保留占比最高的10种颜色,可以用K-means聚类自行实现:

  • 把图像像素从(高度, 宽度, 3)的三维格式展平为(总像素数, 3)的二维数组
  • 对所有像素的RGB值做K-means聚类,设置聚类数量为10,得到的10个聚类中心就是最终保留的10种颜色
  • 遍历每个原始像素,将其替换为距离最近的聚类中心的RGB值
  • 把处理后的像素数组恢复为原图像尺寸即可

两种方法处理后得到的图像都只会包含10种不同的颜色,对应的直方图也只会有10个非零取值,完全符合需求。

内容的提问来源于stack exchange,提问作者Toby Maguire

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 13:54:05