特征点表达
(1)构建梯度直方图,找到主方向
以3 × 1.5𝜎
为半径区域,计算这个区域内的梯度,构建梯度直方图,确定主方向。
(2)以主方向为中心取 8×8的窗口,并将其分成16个小区域,计算每一个小区域内8个方向的梯度直方图,这里我们将获得16x8=128 维的向量。
(3)归一化
为了克服光照的影响,我们对128维的向量进行归一化处理
SIFT特点:多尺度特征
光照鲁棒
旋转不变
import numpy as np
import cv2
img = cv2.imread('img.jpg')
gray= cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
sift = cv2.xfeatures2d.SIFT_create()
kp = sift.detect(gray,None)
img=cv2.drawKeypoints(gray,kp,img)
cv2.imshow('img',img)
cv2.waitKey()