特征点提取&生成描述
import cv2
import time
# 计算特征点提取&生成描述时间
start = time.time()
sift = cv2.xfeatures2d.SIFT_create()
# 使用SIFT查找关键点key points和描述符descriptors
kp1, des1 = sift.detectAndCompute(image1, None)
kp2, des2 = sift.detectAndCompute(image2, None)
end = time.time()
print("特征点提取&生成描述运行时间:%.2f秒"%(end-start))
kp_image1 = cv2.drawKeypoints(image1, kp1, None)
kp_image2 = cv2.drawKeypoints(image2, kp2, None)
plt.figure()
plt.imshow(kp_image1)
plt.savefig('kp_image1.png', dpi = 300)
plt.figure()
plt.imshow(kp_image2)
plt.savefig('kp_image2.png', dpi = 300)
# 查看关键点
print("关键点数目:", len(kp1))
for i in range(2):
print("关键点", i)
print("数据类型:", type(kp1[i]))
print("关键点坐标:", kp1[i].pt)
print("邻域直径:", kp1[i].size)
print("方向:", kp1[i].angle)
print("所在的图像金字塔的组:", kp1[i].oc

本文通过Python和OpenCV实现SIFT算法,详细介绍了如何提取图像特征点并生成描述符,展示了特征点匹配的过程及结果。此外,还探讨了基于FLANN的匹配方法。

1026

被折叠的 条评论
为什么被折叠?



