SIFT возвращает дескрипторы разных размеров
Я пытаюсь извлечь SIFT дескрипторы, чтобы потом их кластеризовать. У меня есть этот кусок кода
images = d.values()[0]
labels = d.values()[1]
sift = cv2.xfeatures2d.SIFT_create()
des = [[] for i in range(10)]
for im in zip(images, labels):
#des[im[1]].append(sift.detectAndCompute(img_2_RGB_cv2_format(im[0]), None))
k,d = sift.detectAndCompute(img_2_RGB_cv2_format(im[0]), None)
print len(d)
и я вижу что len(d)
дает различные значения от 4 до 20 (из того, что я вижу, может быть даже дальше).
Можно ли использовать разное количество дескрипторов? Должен ли я попытаться получить постоянное количество дескрипторов?