特征点匹配方式的选择

匹配方法,他们每个都使用描述符列表,称为查询列表,并与训练好的字典中的描述符进行比较。在这三组中,有三种方法:match(),knnMatch(),radiusMatch(),这些方法中的每一种以稍微不同的方式计算匹配()

match()方法需要通常cv::Mat格式的单个关键点描述符列表querryDesscriptors。在这种情况下,请记住每行代表单个描述符,每列是该描述符向量表示的一个维度。match()还需要一个cv::Dmatch对象的STL向量,它可以填充各个检测到的匹配项,在match()方法的情况下,查询列表上的每个关键点将与列表中的"最佳匹配"相匹配。

knnMatch()函数,它需要与match()相同的列表描述符,然而在这种情况下,对于查询列表中的每个描述符,它将从字典中找到特定数量的最佳匹配,该数由整数K指定,函数名中的knn代表K-最近邻。来自match()的cv::DMatch对象被代替成在knnMatch()方法中称为matches的cv::DMatch对象向量的向量。

radiusMatch():。与搜素k个最佳匹配的k近邻不同,半径匹配返回了查询描述符特定距离内的所有匹配。除了整数k代替最大距离maxDistance 之外,参数及radiusMatch()的均值都与knnMatch()的相同。

 

posted @   水木清扬  阅读(443)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
点击右上角即可分享
微信分享提示