Python opencv画像類似度マッチングのORB+BF


原文住所:https://www.cnblogs.com/Lin-Yi/p/9433942.html
コードは次のとおりです.
# coding:utf-8

import cv2

"""
orb       
               logo     logo     
      orb               logo
    
"""
#                
img1 = cv2.imread("../data/logo1.png", cv2.IMREAD_GRAYSCALE)
img2 = cv2.imread("../data/album1.png", cv2.IMREAD_GRAYSCALE)

#   ORB         
orb = cv2.ORB_create()
#              
keypoint1, descriptor1 = orb.detectAndCompute(img1, None)
keypoint2, descriptor2 = orb.detectAndCompute(img2, None)
"""
keypoint            
descriptor                ,                 

         
         

                       

"""
#             
bf = cv2.BFMatcher(cv2.NORM_HAMMING, crossCheck=True)
#                   
maches = bf.match(descriptor1, descriptor2)
#            
maches = sorted(maches, key=lambda x: x.distance)
#      
img3 = cv2.drawMatches(img1, keypoint1, img2, keypoint2, maches[: 30], img2, flags=2)

cv2.imshow("matches", img3)
cv2.waitKey()
cv2.destroyAllWindows()