KMean clustering算法获取图片主色调

Chromium使用KMean clustering算法来计算PNG图片的主色调,不同于简单的平均RGB值或最常见的RGB值。该算法首先随机选取种子点,然后根据每个点到种子点的RGB距离分配点群,不断迭代更新种子点的RGB值,直到种子点稳定或达到最大迭代次数。最终,选择权重最高的种子点RGB值作为主色调。
摘要由CSDN通过智能技术生成
      前几天在研究chromium代码的时候看到了一个取PNG图片主色调(dominant color)的算法,这个算法不是取图片中所有点的平均RGB值,也不是取同一RGB值最多的点的RGB。chromium中取图片主色调用的算法用的是 KMean clustering。可以算是KMean clustering的一个实际应用,chromium自己将其取名为RGB KMean Algorithm。
      首先我们可以来简单了解一下KMean clustering算法(如果你已经足够熟悉,这里可以略过)。酷壳中有一篇K-Means 算法的文章专门介绍过这个算法,我最初对这个算法的了解也源于此,讲的也挺详细。如果你觉得这个还不能满足你的需求,可以再继续看看维基k-means clustering
      KMean clustering算法的基本思想就是:
           1、随机在图中取K个种子点。
           2、然后对图中的所有点求到这K个种子点的距离,假如点Pi离种子点Si最近,那么Pi属于Si点群。
           3、接下来,我们要移动种子点到属于他的“点群”的中心。
           4、然后重复第2)和第3)步,直到,种子点没有移动。

      接下来我们再来了解一下chromium是如何利用KMean clustering算法来算出图片主色调的。
      之前我们了解到的KMean clustering算法是从坐标空间来计算的。而主色调算法RGB KMean Algorithm则需要从RGB空间来计算的。总体思想还是一至,就是将坐标空间向RGB空间做了一个转换。
      RGB KMean Algorithm的基本执行步骤如下:
           1、定义一个迭代次数上限M。
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值