zoukankan      html  css  js  c++  java
  • 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)答:

  • 相关阅读:
    javascript 数字时钟
    ubuntu下键盘背景灯光设置
    使用百度地图SDK
    ListView 的Item状态改变和保存
    继续Jsoup 正方教务系统的教学质量评价一键好评
    Java下的可视化开发工具使用 WindowBuilder Pro
    js 数组排序
    js数组去重
    js call() apply()
    [总结] js的2种继承方式详解
  • 原文地址:https://www.cnblogs.com/hzxx/p/13068915.html
Copyright © 2011-2022 走看看