首先读入图片
import cv2
import numpy as np
img1=cv2.imread("./picture1/picture1/1/14x00424.JPG")
img2=cv2.imread("./picture1/picture1/1/14x00425.JPG")
然后识别影像特征点及其特征点描述子
sift = cv2.SIFT_create(1000)
kp1, des1 = sift.detectAndCompute(img1, None)
kp2, des2 = sift.detectAndCompute(img2, None)
构建匹配器,执行KNN匹配。
bf=cv2.BFMatcher()
matches = bf.knnMatch(des1,des2,k=2)
"""
这里有个大坑,当你想这里直接画出所有的匹配时,
这里面的matches返回的是最近距离和次近距离的两个Dmacther元组。
如下图,直接用drawMatches函数时,matches1 to matches2就会是含有两个值的元组,然后出现BUG。
"""
但是在后续粗匹配时,我们又需要最近邻次距离之比做粗匹配筛选错点。如果不需要,建议直接用matches直接做暴力匹配。
但是