主要内容

matchFeatures

找到匹配的特性

描述

例子

indexPairs= matchFeatures (features1,features2)返回索引匹配特性的两个输入特性集。必须输入特性binaryFeatures对象或矩阵。

(indexPairs,matchmetric)= matchFeatures (features1,features2)还返回匹配之间的距离特性,索引indexPairs

(indexPairs,matchmetric)= matchFeatures (features1,features2,名称=值)指定选项使用一个或多个名称参数除了参数从以前的语法的任意组合。例如,matchFeatures(__、方法=“详尽”)设置匹配方法详尽的

例子

全部折叠

找到相应的兴趣点之间的一对图像使用本地neighbhorhoods和哈里斯算法。

看立体影像。

I1 = im2gray (imread (“viprectification_deskLeft.png”));I2 = im2gray (imread (“viprectification_deskRight.png”));

找到角落。

里= detectHarrisFeatures (I1);points2 = detectHarrisFeatures (I2);

提取社区功能。

[features1, valid_points1] = extractFeatures (I1,里);[features2, valid_points2] = extractFeatures (I2 points2);

匹配特性。

indexPairs = matchFeatures (features1 features2);

检索每个图像的对应点的位置。

matchedPoints1 = valid_points1 (indexPairs (: 1):);matchedPoints2 = valid_points2 (indexPairs (:, 2):);

可视化对应点。你可以看到两张图片之间的翻译的影响尽管几个错误匹配。

图;showMatchedFeatures (I1、I2 matchedPoints1 matchedPoints2);

图包含一个坐标轴对象。坐标轴对象包含4图像类型的对象,线。一个或多个行显示的值只使用标记”width=

看两张图片。

I1 = imread (“cameraman.tif”);I2 = imresize (imrotate (I1, -20), 1.2);

找到浏览功能。

里= detectSURFFeatures (I1);points2 = detectSURFFeatures (I2);

提取特征。

[f1, vpts1] = extractFeatures (I1,里);[f2, vpts2] = extractFeatures (I2 points2);

检索匹配点的位置。

indexPairs = matchFeatures (f1、f2);matchedPoints1 = vpts1 (indexPairs (: 1));matchedPoints2 = vpts2 (indexPairs (:, 2));

显示匹配的点。数据还包括一些局外人,但是你可以看到旋转和缩放的影响显示的匹配特性。

图;showMatchedFeatures (I1、I2 matchedPoints1 matchedPoints2);传奇(“匹配点1”,“匹配点2”);

图包含一个坐标轴对象。坐标轴对象包含4图像类型的对象,线。一个或多个行显示的值只使用标记这些对象代表匹配点1,匹配点2。”width=

输入参数

全部折叠

功能设置1,指定为一个binaryFeatures对象,一个M1——- - - - - -N矩阵,或作为一个特性中描述的对象点特征类型。矩阵包含了M1特性,N对应于每个特征向量的长度。你可以获得binaryFeatures对象使用extractFeatures函数的快速视网膜关键点(怪物),面向快速旋转短暂(ORB)或二进制健壮的不变的可伸缩的要点(快)描述符的方法。

功能组2,指定为一个binaryFeatures对象,一个平方米——- - - - - -N矩阵,或作为一个特性中描述的对象点特征类型。矩阵包含了平方米特性,N对应于每个特征向量的长度。你可以获得binaryFeatures对象使用extractFeatures函数的快速视网膜关键点(怪物),面向快速旋转短暂(ORB)或二进制健壮的不变的可伸缩的要点(快)描述符的方法。

名称-值参数

指定可选的双参数作为Name1 = Value1,…,以=家,在那里的名字参数名称和吗价值相应的价值。名称-值参数必须出现在其他参数,但对的顺序无关紧要。

R2021a之前,用逗号来分隔每一个名称和值,并附上的名字在报价。

例子:方法=“详尽”设置匹配方法详尽的

匹配方法,指定为“详尽”“近似”。指出该方法最近的邻居之间features1features2被发现。两个特征向量匹配,当它们之间的距离小于设定的阈值MatchThreshold参数。

“详尽”

计算两两特征向量之间的距离features1features2

“近似”

使用一个有效的近似最近邻搜索。使用这种方法对于大型特性集。[3]

匹配阈值,指定为一个标量值百分比范围内(0100)。设置为默认值10.0对二进制或特征向量1.0对于二进制特征向量。您可以使用匹配阈值选择最强的比赛。阈值代表百分之一的距离一个完美的匹配。

两个特征向量匹配,当它们之间的距离小于设定的阈值MatchThreshold。函数时拒绝匹配特性之间的距离大于的价值MatchThreshold。增加价值返回更多的比赛。

输入,binaryFeatures对象匹配阈值通常需要一个更大的值。的extractFeatures函数的作用是:返回binaryFeatures对象提取狂时,ORB,或轻快的描述符。

比率阈值,指定为一个标量比率值范围(0,1)。拒绝使用max率模糊匹配。增加这个值返回更多的比赛。

特征匹配度量,指定为“悲伤”“SSD”

“悲伤” 的绝对差异
“SSD” 的平方之和的差异

这个属性适用于输入特性集,features1features2,不binaryFeatures对象。当你指定特性binaryFeatures对象,函数使用的汉明距离计算相似度度量。

独特的匹配,指定为真正的。将这个值设置为真正的返回唯一匹配之间features1features2

当您设置独特的之间的函数返回所有匹配features1features2。多个功能features1可以匹配到一个功能features2

列代表特征与条目1和3圈1,指着条目2列代表功能2”height=

当您设置独特的真正的,函数执行forward-backward匹配选择一个独特的比赛。匹配后features1features2,它匹配features2features1并保持最佳匹配。

输出参数

全部折叠

指数两个输入特性集之间的对应的功能,作为一个返回P2的矩阵P数量的指标。每个索引一对对应于之间的匹配特性features1features2输入。第一个元素的索引功能features1。第二个元素索引匹配的功能features2

距离匹配特性,作为一个返回p1的向量。基于距离度量的价值选择。每一个th元素matchmetric对应于th行indexPairs输出矩阵。当度规是设置为悲伤的固态硬盘之前,特征向量归一化单位向量计算。

度规 范围 完美的匹配值
悲伤的 (0,2*√6(大小(features1,2)))。 0
固态硬盘 (0,4] 0
汉明 (0,features1.NumBits] 0

引用

[1]劳,大卫G。“独特的形象特征尺度不变的要点。”国际计算机视觉杂志》上。60卷,2号,第91 - 110页。

[2]Muja, M。,和D. G. Lowe. "Fast Matching of Binary Features. "会议上电脑和机器人视觉。CRV, 2012年。

[3]Muja, M。,和D. G. Lowe. "Fast Approximate Nearest Neighbors with Automatic Algorithm Configuration."国际会议上计算机视觉理论和应用程序.VISAPP, 2009年。

[4]Rublee E。,V. Rabaud, K. Konolige and G. Bradski. "ORB: An efficient alternative to SIFT or SURF." In2011年国际会议上计算机视觉学报》上,2564 - 2571。2011年西班牙巴塞罗那。

扩展功能

版本历史

介绍了R2011a