我想要聚类一组图像,然后得到它们属于哪个类。 首先,我为每个图像提取筛选特征:
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
sift = cv2.SIFT_create()
kp, des = sift.detectAndCompute(gray, None)
des
是n x 128
矩阵。
然后我用
from sklearn.cluster import KMeans
kmeans = KMeans(n_clusters=2, random_state=None).fit(input_x)
这里,input_x是
N x M
矩阵,N
代表图像的数量,M
代表特征维度,那么我应该如何将n x 128
des转换为M
-dim特征。我尝试通过np.mean(des, axis = 0)
得到des的均值,但我不知道它是否正确。
还有别的办法吗?使用
BOW
?