用K-Means聚类算法图像分割
K-Means算法
K-Means聚类算法是无监督学习算法,是将没有类别标签的数据集,把特征属性相同的数据样本集合在一起,形成一个聚类,其中K的取值就是聚类的个数,Means就是数据集的每一个中心点,也就是我们所说的质心。
该项目的需求分析
- 首先,我们的聚类对象是图片每个像素点的rgb值,分为两类,一类是黑点,一类白点。
- 就是读取照片文件,利用PIL库,获取图片的width、height和每一个像素点的rgb值,用二维数组表示。
- 利用聚类方法将其分开,将聚类结果转换为像素值,保存新的图片即可。
导入所需的包
注意:如果代码运行有编码问题,可以在首部添加#coding=utf-8
#coding=utf-8
import PIL.Image as image
import numpy as np
from sklearn import preprocessing
from sklearn.cluster import KMeans
利用Python自带的PIL库加载图片
#加载图片
def load_img(img_path):
#读取照片
f = open(img_path,