Сжатие изображений на Python с использованием sklearn K-Means - PullRequest
0 голосов
/ 20 ноября 2018

Я прохожу курс Machine Learnirg на Coursera и после его реализации в Octave я делаю его на Python.Я выполняю упражнение, которое берет изображение 128x128 с цветами RGB, применяет К-образное средство с 16 кластерами (чтобы найти наиболее значимые 16 цветов), а затем снова печатает изображение.Проблема в том, что когда я запускаю его в Octave, изображение выглядит аналогично оригиналу, но в Python изображения не очень похожи ( images ).

Я пытался изменить параметрыкластеризации, но ничего не решило проблему.Код, который я делаю, выглядит следующим образом:

import imageio
from sklearn.cluster import KMeans

image = imageio.imread('bird_small.png')
extended_image = image.reshape(128*128, 3)
extended_image = extended_image/255
image_km = KMeans(n_clusters=16, n_init=100)
image_km.fit(extended_image)
clusters = image_km.predict(extended_image)
centroids = image_km.cluster_centers_

reduced_extended_image = extended_image

# Here I substitue each data color point for the centroid
for i in range(0, len(extended_image)):
    color = clusters[i]
    reduced_extended_image[i, :] = centroids[color, :]

compressed_image = reduced_extended_image.reshape(128, 128, 3)
plt.imshow(compressed_image)

Если кто-либо из вас пытался запустить код, изображение 'bird_small.png' будет здесь

Знаете ли вы, где может быть проблема?Спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...