import cv2
import numpy as np
from sklearn.cluster import KMeans
# 加载图像
img = cv2.imread('icon.jpg')
# 调整图像大小
img = cv2.resize(img, (128, 128))
# 像素归一化
img = img.reshape(-1, 3) / 255.0
# 使用KMeans聚类算法分割图像
kmeans = KMeans(n_clusters=2, random_state=0).fit(img)
labels = kmeans.labels_
# 计算颜色块的数量
unique, counts = np.unique(labels, return_counts=True)
colors = dict(zip(unique, counts))
# 显示图像和结果
cv2.imshow('Image', cv2.resize(img.reshape(128, 128, 3), (512, 512)))
print('颜色块数量:', colors)
cv2.waitKey(0)
cv2.destroyAllWindows()
上面的代码运行需要确保当前目录下存在名为'icon.jpg'的图像文件。如果该文件不存在,可以替换为其他图像文件或者更改文件路径。另外,代码中使用了cv2和sklearn库,需要确保这两个库已经正确安装。