OpenCV | sift函数使用——得到特征点

scale invariant feature transform (sift)

图像尺度空间

在一定的范围内,无论物体是大还是小,人眼都可以分辨出来,然而计算机要有相同的能力却很难,所以要让机器能够对物体在不同尺度下有一个统一的认知, 就需要考虑图像在不同的尺度下都存在的特点

lena.jpg

python 复制代码
import cv2
import numpy as np

img = cv2.imread('lena.jpg')
gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)

另外,需要查一下自己OpenCV的版本号,如果过低或者最新的都是可以用相关函数的。

python 复制代码
cv2.__version__

这里可以输出自己的版本号

得到特征点

python 复制代码
sift = cv2.xfeatures2d.SIFT_create()
kp = sift.detect(gray,None)
python 复制代码
img = cv2.drawKeypoints(gray,kp,img)
cv2.imshow('drawKeypoints',img)
cv2.waitKey(0)
cv2.destroyAllWindows()

输出结果:

计算特征

python 复制代码
kp,des = sift.compute(gray,kp)
python 复制代码
print (np.array(kp).shape)

输出结果:

复制代码
(319,)
python 复制代码
des.shape

输出结果:

python 复制代码
(319, 128)
python 复制代码
des[0]

输出结果:

相关推荐
AAA小肥杨4 小时前
transformer库中的kv cache分析与调试
人工智能
染指11104 小时前
158.Agent-LangGraph-子图(共享状态和不共享状态模式)
开发语言·人工智能·python·ui·agent·agents
会议咨询4 小时前
2027年智慧能源、大数据应用与人工智能国际会议(SEBA 2027)
大数据·人工智能·能源
执伞人ONLY4 小时前
AI知识库自动化知识加工没做对,人工整理永远追不上知识产生
运维·人工智能·自动化
汤姆宝库4 小时前
安全深拆:越狱物理、注入攻击与纵深防御
人工智能·安全·机器学习·ai
微尘hjx4 小时前
【AI视觉软件 03】基于 Ultralytics + DeepSORT 的多目标跟踪与改进(支持YOLO全系列,重点车跟踪)
人工智能·yolo·目标跟踪·视觉检测·deepsort·ultralytics·车跟踪
GJGCY5 小时前
金融AI Agent厂商怎么选?系统集成、API/RPA、权限审计与异常恢复能力评估
人工智能·经验分享·ai·金融·智能体
D_C_tyu5 小时前
AI Vibe Coding | AI能力评估提示词参考
人工智能·提示词·vibe coding
IT_陈寒5 小时前
Python的列表推导式用不好真的会爆内存你知道吗
前端·人工智能·后端