需要源码和图片请点赞关注收藏后评论区留言私信~~~
图形分割就是把图像分成若干个特定的、具有独特性质的区域。并提出感兴趣目标的技术和过程,它是由图像处理到图像分析的关键步骤,本案例利用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)
创作不易 觉得有帮助请点赞关注收藏~~~