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

    1. from sklearn.datasets import load_sample_image
      from sklearn.cluster import KMeans
      import matplotlib.pyplot as plt
      
      china = load_sample_image("china.jpg")
      plt.imshow(china)
      plt.show()
      china.shape
      

       运行结果:                                                                                                                                  

    2. import matplotlib.image as img
      cc = img.imread('C:\Users\HY\Pictures\cc.jpg')
      plt.imshow(cc)
      plt.show()
      

       运行结果:                                                                                                                                     

    3. plt.imshow(cc[:,:,0])  #提取第三列颜色
      plt.show
      

       运行结果:                                                                                                                                                                                   

    4. print(cc.shape)
      cc
      

       运行结果:                                                                                                               

    5. image = cc[::3, ::3]  #降低分辨率
      X = image.reshape(-1,3)
      
      import numpy as np
      print(cc.shape,image.shape,X.shape)  #输出分辨率
      n_colors = 64 #(256,256,256)
      model = KMeans(n_colors)
      labels = model.fit_predict(X)   #每个点的颜色分类,0-63
      colors = model.cluster_centers_  #64个聚类中心,颜色值
      plt.imshow(image);
      plt.show()
      plt.imshow(image.astype(np.uint8))
      plt.show()
      

       运行结果:                                                                                                                                               

    6. import sys
      plt.imsave('C:\Users\HY\Pictures\image.jpg',image)  #保存图片
      plt.imsave('C:\Users\HY\Pictures\cc.jpg',cc)
      p1_size = sys.getsizeof('C:\Users\PC\Desktop\tp\cc.jpg')  #压缩前后对比
      p2_size = sys.getsizeof('C:\Users\PC\Desktop\tp\image.jpg')
      print('压缩前:'+str(p1_size),"	压缩后:"+str(p2_size))
      

       运行结果: #保存在C:Users\HYPictures  路径下的cc,image图                                                                                                                                                                                   

    7.  在M、N桶里分别抽出红球的概率运算结果如下图

               

  • 相关阅读:
    P1308 统计单词数
    P1055 ISBN号码
    InterlockedCompareExchange 原子操作
    InterlockedCompareExchange 原子操作
    VS2015 定位内存泄露
    VS2015 定位内存泄露
    const volatile mutable修饰变量的区别
    const volatile mutable修饰变量的区别
    HWND、HANDLE、HMODULE、HINSTANCE的区别
    CodeIgniter框架中关于URL重写(index.php)的二三事
  • 原文地址:https://www.cnblogs.com/MIS-67/p/9912505.html
Copyright © 2011-2022 走看看