用OpenCV(Python)获取图像的SIFT特征

python 复制代码
import cv2 as cv
import numpy as np
import matplotlib.pyplot as plt
img=cv.imread("../Lena.png")
img_gray=cv.cvtColor(img,cv.COLOR_BGR2GRAY)


#创建一个SIFI对象
sift=cv.SIFT_create()

#使用SIFT对象在灰度图像img_gray中检测关键点,结果存储在变量kp中
kp=sift.detect(img_gray,None)

#计算特征
#des(1100,128),一共有1100个关键点,每个关键点勇(128)长度的特征向量表示
#使用SIFT对象计算img_gray中kp的关键点,
# 计算出的关键点和描述符分别存储在keypoints和des中
kp2,des=sift.compute(img_gray,kp)
print("+++++++++++++++++++?++++++++++++++")
print(np.array(kp).shape) #(1100,)
print(np.array(kp2).shape) #(1100,)
print(des.shape) #(1100,128)
print("+++++++++++++++++++?++++++++++++++")

img2=cv.drawKeypoints(img_gray,kp,img)

plt.imshow(img2,cmap="gray")
plt.title("drawKeyPoints")
plt.show()
相关推荐
amazinging几秒前
北京-4年功能测试2年空窗-报培训班学测开-第四十一天
python·学习·appium
amazinging5 分钟前
北京-4年功能测试2年空窗-报培训班学测开-第三十九天
python·学习·appium
苦夏木禾29 分钟前
js请求避免缓存的三种方式
开发语言·javascript·缓存
胡耀超32 分钟前
标签体系设计与管理:从理论基础到智能化实践的综合指南
人工智能·python·深度学习·数据挖掘·大模型·用户画像·语义分析
超级土豆粉37 分钟前
Turndown.js: 优雅地将 HTML 转换为 Markdown
开发语言·javascript·html
博观而约取1 小时前
Django 数据迁移全解析:makemigrations & migrate 常见错误与解决方案
后端·python·django
wei_shuo2 小时前
飞算 JavaAI 开发助手:深度学习驱动下的 Java 全链路智能开发新范式
java·开发语言·飞算javaai
熊猫钓鱼>_>2 小时前
用Python解锁图像处理之力:从基础到智能应用的深度探索
开发语言·图像处理·python
蛋仔聊测试2 小时前
Playwright 中特定的 Fixtures
python
GO兔2 小时前
开篇:GORM入门——Go语言的ORM王者
开发语言·后端·golang·go