zoukankan      html  css  js  c++  java
  • KMeams算法应用:图片压缩与贝叶斯公式理解

    1、读取一张示例图片或自己准备的图片,观察图片存放数据特点。

    根据图片的分辨率,可适当降低分辨率。

    再用k均值聚类算法,将图片中所有的颜色值做聚类。

    然后用聚类中心的颜色代替原来的颜色值。

    形成新的图片。

    from sklearn.datasets import load_sample_image
    import matplotlib.pyplot as plt
    from sklearn.cluster import KMeans
    import numpy as np
    flower=load_sample_image('flower.jpg')#原始图片
    plt.imshow(flower)
    plt.show()
    
    image=flower[::3,::3]#降低原始图片的分辨率
    plt.imshow(image)
    plt.show()
    
    #利用Kmeans对图片进行压缩
    x=image.reshape(-1,3)#改变数组的形状
    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(new_image.astype(np.uint8))
    plt.show()

    观察原始图片与新图片所占用内存的大小。

    #观察原始图片和新图片的内存大小
    import sys
    print(sys.getsizeof(flower))
    print(sys.getsizeof(new_image))

    将原始图片与新图片保存成文件,观察文件的大小。

    理解贝叶斯定理:

    • M桶:7红3黄
    • N桶:1红9黄
    • 现在:拿出了一个红球
    • 试问:这个红球是M、N桶拿出来的概率分别是多少?

  • 相关阅读:
    adb devices检测不到夜神模拟器
    adb devices检测不到夜神模拟器
    adb devices检测不到夜神模拟器
    epoll里面mmap释疑
    epoll里面mmap释疑
    epoll里面mmap释疑
    epoll里面mmap释疑
    Redis数据迁移的三个方法
    Redis数据迁移的三个方法
    MySQL:由USE DB堵塞故障引发的思考
  • 原文地址:https://www.cnblogs.com/zxcv11/p/9888428.html
Copyright © 2011-2022 走看看