1.之前有模板匹配,需要一个完美或者接近完美的匹配,但是不能找出不同角度,不同光线或者不同旋转的图片
而这里的特征匹配则可以克服这些
2.当显示10个匹配点时,完全正确。显示18个时,出现一些误判的现象
import cv2 import numpy as np import matplotlib.pyplot as plt img1=cv2.imread('opencv-feature-matching-template.jpg',0) img2=cv2.imread('opencv-feature-matching-image.jpg',0) orb=cv2.ORB_create() kp1,des1=orb.detectAndCompute(img1,None) kp2,des2=orb.detectAndCompute(img2,None) bf=cv2.BFMatcher(cv2.NORM_HAMMING,crossCheck = True) matches=bf.match(des1,des2) matches=sorted(matches,key=lambda x:x.distance) #显示10个匹配点 img3=cv2.drawMatches(img1,kp1,img2,kp2,matches[:10],None,flags=2) plt.imshow(img3) plt.show()