我正在尝试检查两个图像与SIFT的相似性。结果应为百分比。
我已经了解了如何使用OpenCV及其lib从图像中提取特征和描述符。如果我计算描述符之间的距离,我不会得到一个百分比。我尚未正确地计算出该值。
有人可以帮我把丢失的那块正确地放在我的头上吗?
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)