函数cv2.xfeatures2d.SIFT_create().detectAndCompute()的返回值

本文解析了在使用SIFT进行图像拼接时,如何创建SIFT生成器并理解关键点属性(如pt、angle、size等)。重点讲解了cv2.SIFT_create()与cv2.xfeatures2d.SIFT_create()的区别,以及关键点kp.pt的含义。
摘要由CSDN通过智能技术生成

在学习sift进行图像拼接程序时,发现别人写的代码里有一块知识不懂。

# 建立SIFT生成器
descriptor = cv2.SIFT_create()
# 检测SIFT特征点,并计算描述子
(kps, features) = descriptor.detectAndCompute(image, None)
kps = np.float32([kp.pt for kp in kps])

注:一般建立sift生成器是用函数cv2.xfeatures2d.SIFT_create()。这里使用的opencv版本是4.5.5,建议opencv版本是4.0以上时使用cv2.SIFT_create()。sift因为是有版权的,opencv版本中有3.4.2.16可以直接使用cv2.xfeatures2d.SIFT_create(),当opencv版本过高时cv2.xfeatures2d.SIFT_create()会出现如下情况

遇到这种情况建议回退opencv版本或者使用cv2.SIFT_create()

最初不明白kp.pt是什么意思,经查询得知

kps, features = cv2.SIFT_create().detectAndCompute()

如上函数的返回值里kps是关键点,它所包含的信息有:

pt:关键点点的坐标

angle:角度,表示关键点的方向。

size:该点直径的大小

octave:从金字塔哪一层提取的得到的数据。

response:响应程度,准确的说是该点角点的程度。

class_id:对图片进行分类时,可以用class_id对每个特征点进行区分,未设定时为-1,需要靠自己设定。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值