zoukankan      html  css  js  c++  java
  • K-means算法应用:图片压缩

    from sklearn.datasets import load_sample_image
    from sklearn.cluster import KMeans
    import matplotlib.pyplot as plt
    import numpy as np
    #加载flower的原图
    flower=load_sample_image('flower.jpg')
    plt.imshow(flower)
    plt.show()
    #降低分辨率
    image=flower[::3,::3]
    x=image.reshape(-1,3)
    print(flower.shape,image.shape,x.shape)
    #聚类
    n_colors=64
    model=KMeans(n_colors)
    labels=model.fit_predict(x)
    colors=model.cluster_centers_
    #用聚类中心的颜色代替原来的颜色值
    new_image=colors[labels]
    new_image=new_image.reshape(image.shape)
    
    plt.imshow(image)
    plt.show()
    plt.imshow(new_image.astype(np.uint8))
    plt.show()

    #原始图片与新图片所占用内存的大小
    import sys
    print(sys.getsizeof(flower))
    print(sys.getsizeof(new_image))

    #原始图片与新图片保存成文件
    import matplotlib.image as img
    img.imsave("F:\flower.jpg",flower)
    img.imsave("F:\flower_zip.jpg",image)

    贝叶斯定理:

    M桶:7红3黄

    N桶:1红9黄

    现在:拿出了一个红球

    试问:这个红球是M、N桶拿出来的概率分别是多少?

  • 相关阅读:
    我理解的BFC
    框架设计—选择器模块
    eval 的使用与延展
    Git学习笔记
    CSS3选择器学习笔记
    JavaScript继承学习笔记
    JavaScript原型与原型链学习笔记
    javascript面向对象编程笔记
    GitHub图形界面使用笔记
    HTML5表单学习笔记
  • 原文地址:https://www.cnblogs.com/dalin-lyl/p/9921741.html
Copyright © 2011-2022 走看看