Просеять сравнение с помощью Python - PullRequest
0 голосов
/ 07 мая 2018

Мне нужно рассчитать процент сходства между двумя изображениями, я нашел часть, которая выполняет вычисления онлайн, я хотел адаптировать ее для своего случая, но во время тестирования кода у меня возникла проблема, которую я не знаю, как исправить. Ниже вы найдете мой код:

import cv2
import numpy as np

img1 = cv2.imread("C:/Users/Akhou/Desktop/ALTRAN Tech.jpg")
gray1= cv2.cvtColor(img1,cv2.COLOR_BGR2GRAY)
img2 = cv2.imread("C:/Users/Akhou/Desktop/ALTRAN Tech.jpg")
gray2= cv2.cvtColor(img2,cv2.COLOR_BGR2GRAY)

sift1 = cv2.xfeatures2d.SIFT_create()
kp1, des1 = sift1.detectAndCompute(gray1,None)

sift2 = cv2.xfeatures2d.SIFT_create()
kp2, des2 = sift2.detectAndCompute(gray2,None)

featurlist=[]
featurlist += [kp2, des2]
bf = cv2.BFMatcher()
matches1 = bf.knnMatch(des1,des2, 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)/kp2
        print("{} % similarity".format(percent))
        if percent >= 75.00:
            print('Match Found')
            break;

img3 = cv2.drawMatchesKnn(img1,kp1,img2,kp2,good,None,flags=2)

и у меня ошибка:

percent=(a*100)/kp2
TypeError: unsupported operand type(s) for /: 'int' and 'list'

Спасибо за ваше время и помощь.

...