Python利用K-Means算法进行图像聚类分割实战(超详细 附源码)

简介: Python利用K-Means算法进行图像聚类分割实战(超详细 附源码)

需要源码和图片请点赞关注收藏后评论区留言私信~~~

图形分割就是把图像分成若干个特定的、具有独特性质的区域。并提出感兴趣目标的技术和过程,它是由图像处理到图像分析的关键步骤,本案例利用K-Means聚类方法对图像的像素进行聚类实现图像分割

打开图像文件并显示 原图像如下

接着显示图像的信息和图像大小

显示图像的颜色模式

对图像数据进行聚类并显示每个像素的簇标号

最后显示分割后的图像 如下图所示

可以看出图像可以明显的聚为三个簇 也就是三种颜色 大致可以分为三类

部分代码如下

import numpy as np
from sklearn.cluster import KMeans
import matplotlib.pyplot as plt
import PIL.Image as Image
%matplotlib inline
img=Image.open('lena.jpg')
plt.axis('off')
plt.imshow(img)
print(img.info)
row,col=img.size
print('图像的大小:',row,col)
print('数据类型',type(img))
print( '图像的颜色模式:',img.mode)
imgData=np.array(img.getdata())
type(imgData)
pixel_vals = imgData.reshape(-1,3)
pixel_vals
km_cluster = KMeans(n_clusters=3)
label=km_cluster.fi([row,col]).T  
pic_new = Image.new("L", (row, col))  
for i in range(row): 
    for j in range(col):       
        pic_new.putpixel((i,j), int(int(256/(label[i][j]+1))))  
plt.imshow(pic_new)

创作不易 觉得有帮助请点赞关注收藏~~~

相关文章
|
2天前
|
算法 数据可视化 Python
Python用MCMC马尔科夫链蒙特卡洛、拒绝抽样和Metropolis-Hastings采样算法
Python用MCMC马尔科夫链蒙特卡洛、拒绝抽样和Metropolis-Hastings采样算法
14 6
|
3天前
|
设计模式 算法 Java
[设计模式Java实现附plantuml源码~行为型]定义算法的框架——模板方法模式
[设计模式Java实现附plantuml源码~行为型]定义算法的框架——模板方法模式
|
3天前
|
机器学习/深度学习 算法 搜索推荐
Python用机器学习算法进行因果推断与增量、增益模型Uplift Modeling智能营销模型
Python用机器学习算法进行因果推断与增量、增益模型Uplift Modeling智能营销模型
31 12
|
9天前
|
算法 数据可视化 Python
Python贝叶斯推断Metropolis-Hastings(M-H)MCMC采样算法的实现
Python贝叶斯推断Metropolis-Hastings(M-H)MCMC采样算法的实现
14 0
|
9天前
|
数据可视化 算法 数据挖掘
PYTHON实现谱聚类算法和改变聚类簇数结果可视化比较
PYTHON实现谱聚类算法和改变聚类簇数结果可视化比较
|
10天前
|
算法 数据可视化 Python
Python中LARS和Lasso回归之最小角算法Lars分析波士顿住房数据实例
Python中LARS和Lasso回归之最小角算法Lars分析波士顿住房数据实例
15 0
|
计算机视觉 Python
常用的十大 python 图像处理工具
图像处理中的常见任务包括显示图像,基本操作如裁剪、翻转、旋转等,图像分割,分类和特征提取,图像恢复和图像识别。
2393 0