• K均值算法--应用


    1. 应用K-means算法进行图片压缩

    读取一张图片

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

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

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

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

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

     1 import numpy as np
     2 from sklearn.cluster import KMeans
     3 import matplotlib.pyplot as plt
     4 import sys
     5 image=plt.imread("wonderwomen.jpg")
     6 print("原图大小:",image.size)
     7 print("原图内存:",sys.getsizeof(image))
     8 plt.imshow(image)
     9 plt.show()
    10 # 压缩
    11 image=image[::3,::3]
    12 x=image.reshape(-1,3)
    13 # 构建模型
    14 model=KMeans(n_clusters=64)
    15 # 预测
    16 labels=model.fit_predict(x)
    17 # 聚类中心
    18 colors = model.cluster_centers_
    19 new_image = colors[labels].reshape(image.shape)
    20 plt.imshow(new_image.astype(np.uint8))
    21 new_image = new_image/255
    22 print("压缩图大小:",new_image.size)
    23 print("压缩图内存:",sys.getsizeof(new_image))
    24 plt.imshow(new_image)
    25 plt.show()

    原图:

    压缩后的图:

     

    2. 观察学习与生活中可以用K均值解决的问题。

    从数据-模型训练-测试-预测完整地完成一个应用案例。

    这个案例会作为课程成果之一,单独进行评分。

  • 相关阅读:
    逆序对
    【模板】树状数组 1
    【模板】树状数组2
    发射站
    质量检测
    【模板】ST表
    winform ComBox绑定数据
    JavaScript CheckBox实现全选和部分选择
    webbrowser内容滚动(javascript内容无缝滚动)
    double? int?
  • 原文地址:https://www.cnblogs.com/sgczw/p/12713242.html
Copyright © 2020-2023  润新知