Вот краткий пример кластеризации методом k-средних на изображении, а код находится на github. В приведенной ниже последовательности показаны три кластера цветов на изображении здания, в результате чего преобразованное изображение содержит только три различных цвета.

Исходное изображение размером 228x300 пикселей имело 36 632 уникальных цвета, тогда как изображение внизу справа имеет только восемь уникальных цветов после создания восьми кластеров!

Повторение процесса только с двумя кластерами раскрывает важный момент, касающийся k-средних и алгоритмов кластеризации в целом: они не группируют так, как это сделал бы человек. Вместо того, чтобы делить пиксели на синие и не синие группы, алгоритм разбивает изображение на более темные и светлые точки.

Исходное изображение взято из демонстрации k-means OpenCV. Эта демонстрация дает изображение стиля до и после, но два промежуточных шага, которые показывают кластеризацию в цветовом пространстве RGB, были пропущены. Я воссоздал анализ, используя scikit-learn, чтобы увидеть эти промежуточные шаги.