前言
特征识别主要就三步:
1.找特征点。2.描述特征点(描述子)。3.特征匹配(即描述子匹配)。
Q:特征点需要具备哪些特征呢?(懒得打字)
Q:描述子需要具备哪些特点呢?
具体到SIFT,SIFT描述的是一种图像的局部特征,其具有旋转(找主方向)、尺度(DOG)、亮度变化保持不变(HOG Normalization),对视角变化、仿射(特征点邻域高斯平滑)、噪声同样具有一定的稳定性。这也正是SIFT的厉害之处。
Pthon-Opencv Code: (这里要注意版本,因为SIFT有专利)
def sift_matching(img1, img2):
sift = cv2.xfeatures2d.SIFT_create() # 创建检测算法
kp1, des1 = sift.detectAndCompute(img1, None) # 检测关键点和计算描述符
kp2, des2 = sift.detectAndCompute(img2, None)
matches