Python 如何计算两幅图像的相似性
我试图用SIFT检查两幅图像的相似性。结果应该是一个百分比 我已经了解了如何使用OpenCV及其库从图像中提取特征和描述符。如果我计算描述符之间的距离,我不会得到一个百分比。我还没有正确地整理我的头脑如何计算这个 有人能帮我把我脑子里丢失的那块拼凑好吗Python 如何计算两幅图像的相似性,python,distance,similarity,sift,euclidean-distance,Python,Distance,Similarity,Sift,Euclidean Distance,我试图用SIFT检查两幅图像的相似性。结果应该是一个百分比 我已经了解了如何使用OpenCV及其库从图像中提取特征和描述符。如果我计算描述符之间的距离,我不会得到一个百分比。我还没有正确地整理我的头脑如何计算这个 有人能帮我把我脑子里丢失的那块拼凑好吗 alg = cv2.xfeatures2d.SIFT_create() trainFiles = getPaths(dirTrain) images = [] for file in trainFiles: img = cv2.im
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)
我真的不知道SIFT和图像之间的距离,但要得到一个百分比,需要定义一个比率。哪些图像之间的距离最大(100%)?它们可能是全黑图像和黑白图像吗?一旦你有了这个距离,你就有了你比率的分母,你可以用一个百分比来测量你的距离。我真的不知道筛选和图像之间的距离,但是要得到一个百分比,你需要定义一个比率。哪些图像之间的距离最大(100%)?它们可能是全黑图像和黑白图像吗?一旦你有了这个距离,你就有了比率的分母,你可以用百分比来测量你的距离。