2.png
3.png
4.png
5.png
6.png
7.png
8.png
9.png
10.png
11.png
12.png
13.png
14.png
15.png
- sift = cv2.xfeatures2d.SIFT_create() 實例化
參數(shù)說明:sift為實例化的sift函數(shù)
- kp = sift.detect(gray, None) 找出圖像中的關(guān)鍵點
參數(shù)說明: kp表示生成的關(guān)鍵點,gray表示輸入的灰度圖眷篇,
- ret = cv2.drawKeypoints(gray, kp, img) 在圖中畫出關(guān)鍵點
參數(shù)說明:gray表示輸入圖片, kp表示關(guān)鍵點娃兽,img表示輸出的圖片
4.kp, dst = sift.compute(kp) 計算關(guān)鍵點對應(yīng)的sift特征向量
參數(shù)說明:kp表示輸入的關(guān)鍵點,dst表示輸出的sift特征向量裁着,通常是128維的
import numpy as np
import cv2
img = cv2.imread('test_1.jpg')
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
sift = cv2.xfeatures2d.SIFT_create()
# 找出關(guān)鍵點
kp = sift.detect(gray, None)
# 對關(guān)鍵點進(jìn)行繪圖
ret = cv2.drawKeypoints(gray, kp, img)
cv2.imshow('ret', ret)
cv2.waitKey(0)
cv2.destroyAllWindows()
# 使用關(guān)鍵點找出sift特征向量
kp, des = sift.compute(gray, kp)
print(np.shape(kp))
print(np.shape(des))
print(des[0])