Моя ошибка:
File "C:/Users/hero/PycharmProjects/project/CompressMe.py", line 14, in
<module>
image = image.reshape(image.shape[0] * image.shape[1], image.shape[2])
IndexError: tuple index out of range
Я пытаюсь сжать несколько изображений, присутствующих в папке, используя алгоритм K-средних.Но я получил ошибку памяти, поэтому я использовал MiniBatchKMeans, но снова я получаю IndexError.
import os
from skimage import io
from sklearn.cluster import MiniBatchKMeans
import numpy as np
algorithm = "full"
for f in os.listdir('.'):
if f.endswith('.png'):
image = io.imread(f)
rows = image.shape[0]
cols = image.shape[1]
image = image.reshape(image.shape[0] * image.shape[1], image.shape[2])
kmeans = MiniBatchKMeans(n_clusters=128, n_init=10, max_iter=200)
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('codebook'+f+'.npy', clusters)
io.imsave('compressed_' + f + '.png', labels);