#coding=utf-8 ######################################## #压缩 from skimage import io from sklearn.cluster import KMeans import numpy as np image = io.imread('test.png') rows = image.shape[0] cols = image.shape[1] image = image.reshape(rows * cols, 3) kmeans = KMeans(n_clusters=50, n_init=2, max_iter=2) kmeans.fit(image) clusters = np.asarray(kmeans.cluster_centers_, dtype=np.uint8) labels = np.asarray(kmeans.labels_, dtype=np.uint8) labels = labels.reshape(rows, cols) np.save('test_codebook.npy', clusters) io.imsave('test_compressed.png', labels) ##################################### ######################################## #解压 from skimage import io import numpy as np centers = np.load('test_codebook.npy') c_image = io.imread('test_compressed.png') image = np.zeros((c_image.shape[0],c_image.shape[1],3),dtype=np.uint8 ) for i in range(c_image.shape[0]): for j in range(c_image.shape[1]): image[i,j,:] = centers[c_image[i,j],:] io.imsave('test_reconstructed.png',image) io.imshow(image) io.show() #####################################
利用kmeans聚类进行颜色量化压缩图像
最新推荐文章于 2024-07-10 23:41:54 发布