import cv2 import os def image_matching(floder_name,picture_name): # 使用绝对路径 path1 = os.path.abspath(r"C:\information_meeting_on.png") path2 = os.path.abspath(r"C:\information_brithday_on.png") if not os.path.exists(path1): print(f"文件不存在: {path1}") if not os.path.exists(path2): print(f"文件不存在: {path2}") # 加载图片 image1 = cv2.imread(path1, cv2.IMREAD_GRAYSCALE) image2 = cv2.imread(path2, cv2.IMREAD_GRAYSCALE) # 检查图片是否加载成功 if image1 is None: print("图片1加载失败,请检查路径或文件是否存在") if image2 is None: print("图片2加载失败,请检查路径或文件是否存在") # 如果图片加载成功,继续执行特征匹配 if image1 is not None and image2 is not None: # 初始化ORB检测器 orb = cv2.ORB_create() # 检测关键点和描述符 keypoints1, descriptors1 = orb.detectAndCompute(image1, None) keypoints2, descriptors2 = orb.detectAndCompute(image2, None) # 使用BFMatcher进行匹配 bf = cv2.BFMatcher(cv2.NORM_HAMMING, crossCheck=True) matches = bf.match(descriptors1, descriptors2) # 根据匹配点数量判断相似性 matches_count = len(matches) print(f"匹配点数量: {matches_count}") if matches_count > 400: # 阈值可以根据需求调整 print("图片相似") else: print("图片不相似") if __name__ == "__main__": panduan()