话不多说,上代码
原理和应用场景在文章最后
import cv2
import numpy as np
# 读取图片
img1 = cv2.imread('你自己的第一张照片的路径', 0) #像我这样: img1 = cv2.imread('/home/local/wang/Downloads/MicrosoftTeams-image (12).png', 0)
img2 = cv2.imread('你自己的第二张照片的路径', 0)
# 初始化SIFT检测器
sift = cv2.SIFT_create()
# 寻找关键点和描述符
kp1, des1 = sift.detectAndCompute(img1, None)
kp2, des2 = sift.detectAndCompute(img2, None)
# 创建BFMatcher对象
bf = cv2.BFMatcher()
# 使用KNN匹配
matches = bf.knnMatch(des1, des2, k=2)
# 应用比率测试
good_matches = []
for m, n in matches:
if m.distance