Как рассчитать сходство двух изображений - PullRequest
0 голосов
/ 19 февраля 2019

Я пытаюсь проверить два изображения на сходство с использованием SIFT.Результат должен быть в процентах.

Я понял, как извлечь функции и дескрипторы из изображений, используя OpenCV и его библиотеку.Если я вычислю расстояние между дескрипторами, я не получу процент.Я еще не отсортировал мою голову правильно, как рассчитать это.

Может кто-нибудь помочь мне правильно сложить недостающий кусок в моей голове?

alg = cv2.xfeatures2d.SIFT_create()

trainFiles = getPaths(dirTrain)
images = []


for file in trainFiles:
    img = cv2.imread(file)
    images.append(img)

np_images = np.array(images)
descriptors = np.zeros((1,128)) #Matrix to hold the descriptors

for i,img in enumerate(np_images):
    kp, des     = alg.detectAndCompute(img,None)
    descriptors = np.concatenate((descriptors,des),axis=0)
    print('Processed image {} of {}'.format(i,len(np_images)))

descriptors = descriptors[1:,:]

a = descriptors[0]
b = descriptors[1]
# euclidean distance 
dist = np.linalg.norm(a-b)
...