OpenCV - 特征匹配(Python实现)

这篇博客详细介绍了OpenCV中特征匹配的方法,包括蛮力匹配和FLANN匹配器的使用。通过BFMatcher对象进行SIFT描述符的匹配,并讨论了匹配条件的设置。此外,还探讨了FLANN匹配器在大数据集上的优势。
摘要由CSDN通过智能技术生成

蛮力( Brute-Force)匹配

Brute-Force匹配非常简单,首先在第一幅图像中选取一个关键点然后依次与第二幅图像的每个关键点进行(描述符)距离测试,最后返回距离最近的关键点.

对于BF匹配器,首先我们必须使用cv2.BFMatcher()创建 BFMatcher 对象。它需要两个可选的参数.

  1. 第一个是normType,它指定要使用的距离测量,默认情况下,它是cv2.NORM_L2.它适用于SIFT,SURF等(cv2.NORM_L1也在那里).对于基于二进制字符串的描述符,如ORB,BRIEF,BRISK等,应使用cv2.NORM_HAMMING,使用汉明距离作为度量,如果ORB使用WTA_K == 3or4,则应使用cv2.NORM_HAMMING2.
  2. crossCheck:默认值为False。如果设置为True,匹配条件就会更加严格,只有到A中的第i个特征点与B中的第j个特征点距离最近,并且B中的第j个特征点到A中的第i个特征点也是最近时才会返回最佳匹配,即这两个特征点要互相匹配才行.

两个重要的方法是BFMatcher.match()BFMatcher.knnMatch(), 第一个返回最佳匹配, 第二种方法返回k个最佳匹配,其中k由用户指定.

使用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值