matches = sorted(matches, key = lambda x: x.distance)
src_pts = np.float32([ kp1[m.queryIdx].pt for m in matches ]).reshape(-1,1,2)
dst_pts = np.float32([ kp2[m.trainIdx].pt for m in matches ]).reshape(-1,1,2)
M, mask = cv2.findHomography(src_pts, dst_pts, cv2.RANSAC,5.0)
matchesMask = mask.ravel().tolist()
Я использую значение в matchMask в качестве значений, которые оказываются слишком сильно затронутыми Ransac, я пытался получить только первые 100 лучших совпадений из совпадений, но процент выбросов все еще был слишком высоким.