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

相关推荐
天天被压力17 分钟前
【A股分钟级高频数据完全手册 #07】北交所历史分钟K线接口:京市Pro版分时批量
java·人工智能·python
天天被压力23 分钟前
【A股分钟级高频数据完全手册 #08】股票日、分时数据接口对比:普通分时与Pro版差异实测
java·人工智能·python
特立独行的猫A38 分钟前
AI 时代,我为什么推荐用 cj-tauri 开发桌面应用
java·后端·python
小lo想吃棒棒糖1 小时前
把机器人训练从 GPU 搬到昇腾 NPU:启元 Q1 起身动作 PPO 训练全记录
python·机器人·昇腾·启元机器人
Thanks_ks1 小时前
【第 006 讲】搭建 PyCharm 开发环境:PyCharm 的下载与安装 | 初始设置与常用配置
ide·python·pycharm·开发工具·jetbrains·开发环境·集成开发环境
严肃小白兔1 小时前
MATLAB 数值计算中的精度与误差问题:浮点运算、误差传播与数值稳定性
人工智能·算法·matlab
青少儿编程课堂2 小时前
蓝桥杯青少组图形化省考报名倒计时·全国青少年信息素养大赛·电子学会图形化考级:校园黑白棋人机对战解析
c++·python·算法·bfs·信息学竞赛
tellmewhoisi2 小时前
nlp:知识库检索和dify知识库创建
python·自然语言处理
2601_968793143 小时前
Python Requests 轻量自动化:无需浏览器,实现真人级账号浏览模拟
开发语言·python·自动化
jktantan3 小时前
注解式脱敏:用 Jackson 的 ContextualSerializer 做字段级策略(一)
spring boot·后端·算法·spring cloud·系统架构