1. 应用K-means算法进行图片压缩
读取一张图片
观察图片文件大小,占内存大小,图片数据结构,线性化
用kmeans对图片像素颜色进行聚类
获取每个像素的颜色类别,每个类别的颜色
压缩图片生成:以聚类中收替代原像素颜色,还原为二维
观察压缩图片的文件大小,占内存大小
原图:
压缩图:
源代码:
#201706120098 冯振威 from sklearn.cluster import KMeans import matplotlib.pyplot as plt import matplotlib.image as img import numpy as np import sys #图片路径、读取图片 image_path="D:/Python1/dasan - new/机器学习/1.jpg" jpg = img.imread(image_path) #原图 plt.imshow(jpg) plt.show() #原图大小 jpg.size #原图占内存 sys.getsizeof(jpg) #原图数据结构 jpg #每三个取一个点--降低分辨率 jpg = jpg[::3,::3] #线性化 X = jpg.reshape(-1,3) print(jpg.shape,X.shape) ##聚类中心 model = KMeans(64) lables = model.fit_predict(X) colors = model.cluster_centers_ #还原二维、压缩图片 jpg2 = colors[lables].reshape(jpg.shape) plt.imshow(jpg2.astype(np.uint8)) plt.show() #压缩图大小 jpg2.size #压缩图占内存 sys.getsizeof(jpg2) #压缩图数据结构 jpg2
2. 观察学习与生活中可以用K均值解决的问题。
从数据-模型训练-测试-预测完整地完成一个应用案例。
这个案例会作为课程成果之一,单独进行评分。
原文:https://www.cnblogs.com/fzwboke/p/12731765.html