# -*- coding: utf-8 -*-
# 使用K-means对图像进行聚类,显示分割标识的可视化
import numpy as np
import PIL.Image as image
from sklearn.cluster import KMeans
from sklearn import preprocessing
# 加载图像,并对数据进行规范化
def load_data(filePath):
# 读文件
f = open(filePath,'rb')
data = []
# 得到图像的像素值
img = image.open(f)
# 得到图像尺寸
width, height = img.size
for x in range(width):
for y in range(height):
# 得到点(x,y)的三个通道值
c1, c2, c3 = img.getpixel((x, y))
data.append([c1, c2, c3])
f.close()
# 采用Min-Max规范化
mm = preprocessing.MinMaxScaler()
data = mm.fit_transform(data)
return np.mat(data), width, height
# 加载图像,得到规范化的结果img,以及图像尺寸
img, width, height = load_data('./weixin.jpg')
# 用K-Means对图像进行2聚类
kmeans =KMeans(n_clusters=2)
kmeans.fit(img)
label = kmeans.predict(img)
# 将图像聚类结果,转化成图像尺寸的矩阵
label = label.reshape([width, height])
# 创建个新图像pic_mark,用来保存图像聚类的结果,并设置不同的灰度值
pic_mark = image.new("L", (width, height))
for x in range(width):
for y in range(height):
# 根据类别设置图像灰度, 类别0 灰度值为255, 类别1 灰度值为127
pic_mark.putpixel((x, y), int(256/(label[x][y]+1))-1)
pic_mark.save("weixin_mark.jpg", "JPEG")
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
人工智能+数据分析的kmeans算法实践数据源:20 支亚洲球队的聚类问题 具体分析原理+案例+代码可参考文章: 《K-Means(上):数据分析 | 数据挖掘 | 十大算法之一 https://blog.csdn.net/weixin_42108731/article/details/133469733
资源推荐
资源详情
资源评论
收起资源包目录
kmeans.zip (30个子文件)
kmeans
.gitattributes 66B
baby.jpg 7KB
weixin.jpg 4KB
kmeans2.py 1KB
.git
index 609B
HEAD 23B
refs
heads
master 41B
tags
remotes
origin
HEAD 32B
objects
pack
pack-d8b5da6d82726c86dd843f966f5f608bbc7f62cd.idx 1KB
pack-d8b5da6d82726c86dd843f966f5f608bbc7f62cd.pack 13KB
info
description 73B
packed-refs 114B
info
exclude 250B
logs
HEAD 187B
refs
heads
master 187B
remotes
origin
HEAD 187B
hooks
post-update.sample 189B
prepare-commit-msg.sample 1KB
commit-msg.sample 896B
pre-receive.sample 544B
update.sample 4KB
pre-commit.sample 2KB
pre-rebase.sample 5KB
applypatch-msg.sample 478B
pre-applypatch.sample 424B
pre-push.sample 1KB
config 306B
branches
kmeans1.py 1KB
data.csv 343B
kmeans3.py 1KB
共 30 条
- 1
资源评论
秋无之地
- 粉丝: 539
- 资源: 29
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功