用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()
相关推荐
吴秋霖3 分钟前
【某音电商】protobuf聊天协议逆向
python·算法·protobuf
深藏功yu名3 分钟前
Day24:向量数据库 Chroma_FAISS 入门
数据库·人工智能·python·ai·agent·faiss·chroma
了一梨6 分钟前
[T113] 交叉编译 OpenCV 4.5.2 + face 模块
linux·笔记·opencv
m0_5879589511 分钟前
C++中的命令模式变体
开发语言·c++·算法
~无忧花开~23 分钟前
React生命周期全解析
开发语言·前端·javascript·react.js·前端框架·react
剑心诀25 分钟前
02 数据结构(C) | 线性表——顺序表的基本操作
c语言·开发语言·数据结构
cm65432034 分钟前
用Python破解简单的替换密码
jvm·数据库·python
人间打气筒(Ada)40 分钟前
如何基于 Go-kit 开发 Web 应用:从接口层到业务层再到数据层
开发语言·后端·golang
2501_9249526943 分钟前
代码生成器优化策略
开发语言·c++·算法
wan9yu1 小时前
为什么你需要给 LLM 的数据"加密"而不是"脱敏"?我写了一个开源工具
python