Сравнение изображений один ко многим SURF python - PullRequest
0 голосов
/ 01 мая 2018

Я работаю над проектом, в котором мне нужно сопоставить изображение с целым набором данных и получить оценку сходства ..... Сравнение изображений один на один работает нормально, но один ко многим ..... ээээ ... это не происходит?

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()
...