• 4.K均值算法--应用


    1. 应用K-means算法进行图片压缩
    读取一张图片
    观察图片文件大小,占内存大小,图片数据结构,线性化
    用kmeans对图片像素颜色进行聚类
    获取每个像素的颜色类别,每个类别的颜色
    压缩图片生成:以聚类中收替代原像素颜色,还原为二维
    观察压缩图片的文件大小,占内存大小
    2. 观察学习与生活中可以用K均值解决的问题。
    从数据-模型训练-测试-预测完整地完成一个应用案例。
    这个案例会作为课程成果之一,单独进行评分。

    1答:

    from sklearn.datasets import load_sample_image
    from sklearn.cluster import KMeans
    import matplotlib.pyplot as plt
    import sys
    import matplotlib.image as img
    import numpy as np


    a = load_sample_image("china.jpg")
    #
    abc = img.imread('E:/AnacondaSpace/ff.jpg')
    b = sys.getsizeof(abc)
    #print("图片占内存的大小", b)
    #print('原图片文件大小:', abc.size)
    #print('原图片的数据结构: ', abc)
    plt.imshow(abc)
    #plt.show()

    abc = abc[::3, ::3] # 降低图片的分辨率
    X = abc.reshape(-1, 3)
    #print(abc.shape, X.shape)
    n_colors = 64
    model = KMeans(n_colors)
    labels = model.fit_predict(X)
    colors = model.cluster_centers_

    new_image = colors[labels].reshape(abc.shape)
    new_image = new_image.astype(np.uint8)
    print('压缩图片文件大小:', new_image.size)
    print('压缩图片占内存大小:', sys.getsizeof(new_image))
    print('压缩图片的数据结构: ', new_image)

     

     2)答:

  • 相关阅读:
    修改RedHat7的root用户密码
    Linux目录,rpm及top,vi命令简记
    Centos7或RedHat7下安装Mysql
    异常、线程
    File类
    JDBC的学习(一)
    MySql多表查询_事务_DCL(资料三)
    MySql约束_设计_备份还原(资料二)
    MySql基础_DDL_DML_DQL(资料一)
    算法小结(一)
  • 原文地址:https://www.cnblogs.com/hzxx/p/13068915.html
Copyright © 2020-2023  润新知