Я работаю над проектом, в котором мне нужно сопоставить изображение с целым набором данных и получить оценку сходства ..... Сравнение изображений один на один работает нормально, но один ко многим ..... ээээ ... это не происходит?
def extractFeatures_SIFT():
a1='F:\\HandDataset\\'
a1=[os.path.join(a1, p) for p in sorted(os.listdir(a1))]
k = len(a1)
print(l)
sift1 = cv2.xfeatures2d.SIFT_create()
kp, desc = sift1.detectAndCompute(img2, None)
featurlist=[]
for img_path in a1:
img = img_path
img = cv2.imread(img_path)
sift = cv2.xfeatures2d.SURF_create()
kps,descriptor = sift.detectAndCompute(img, None)
featurlist += [kps, descriptor]
bf = cv2.BFMatcher()
matches1 = bf.knnMatch(desc,descriptor, k=2)
good = []
for m,n in matches1:
if m.distance < 0.7*n.distance:
good.append([m])
a=len(good)
print(a)
percent=(a*100)/kps
print("{} % similarity".format(percent))
if percent >= 75.00:
print('Match Found')
break;
return featurlist
img3 = cv2.drawMatchesKnn(img1,kps,img2,kp,good,None,flags=2)
extractFeatures_SIFT()