(14)特征匹配

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()
原文地址:https://www.cnblogs.com/sunnyCx/p/8151253.html