一.讀取一張示例圖片或本身準備的圖片,觀察圖片存放數據特色。算法
根據圖片的分辨率,可適當下降分辨率。ui
再用k均值聚類算法,將圖片中全部的顏色值作聚類。spa
而後用聚類中心的顏色代替原來的顏色值。code
造成新的圖片。blog
觀察原始圖片與新圖片所佔用內存的大小。圖片
將原始圖片與新圖片保存成文件,觀察文件的大小。ip
#讀取一張示例圖片或本身準備的圖片,觀察圖片存放數據特色 from sklearn.datasets import load_sample_image from sklearn.cluster import KMeans import matplotlib.pyplot as plt import numpy as np #讀取圖片 china = load_sample_image("china.jpg") plt.imshow(china) plt.show() print(china.shape)#觀察圖片存放數據特色 china #根據圖片的分辨率,可適當下降分辨率 image = china[::3, ::3] X = image .reshape(-1,3) plt.imshow(image) plt.show() print(image.shape,X.shape) #再用k均值聚類算法,將圖片中全部的顏色值作聚類。 n_colors =64 #(256,256,256) model = KMeans(n_colors) #每一個點的顏色分類,0-63 labels = model.fit_predict(X) #64個聚類中心,顏色值 colors = model.cluster_centers_ #用聚類中心的顏色代替原來的顏色值 new_image=colors[labels] #造成新的照片 new_image=new_image.reshape(image.shape) plt.imshow(new_image.astype(np.uint8)) plt.show() #觀察原始圖片與新圖片所佔用內存的大小,將原始圖片與新圖片保存成文件,觀察文件的大小。 import matplotlib.image as img img.imsave('F:\\china.jpg',china) img.imsave('F:\\china_zip.jpg',image)
運行結果內存
二.理解貝葉斯定理:it