Python案例 | 使用K-means 聚类算法提取图像中的颜色

假如我们需要提取下图中的颜色,可以通过使用 K-means 聚类算法对图像进行颜色聚类分析,并生成一个基于聚类中心(即最具代表性的颜色)的RGB值和调色板。

复制代码
# 通过使用 K-means 聚类算法对图像进行颜色聚类分析,并生成一个基于聚类中心(即最具代表性的颜色)的RGB值和调色板。
# 导入必要的库
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.image as mpimg
from sklearn.cluster import KMeans

# 读取图像
image = mpimg.imread('poland-landscape.jpg')

# 获取图像尺寸
w, h, d = image.shape
pixels = image.reshape(w * h, d)

# K-means聚类,n_init设置为auto
n_colors = 15
kmeans = KMeans(n_clusters=n_colors, random_state=42, n_init='auto').fit(pixels)

# 获取聚类中心(调色板)
palette = np.uint8(kmeans.cluster_centers_)
print(palette)
# 显示调色板
plt.imshow([palette])
plt.axis('off')
plt.savefig('rgb_color_chart.png', dpi=300, bbox_inches='tight')
plt.show()

运行结果如下:

聚类得到的15个RGB值如下:

复制代码
[[  9  43  77]
 [ 70 165 209]
 [145 118  72]
 [ 47 122 160]
 [154 157 153]
 [ 11  26  38]
 [ 79  91  93]
 [212 164  37]
 [ 43  58  64]
 [231 227 217]
 [  6 125 184]
 [216 172 110]
 [ 95  78  39]
 [105 133 146]
 [ 20  78 118]]

参考资料:

https://www.douyin.com/note/7413545987140095241

相关推荐
fengfuyao98518 小时前
基于MATLAB的表面织构油润滑轴承故障频率提取(改进VMD算法)
人工智能·算法·matlab
Java面试题总结18 小时前
基于 Java 的 PDF 文本水印实现方案(iText7 示例)
java·python·pdf
不懒不懒18 小时前
【决策树算法实战指南:从原理到Python实现】
python·决策树·id3·c4.5·catr
机器学习之心18 小时前
基于随机森林模型的轴承剩余寿命预测MATLAB实现!
算法·随机森林·matlab
一只小小的芙厨18 小时前
寒假集训笔记·树上背包
c++·笔记·算法·动态规划
马猴烧酒.18 小时前
【面试八股|Java集合】Java集合常考面试题详解
java·开发语言·python·面试·八股
庄周迷蝴蝶18 小时前
四、CUDA排序算法实现
算法·排序算法
以卿a18 小时前
C++(继承)
开发语言·c++·算法
I_LPL18 小时前
day22 代码随想录算法训练营 回溯专题1
算法·回溯算法·求职面试·组合问题
金融RPA机器人丨实在智能18 小时前
2026动态规划新风向:实在智能Agent如何以自适应逻辑重构企业效率?
算法·ai·重构·动态规划