import cv2
import numpy as np
from sklearn.cluster import KMeans
加载图片
img = cv2.imread(‘all_souls_000000.jpg’)
转换为HSV色彩空间
hsv_img = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)
将图像转换为一维向量
img_1d = hsv_img.reshape((-1, 3))
使用k-means算法将像素聚类到64个颜色簇中
kmeans= KMeans(n_clusters=64, random_state=0).fit(img_1d)
aa=kmeans.labels_.astype(np.uint8)
计算每个颜色簇在图像中出现的频率
histogram = cv2.calcHist([aa], [0], None, [64], [0, 64])
归一化直方图
normalized_hist = cv2.normalize(histogram, histogram).flatten()