备注:SIFT算法的实质是在不同的尺度空间上查找关键点(特征点),并计算出关键点的方向。SIFT所查找到的关键点是一些十分突出,不会因光照,仿射变换和噪音等因素而变化的点,如角点、边缘点、暗区的亮点及亮区的暗点等。
参考地址:https://docs.opencv.org/3.4/d2/d29/classcv_1_1KeyPoint.html
测试代码:
import cv2 import numpy as np img = cv2.imread('4.jpg',cv2.IMREAD_COLOR) gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY) # cv2.imshow('origin',img) #SIFT detector = cv2.xfeatures2d.SIFT_create() keypoints = detector.detect(gray,None) cv2.drawKeypoints(gray,keypoints,img) points2f = cv2.KeyPoint_convert(keypoints) #将KeyPoint格式数据中的xy坐标提取出来。 print(keypoints) print(points2f) cv2.imshow('test',img) cv2.waitKey(0) cv2.destroyAllWindows()
测试效果: