KMeans 算法应用于 RGB 图像压缩
KMeans算法可以应用于图像压缩,这种压缩实质上是一种有损压缩,实质上是将原本的色彩空间进行聚类,当所聚类的数据增长时,压缩后的质量也随之增加。
关于聚类算法的的介绍和具体处理步聚就是在这里细讲,主要是讲解关于 KMeans 应用于图像压缩的实质和实现
从下图可以看到对一张原图使用 KMeans 使用聚类算法进行压缩时,首先要将原来的图像的所有像素放置到一个相同维度的容器,例如Numpy
中的Array
,然后进行进聚类,最终聚类的个数需要指定,聚类个数越大,压缩后的图像质量也就越好,但压缩比就降低,即压缩后的文件大小变化并不明显。注意在保存的压缩文件,压缩的图像坐标[x,y]所对应的并不是这个像素的 RGB 值,而是一个类似于指针的 Index。如下所的例子,原图所有像素聚类后的中心点有64个,那么可以用6bit 来表示( 2 6 = 64 2^6=64