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

embedded/2024/10/22 5:54:20/

假如我们需要提取下图中的颜色,可以通过使用 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


http://www.ppmy.cn/embedded/129485.html

相关文章

在Ubuntu上安装指定版本Docker

在Ubuntu上安装指定版本Docker 1. 删除原有docker sudo apt-get remove docker-ce docker-ce-cli containerd.io sudo rm -rf /var/lib/docker sudo rm -rf /etc/docker sudo rm /etc/systemd/system/docker.service sudo rm /etc/systemd/system/docker.socket2. 更新现有的…

Python主流框架Django,ORM框架

数据模型的增删改查 一、 框架基本介绍 O是object,也就类对象的意思,R是relation,翻译成中文是关系,也就是关系数据库中数据表的意思,M是mapping,是映射的意思。在ORM框架中,它帮我们把类和数据…

HTML_文本标签

概念: 1、用于包裹:词汇、短语等。 2、通常写在排版标签里面。 3、排版标签更宏观(大段的文字),文本标签更微观(词汇、短语)。 4、文本标签通常都是行内元素。 常用的文本标签 标签名 全称 标签语义em Emphasized 加重(文本)。要着重阅…

基于springboot+微信小程序校园自助打印管理系统(打印1)

👉文末查看项目功能视频演示获取源码sql脚本视频导入教程视频 1、项目介绍 基于springboot微信小程序校园自助打印管理系统实现了管理员、店长和用户。管理员实现了用户管理、店长管理、打印店管理、打印服务管理、服务类型管理、预约打印管理和系统管理。店长实现…

【C++STL】list的基本介绍与使用方式

✨ Blog’s 主页: 白乐天_ξ( ✿>◡❛) 🌈 个人Motto:他强任他强,清风拂山冈! 🔥 所属专栏:C深入学习笔记 💫 欢迎来到我的学习笔记! 一、list的介绍 文档内容以及大致翻…

基于SpringBoot+Vue+uniapp微信小程序的校园反诈骗微信小程序的详细设计和实现(源码+lw+部署文档+讲解等)

项目运行截图 技术框架 后端采用SpringBoot框架 Spring Boot 是一个用于快速开发基于 Spring 框架的应用程序的开源框架。它采用约定大于配置的理念,提供了一套默认的配置,让开发者可以更专注于业务逻辑而不是配置文件。Spring Boot 通过自动化配置和约…

python+Mosh网课笔记09标准库

太久没写python代码了,学机器学习重新拾起python,笔记比较简陋。 参考:mosh python网课 目录 一、Files path-文件操作 path-文件夹操作 文件内容读取与编辑 ZIP CSV JSON 一、Files path-文件操作 创建路径的两种方式。一种\\&am…

canvasToTempFilePath: fail canvas is empty. 微信小程序 canvas 报错

如果代码敲累了,就歇一歇。放松一下,问题就会少一些。 问题 在小程序中,使用 canvasToTempFilePath 方法将 canvas 内容保存为临时文件时,有时会遇到 “fail canvas is empty” 的错误。 既然你遇到了这个问题,那么你…