升级OpenCV 解决角点检测算法SIFT因专利问题无法使用的问题
参考
OpenCV 角点检测: https://www.cnblogs.com/wj-1314/p/13364875.html
2020年3月17日之后一代传奇算法SIFT专利到期: https://blog.csdn.net/cleanlii/article/details/109561089
PyPi.org上最新的OpenCV版本,
从国内镜像下载速度会更快,参考我的博客
Python 代码
import cv2
import numpy as np
img = cv2.imread('test_1.png')
print('imgshape', img.shape)
# imgshape (800, 1200, 3)
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
# gray = np.float32(gray)
#2020年3月17日之后一代传奇算法SIFT专利到期
#https://blog.csdn.net/cleanlii/article/details/109561089
#opencv SURF 专利 好像也有专利问题
# 得到特征点
#sift = cv2.xfeatures2d.SIFT_create()
sift = cv2.SIFT_create()
kp = sift.detect(gray, None)
# kp 是封装好的东西,我们看不见,只能展示
img = cv2.drawKeypoints(gray, kp, img)
img = cv2.resize(img, None, fx=0.5, fy=0.5)
cv2.imshow('dst', img)
cv2.waitKey(0)
cv2.destroyAllWindows()
# 计算特征
kp, des = sift.compute(gray, kp)
print(np.array(kp).shape) # (6827,)
print(des.shape) # (6827, 128)
print(des[0])