import cv2
from skimage import transform as transform
from skimage.feature import (match_descriptors, ORB, plot_matches)
img1=cv2.imread('C:/Users/xpp/Desktop/Lena.png',0)#原始图像
img2=cv2.imread('C:/Users/xpp/Desktop/face.png',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)#创建BF暴力匹配对象
matches=bf.match(des1,des2)#匹配描述符。
matches=sorted(matches,key=lambda x:x.distance)#按距离的顺序排列
img3 = cv2.drawMatches(img1,kp1,img2,kp2,matches[:30], None, flags=2)#前20个点绘制直线
pylab.figure(figsize=(20,10))
pylab.imshow(img3)
pylab.show()
算法:ORB暴力匹配是一幅图像的特征描述符与另一幅图像中的所有特征匹配(使用一些距离度量),并返回最近的一个。ORB算法结合了FAST算法与BRIEF算法优点,是目前最快的目标检测算法。
文献:Bian, J., Lin, W. Y., Matsushita, Y., Yeung, S. K., Nguyen, T. D., & Cheng, M. M. (2017). Gms: Grid-based motion statistics for fast, ultra-robust feature correspondence. In Proceedings of the IEEE conference on computer vision and pattern recognition (pp. 4181-4190).
本文分享自 图像处理与模式识别研究所 微信公众号,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文参与 腾讯云自媒体同步曝光计划 ,欢迎热爱写作的你一起参与!