- sift = cv2.xfeatures2d.SIFT_create() 实例化
参数说明:sift为实例化的sift函数
- kp = sift.detect(gray, None) 找出图像中的关键点
参数说明: kp表示生成的关键点,gray表示输入的灰度图,
- ret = cv2.drawKeypoints(gray, kp, img) 在图中画出关键点
参数说明:gray表示输入图片, kp表示关键点,img表示输出的图片
4.kp, dst = sift.compute(kp) 计算关键点对应的sift特征向量
参数说明:kp表示输入的关键点,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()
# 找出关键点
kp = sift.detect(gray, None)
# 对关键点进行绘图
ret = cv2.drawKeypoints(gray, kp, img)
cv2.imshow('ret', ret)
cv2.waitKey(0)
cv2.destroyAllWindows()
# 使用关键点找出sift特征向量
kp, des = sift.compute(gray, kp)
print(np.shape(kp))
print(np.shape(des))
print(des[0])