1. 应用K-means算法进行图片压缩
(1)读取一张图片
china = load_sample_image("china.jpg") # 读取一张图片 plt.imshow(china) # 观察图片文件大小 img.imsave("G:\ttt\China.jpg",china) # 保存图片
(2)观察图片文件大小,占内存大小,图片数据结构,线性化
os.path.getsize('G:\ttt\China.jpg') # 观察图片文件大小 sys.getsizeof(china) #占内存大小 china # 观察图片数据结构 image = china[::3,::3] X = image.reshape(-1,3) ##线性化
(3)用kmeans对图片像素颜色进行聚类
n_colors = 64 #设置类中心64个 model = KMeans(n_colors) labels = model.fit_predict(X) #对模型进行训练并且给每个像素分类 colors = model.cluster_centers_ #获取每个类别的颜色
(4)获取每个像素的颜色类别,每个类别的颜色
(5)压缩图片生成:以聚类中心替代原像素颜色,还原为二维
new_image = colors[labels].reshape(image.shape)
newImg = plt.imshow(new_image.astype(np.uint8))
(6)观察压缩图片的文件大小,占内存大小
newImg = new_image.astype(np.uint8) img.imsave("G:\ttt\ChinaNew.jpg",newImg)
2. 观察学习与生活中可以用K均值解决的问题。
从数据-模型训练-测试-预测完整地完成一个应用案例。
这个案例会作为课程成果之一,单独进行评分。