4.K均值算法--应用
Posted dreww
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了4.K均值算法--应用相关的知识,希望对你有一定的参考价值。
1. 应用K-means算法进行图片压缩
读取一张图片
观察图片文件大小,占内存大小,图片数据结构,线性化
用kmeans对图片像素颜色进行聚类
获取每个像素的颜色类别,每个类别的颜色
压缩图片生成:以聚类中收替代原像素颜色,还原为二维
观察压缩图片的文件大小,占内存大小
完整代码:
from sklearn.datasets import load_sample_image from matplotlib import pyplot as plt from sklearn.cluster import KMeans import numpy as np import sys #读取一张sklearn.datasets里的图片china.jpg china = load_sample_image(‘china.jpg‘) plt.show() #观察china图片的大小和内存 print("china图片原大小:",china.size) print("china图片原内存:",sys.getsizeof(china)) #根据图片的分辨率,可适当降低分辨率 img=china[::4,::4] #降低分辨率 x=img.reshape(-1,3) #生成行数未知,列数为3 #将图片中所有的颜色值做聚类,然后获取每个像素的颜色类别,每个类别的颜色。 n_colors=64 model=KMeans(n_colors) labels=model.fit_predict(x) #每个点颜色分类,训练x colors=model.cluster_centers_#找聚类点 new197_img=colors[labels].reshape(img.shape) #形成新的图片 plt.imshow(new197_img.astype(np.uint8)) plt.show()
压缩前照片:
压缩后照片:
压缩前后照片大小对比:
2. 观察学习与生活中可以用K均值解决的问题。
从数据-模型训练-测试-预测完整地完成一个应用案例。
这个案例会作为课程成果之一,单独进行评分。
以上是关于4.K均值算法--应用的主要内容,如果未能解决你的问题,请参考以下文章