#导包 from sklearn.datasets import load_sample_image from sklearn.cluster import KMeans import matplotlib.pyplot as plt import numpy as np import matplotlib.image as img import sys #1、读取图片 import matplotlib.image as img dg = img.imread("D:\\tu.jpg") plt.imshow(dg) plt.show() print(dg.shape) #2、降低分辨率 image = dg[::3, ::3] #降低图片3倍分辨率 plt.imshow(dg) plt.show() #3、用k均值聚类算法,将图片中所有的颜色值做聚类 X = image.reshape(-1,3) # 重造数组n_colors= 64 #(256,256,256) n_colors=64 model= KMeans(n_colors) labels = model.fit_predict(X) #每个点的颜色分类,0-63 colors = model.cluster_centers_ #64个聚类中心,颜色值 print(dg.shape,image.shape,X.shape) #聚类 new_lms = colors[labels] # 4.还原成原来的维度并转换数据类型 new_lms = new_lms.reshape(image.shape) plt.imshow(new_lms.astype(np.uint8)) plt.show() plt.imshow(image) plt.show() #5、保存图片 plt.imsave('d:\\dg.jpg',dg) plt.imsave('d:\\image.jpg',image) import sys #6. 压缩前后对比 size1 = sys.getsizeof('d:\\dg.jpg') size2 = sys.getsizeof('d:\\image.jpg') print('压缩前:'+str(size1),"\t压缩后:"+str(size2))
11.12
猜你喜欢
转载自www.cnblogs.com/zhanglk/p/9945550.html
今日推荐
周排行