机器学习 of python(利用k-means聚类做的小案例)

吉吉:

      闲得无聊利用k-means实现图片中像素点的聚类分析,为了简化代码量,开始用逼格异常高的sklearn机器学习库来实现,比上一篇的代码少多了,图片选择是我最喜欢的EXO某一专辑的封面,废话不多说上代码:

# -*- coding: utf-8 -*-

from skimage import io
from sklearn.cluster import KMeans
import numpy as np

image = io.imread('EXO.jpg')#导入图片
io.imshow(image)
io.show()#show图片

机器学习 of python(利用k-means聚类做的小案例)_第1张图片

rows = image.shape[0]#查看像素点的行
cols = image.shape[1]#查看像素点的列
print(rows,cols)
100 100
image = image.reshape(image.shape[0]*image.shape[1],3)
kmeans = KMeans(n_clusters = 128, n_init=10, max_iter=200)#要形成的簇数为128,最大迭代数为200
kmeans.fit(image)
clusters = np.asarray(kmeans.cluster_centers_,dtype=np.uint8) 
labels = np.asarray(kmeans.labels_,dtype=np.uint8 )  
labels = labels.reshape(rows,cols)
print(labels)#查看标签信息
[[48 48 48 ... 48 48 48]
 [48 48 48 ... 48 48 48]
 [48 48 48 ... 48 48 48]
 ...
 [48 48 48 ... 48 48 48]
 [48 48 48 ... 48 48 48]
 [48 48 48 ... 48 48 48]]
print (clusters.shape)#结果(128, 3)
np.save('codebook_test.npy',clusters)    
io.imsave('EXO_test.jpg',labels)
io.show()
image = io.imread('EXO_test.jpg')
io.imshow(image)
io.show()

机器学习 of python(利用k-means聚类做的小案例)_第2张图片

最后贴几张最近看的书籍资料:

机器学习 of python(利用k-means聚类做的小案例)_第3张图片

 机器学习 of python(利用k-means聚类做的小案例)_第4张图片

 机器学习 of python(利用k-means聚类做的小案例)_第5张图片

 机器学习 of python(利用k-means聚类做的小案例)_第6张图片

 机器学习 of python(利用k-means聚类做的小案例)_第7张图片

 机器学习 of python(利用k-means聚类做的小案例)_第8张图片

 机器学习 of python(利用k-means聚类做的小案例)_第9张图片

 机器学习 of python(利用k-means聚类做的小案例)_第10张图片

 机器学习 of python(利用k-means聚类做的小案例)_第11张图片

 sklearn库学习网站:http://scikit-learn.org/stable/index.html

你可能感兴趣的:(数学建模和机器学习)