VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > temp > 简明python教程 >
  • K均值算法--应用

读取一张图片

观察图片文件大小,占内存大小,图片数据结构,线性化

用kmeans对图片像素颜色进行聚类

获取每个像素的颜色类别,每个类别的颜色

压缩图片生成:以聚类中收替代原像素颜色,还原为二维

观察压缩图片的文件大小,占内存大小

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
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
# 从库中读取一张照片
china = load_sample_image('china.jpg')
 
# 显示原图片
plt.imshow(china)
plt.show()
 
# 压缩图片
image = china[::3, ::3]
= image.reshape(-13)
plt.imshow(image)
plt.show()
 
#使用机器学习K-Means算法压缩
# 定义聚类中心
n_colors = 64
model = KMeans(n_colors)
#预测
label = model.fit_predict(x)
colors = model.cluster_centers_
# 然后用聚类中心的颜色代替原来的颜色值。
new_image = colors[label].reshape(image.shape)
# 图片转换为 8位无符号整型
new_image = new_image.astype(np.uint8)
plt.imshow(new_image)
plt.show()

相关教程