压缩图片

import matplotlib.pyplot as plt
from sklearn.datasets import load_sample_image
import numpy as np
from sklearn.cluster import KMeans
import matplotlib.image as img
china = img.imread('C:\\Users\Administrator\Desktop\china.jpg')
plt.imshow(china)
plt.show()
china.shape
china

plt.imshow(china[:,:,0]) #提取第三列的颜色
print(china.shape)
plt.show()

chinas = china[::3,::3] #降低分辨率
plt.imshow(chinas)
plt.show()

china1 = chinas.reshape(-1,3)
print(china1)
print(china.shape,chinas.shape,china1.shape)


n_color = 64 #将所有颜色定义为64组 (分组)

model = KMeans(n_color)
labels = model.fit_predict(china1)
colors = model.cluster_centers_

colors[labels]

new_images = colors[labels]
new_images = new_images.reshape(chinas.shape)
new_images = new_images.astype(np.uint8)

plt.imshow(chinas)
plt.show()
plt.imshow(new_images)
plt.show()

  

  

运行结果:

 

 

贝叶斯算法:

 

理解贝叶斯定理:

  • M桶:7红3黄
  • N桶:1红9黄
  • 现在:拿出了一个红球
  • 试问:这个红球是M、N桶拿出来的概率分别是多少?

 

posted @ 2018-11-05 17:49  MIEhaha  阅读(199)  评论(0编辑  收藏  举报