# Apply ratio test # 比值测试,首先获取与 A距离最近的点 B (最近)和 C (次近), # 只有当 B/C 小于阀值时(0.75)才被认为是匹配, # 因为假设匹配是一一对应的,真正的匹配的理想距离为0 good = [] for m, n in matches: if m.distance < 0.5 * n.distance: good.append([m])
# cv2.drawMatchesKnn expects list of lists as matches. gray = np.ndarray([2, 2]) gray = cv2.drawMatchesKnn(gray1, kp1, gray2, kp2, good[:10], gray, flags=2) plt.imshow(gray), plt.show()