图像对比:使用OpenCV来进行对比,将两张图片都转成灰度图像,使用SIFT特征检测器来提取关键点和描述符,使用暴力匹配器BFMacher来匹配这些描述符,最后根据匹配的数量计算了图片的相似度 import cv2
# 加载两张图片
image1 = cv2.imread('image1.jpg')
image2 = cv2.imread('image2.jpg')
# 将图片转换为灰度图像
gray_image1 = cv2.cvtColor(image1, cv2.COLOR_BGR2GRAY)
gray_image2 = cv2.cvtColor(image2, cv2.COLOR_BGR2GRAY)
# 计算两张灰度图像的结构相似度指数(SSIM)
sift = cv2.SIFT_create()
keypoints_1, descriptors_1 = sift.detectAndCompute(gray_image1, None)
keypoints_2, descriptors_2 = sift.detectAndCompute(gray_image2, None)
bf = cv2.BFMatcher()
matches = bf.knnMatch(descriptors_1, descriptors_2, k=2)
good_matches = []
for m, n in matches:
if m.distance < 0.75 * n.distance:
good_matches.append([m])
similarity = len(good_matches) / len(keypoints_1) * 100
print("图片相似度: {:.2f}%".format(similarity))