用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()
相关推荐
YMWM_几秒前
python3继承使用
开发语言·python
JMchen1231 分钟前
AI编程与软件工程的学科融合:构建新一代智能驱动开发方法学
驱动开发·python·软件工程·ai编程
Once_day16 分钟前
C++之《程序员自我修养》读书总结(1)
c语言·开发语言·c++·程序员自我修养
勾股导航31 分钟前
OpenCV图像坐标系
人工智能·opencv·计算机视觉
喜欢喝果茶.34 分钟前
QOverload<参数列表>::of(&函数名)信号槽
开发语言·qt
亓才孓35 分钟前
[Class类的应用]反射的理解
开发语言·python
努力学编程呀(๑•ี_เ•ี๑)35 分钟前
【在 IntelliJ IDEA 中切换项目 JDK 版本】
java·开发语言·intellij-idea
小镇敲码人44 分钟前
深入剖析华为CANN框架下的Ops-CV仓库:从入门到实战指南
c++·python·华为·cann
island13141 小时前
CANN GE(图引擎)深度解析:计算图优化管线、内存静态规划与异构任务的 Stream 调度机制
开发语言·人工智能·深度学习·神经网络