import cv2
import numpy as np
img = cv2.imread('s2.jpg')
gray= cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
descriptor = cv2.xfeatures2d.SIFT_create()
kps = descriptor.detect(img,None)
cv2.drawKeypoints(img,kps,img,(0,0,255))
cv2.imwrite('sift_keypoints.jpg',img)
這裏的kps就是關鍵點。它所包含的信息有:
angle:角度,表示關鍵點的方向,通過Lowe大神的論文可以知道,爲了保證方向不變形,SIFT算法通過對關鍵點周圍鄰域進行梯度運算,求得該點方向。-1爲初值。
class_id:當要對圖片進行分類時,我們可以用class_id對每個特徵點進行區分,未設定時爲-1,需要靠自己設定
octave:代表是從金字塔哪一層提取的得到的數據。
pt:關鍵點點的座標
response:響應程度,代表該點強壯大小,更確切的說,是該點角點的程度。
size:該點直徑的大小