KMeans色彩聚类完整指南

如果你手里有一张海报、一组产品图,或者一个完整的图片素材库,想知道“这些图片的主色到底是什么”、“每种颜色占多少”、“不同图片之间有没有稳定的色彩结构”,那么基于 KMeans 的色彩聚类通常是一个非常直接、也非常高效的起点。

MCDM Online 的 KMeans色彩聚类分析 工具,既可以处理单张图片,也可以处理整个文件夹的多张图片。前者适合快速提取主色和占比,后者除了逐图分析之外,还能继续做二次聚类,得到图库级别的主色分布和色彩网络关系。

<div style=“text-align: center;”> <img src=“/blog/figures/kmeans-color-clustering/01-overview-interface.png” width=“500” alt=“KMeans色彩聚类分析界面”> </div>

为什么要做色彩聚类

图片里的颜色往往非常多,肉眼看到的是“整体观感”,但在分析、设计和整理素材时,我们更需要一组可量化的结果。

KMeans 色彩聚类做的事情,本质上是把大量像素压缩成若干个代表性色彩,让原本难以描述的颜色结构变得可统计、可比较、可复用。

常见用途包括:

  • 提取单张图片的主色调,用于配色、品牌视觉整理和界面设计
  • 分析一组图片的整体色彩风格,判断图库是否统一
  • 对艺术作品、海报、产品图做风格研究,比较不同样本之间的色彩差异
  • 从参考图中提炼配色卡,直接拿去做设计延展
  • 在图片数据清洗前,先快速了解样本的颜色结构

如果你处理的是“单张图”,你会更关心主色、比例和色卡。

如果你处理的是“一个文件夹”,你通常还会关心两件事:

  • 这批图片整体最常出现的颜色是什么
  • 哪些颜色经常在同一张图片里一起出现

这就是二次聚类和色彩网络图发挥价值的地方。

这套工具能做什么

这套功能不是单纯输出几个颜色值,而是把单图分析和图库分析拆成了两个层级。

单张图片分析

上传一张 jpgjpegpng 图片后,工具会对图片像素进行聚类,并输出:

  • 主色及其占比
  • RGB、HSV、Lab、HEX 等多种色彩表示
  • 提取结果图、柱状图、饼图、色卡和色卡详情图

这类结果适合用于“快速提炼”和“直接引用”,比如写设计说明、生成配色方案,或者做图片风格摘要。

文件夹批量分析

如果上传的是一个包含多张图片的文件夹,工具会先对每张图片分别做一次色彩聚类,然后再把每张图提取出的主色放到更高一级做二次聚类。

相比单图模式,批量模式多了几个很有价值的能力:

  • 统计整批图片的主色结构
  • 生成拼接总图,快速观察图库整体色调
  • 生成色彩网络图,查看颜色的共现关系
  • 在 Excel 中按图片名分别保存主色数据,便于继续做汇总分析

如果你做的是品牌样张分析、电商商品图整理、展览作品整理、社媒视觉复盘,这部分输出会非常有用。

二次聚类流程示意

为了方便理解文件夹批量分析中的核心逻辑,下图展示了二次聚类的串行流程:先提取每张图片的主色,再拼接形成总览图,随后对这张拼接总图再次执行 KMeans,并基于主色共现关系绘制网络图。

flowchart TD
    A[选择图片文件夹] --> B[逐张读取图片]
    B --> C[使用 KMeans 提取每张图片的主色]
    C --> D[按主色占比生成每张图片的色条]
    D --> E[拼接所有图片主色形成新的总览图片]
    E --> F[对拼接总图再次执行 KMeans 聚类]
    F --> G[得到图库级主色类别与整体占比]
    G --> H[输出二次聚类结果]
    C --> I[统计主色在同一张图片中的共现频次]
    I --> J[按共现关系绘制色彩网络关系图]
    E --> K[输出拼接总图]
    J --> L[输出色彩网络图]

实际操作流程

从使用角度看,整个流程可以概括为三步:选图、设参、看结果。

第一步:选择单张图片或整个文件夹

如果只是分析一张图,直接点击“打开图片”即可。这种模式上手最快,适合先试参数、先看效果。

<div style=“text-align: center;”> <img src=“/blog/figures/kmeans-color-clustering/02-open-image-dialog.png” width=“600” alt=“打开单张图片窗口”> </div>

如果要分析一批图片,需要点击“打开文件夹”。只有在文件夹模式下,后续才可以开启二次聚类,因为二次聚类依赖多张图片之间的主色集合。

<div style=“text-align: center;”> <img src=“/blog/figures/kmeans-color-clustering/03-open-folder-dialog.png” width=“600” alt=“打开图片文件夹窗口”> </div>

一个简单判断标准是:

  • 想知道“这张图的主色是什么”,选单图
  • 想知道“这批图整体偏什么颜色”,选文件夹

第二步:配置参数

参数不算多,但不同设置会明显影响结果的“稳定性”和“解释方式”。

<div style=“text-align: center;”> <img src=“/blog/figures/kmeans-color-clustering/04-parameter-settings.png” width=“600” alt=“参数配置界面”> </div>

1. 色彩空间

工具支持 LabHSVRGB 三种色彩空间。

可以这样理解:

  • RGB:最直观,适合一般场景,方便和设计、开发直接对接
  • HSV:更接近人对色调、饱和度、明度的理解,适合做色系区分
  • Lab:更强调感知均匀性,适合希望聚类结果更贴近视觉差异的情况

如果你只是第一次使用,建议先从 LabRGB 开始。

如果你的重点是比较不同色相之间的差异,比如分析冷暖色、品牌主色系或作品色调风格,可以尝试 HSV

2. 透明背景处理

如果图片带透明背景,这一步非常关键。否则透明区域可能被默认颜色干扰,影响主色识别。

当前版本提供三种处理方式:

  • 忽略透明像素:更适合透明背景素材、图标、PNG 贴图
  • 转换为白色:适合最终会放在白底页面、文档或商品图背景上的素材
  • 转换为黑色:适合最终会放在深色背景上的素材

如果你分析的是抠图素材,通常优先考虑“忽略透明像素”。

透明 Alpha 阈值用于判断像素是否足够透明。阈值越高,被当作透明像素排除或转换的范围越大;阈值越低,只有更接近完全透明的像素才会被处理。对于常规 PNG 素材,默认值通常够用;如果边缘半透明像素较多,可以根据结果适当调整。

3. 滤波方法与窗口大小

工具支持不滤波、均值滤波和中值滤波。

  • 不滤波:适合原图本身比较干净、你又不希望损失细节的情况
  • 均值滤波:适合整体噪点较多的图片,但会让边缘更平滑
  • 中值滤波:对离散噪声更稳,也更适合保留边界

只有选择均值滤波或中值滤波时,窗口大小才会参与计算;如果选择“不滤波”,窗口大小会被禁用。窗口越大,去噪越强,但细节损失也越明显。

一般可以按这个经验来选:

图片情况 推荐设置
图片本身干净、颜色块明显 不滤波
有轻微噪点、压缩痕迹 3x3 中值滤波
噪点较多、颜色分散 3x3 或 5x5 均值/中值滤波

如果你发现聚类结果里出现很多“零碎小色块”,适当滤波往往会更好。

4. 聚类数怎么定

这是最核心的一个参数。

当前版本直接输入聚类数量,也就是希望把单张图片压缩成多少个代表色。聚类数越少,结果越概括;聚类数越多,能保留更多颜色细节,但也更容易把阴影、噪点或渐变拆成多个相近颜色。

如果是论文、报告或批量项目,为了让不同样本可比,建议固定一个聚类数。截图中的默认值为 9,适合多数配色分析场景;如果只是提炼主色,可以适当降低;如果素材颜色复杂,可以适当提高。

一个常用经验范围是:

分析目标 建议聚类数
只提炼主色调 3-5
做常规配色分析 5-8
想保留更多细节 8-12

5. 二次聚类参数

二次聚类现在通过“启用二次聚类(仅批量)”开关控制。只有分析文件夹时,这个开关才有实际意义;单张图片没有跨图片的主色集合,不需要做二次聚类。

开启二次聚类后,需要关注两个参数:

  • 二次聚类数
  • 共现阈值(%)

二次聚类数决定的是“整批图片的主色最终再归并成几类”。

共现阈值影响的是色彩网络图里哪些连线会被保留。阈值越高,图会越简洁,只保留高频共现关系;阈值越低,图会更丰富,但也更容易显得杂乱。当前界面以百分比形式填写,例如 20 表示按 20% 的阈值过滤颜色共现关系。

如果你第一次做图库分析,建议先用偏保守的阈值,先看主结构,再逐步放开。

6. 绘图字体与字体大小

绘图字体和字体大小会影响柱状图、饼图、色卡详情图和网络图中的文字显示。

如果结果图里有中文,建议选择系统里稳定可用的中文字体,例如截图中的“微软雅黑”。字体大小不影响聚类计算结果,只影响导出图片的可读性。用于论文、汇报或公众号配图时,可以适当调大;如果色卡数量较多,则需要避免字号过大导致文字拥挤。

结果文件里有什么

点击“开始计算”后,系统会让你选择结果保存目录。处理结束后,通常会得到两类内容:

  • 一个 Excel 文件
  • 一个图片结果文件夹

<div style=“text-align: center;”> <img src=“/blog/figures/kmeans-color-clustering/08-processing-progress.png” width=“600” alt=“计算进度界面”> </div>

<div style=“text-align: center;”> <img src=“/blog/figures/kmeans-color-clustering/09-output-folder-overview.png” width=“500” alt=“结果输出目录”> </div>

Excel 文件:适合做统计和复用

Excel 里会记录每张图片以及二次聚类结果对应的主色信息,通常包含:

  • RGB
  • HSV
  • Lab
  • HEX
  • 色彩占比

每个工作表通常对应一张图片,表名就是图片名。这样后续无论你是继续做汇总、写报告,还是要把颜色交给设计师或开发,都会非常方便。

<div style=“text-align: center;”> <img src=“/blog/figures/kmeans-color-clustering/10-excel-color-results.png” width=“600” alt=“Excel 主色结果表”> </div>

单张图片结果:适合直接看效果

单图模式下,结果文件夹一般会输出 6 张图,核心包括:

  • 原图
  • 提取结果
  • 色彩占比柱状图
  • 色彩占比饼图
  • 色卡
  • 色卡详情图

其中最值得关注的是这几项:

  • 提取结果:直观看到主色如何覆盖整张图
  • 柱状图和饼图:快速判断主色排序和占比
  • 色卡详情:直接拿到 HEX、RGB、HSV、Lab 等信息

<div style=“text-align: center;”> <img src=“/blog/figures/kmeans-color-clustering/13-single-image-extraction-result.png” width=“420” alt=“单图提取结果”> </div>

<div style=“text-align: center;”> <img src=“/blog/figures/kmeans-color-clustering/14-single-image-color-bar-chart.png” width=“420” alt=“单图色彩占比柱状图”> </div>

<div style=“text-align: center;”> <img src=“/blog/figures/kmeans-color-clustering/16-single-image-color-card-details.png” width=“420” alt=“单图色卡详情”> </div>

二次聚类结果:适合看整体风格

文件夹模式下,除了每张图的独立结果,还会得到二次聚类结果文件夹,通常会多出:

  • 拼接总图
  • 色彩网络图

拼接总图把每张图片的主色按比例压缩成统一尺寸的横条,再拼接到一起。这个结果非常适合快速观察整个图库的色调是否统一、是否存在明显分组。

色彩网络图则更进一步,不只告诉你“有哪些颜色”,还告诉你“哪些颜色经常一起出现”。

在阅读色彩网络图时,可以重点看两件事:

  • 节点大小:通常表示该主色整体占比更高
  • 连线粗细:通常表示两种主色在同一张图片中共现得更频繁

如果你在做视觉风格研究,这张图的解释价值往往比单纯的色卡更高。

<div style=“text-align: center;”> <img src=“/blog/figures/kmeans-color-clustering/18-collage-overview.png” width=“600” alt=“拼接总图”> </div>

<div style=“text-align: center;”> <img src=“/blog/figures/kmeans-color-clustering/19-color-network-graph.png” width=“600” alt=“色彩网络图”> </div>

怎么理解这些结果

很多人第一次做色彩聚类时,会把输出当成“绝对正确的主色答案”。其实更合理的理解是:

它提供的是一个稳定、可复现、便于比较的颜色概括。

也就是说,色彩聚类更适合拿来做:

  • 样本之间的对比
  • 视觉风格的归纳
  • 设计素材的整理
  • 结果汇报时的量化说明

而不是去追求“和人眼感觉 100% 完全一致”。

因为结果会受到这些因素影响:

  • 图片分辨率和压缩质量
  • 背景面积是否过大
  • 是否存在透明区域
  • 是否做了滤波
  • 聚类数设得过少或过多
  • 选择了哪一种色彩空间

如果你觉得结果“看起来不太对”,通常不要立刻怀疑算法,先回头检查参数和图片本身。

适合哪些人使用

这类工具尤其适合下面几类用户:

  • 设计师:从参考图快速提炼配色方案
  • 品牌与运营团队:分析品牌视觉和传播素材的色彩一致性
  • 科研与论文用户:做图像风格、视觉传播、作品比较类研究
  • 电商与内容团队:整理商品图、海报图、社媒图的整体风格
  • 数据分析人员:把图像颜色特征先转成可统计的数据结果

如果你的工作里经常要回答“这批图到底偏什么色”“主色是否稳定”“是否能形成一套配色语言”,那么这套工具会比人工观察高效很多。

结语

KMeans 色彩聚类的价值,不只是把图片里的颜色“算出来”,更重要的是把原本感性的视觉印象,转成一组可解释、可比较、可复用的结构化结果。

单张图片模式解决的是“提炼主色”的问题,文件夹加二次聚类解决的是“理解整批图片风格结构”的问题。两者结合起来,既能服务设计落地,也能服务研究分析。

如果你之前只把色彩聚类理解为“导出几个颜色值”,那不妨试试从“单图主色提取 + 图库级风格分析”的角度重新看它。很多时候,真正有价值的不是某一个颜色本身,而是颜色之间的比例、组合和共现关系。