matchFeatures

查找匹配功能

描述

例子

indexPairs= matchFeatures(features1,features2)在两个输入功能集的匹配特征的回报指标。输入要素必须是binaryFeatures对象或矩阵。

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

(indexPairs,matchmetric] = matchFeatures(features1,features2,名称,值)包含一个或多个指定的附加选项名称,值对参数。

例子

全部折叠

使用局部邻居关系和Harris算法在一对图像之间找到对应的兴趣点。

阅读立体图像。

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

找到的角落。

points1 = detectHarrisFeatures(I1);points2 = detectHarrisFeatures(I 2);

提取的相邻部分特征。

[功能1,valid_points1] = extractFeatures(I1,points1);[功能2,valid_points2] = extractFeatures(I2,points2);

匹配功能。

indexPairs = matchFeatures (features1 features2);

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

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

可视化对应的点。你可以看到两个图像之间转换的影响,尽管一些错误的比赛。

图;showMatchedFeatures (I1、I2 matchedPoints1 matchedPoints2);

使用SURF局部特征检测功能来找到两个图像之间的对应点,这两个图像是相互旋转和缩放的。

阅读这两幅图片。

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

找到SURF功能。

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

提取特征。

[F1,VPTS1] = extractFeatures(I1,points1);[F2,VPTS2] = extractFeatures(I2,points2);

检索匹配点的位置。

indexPairs = matchFeatures(F1,F2);matchedPoints1 = VPTS1(indexPairs(:,1));matchedPoints2 = VPTS2(indexPairs(:,2));

显示匹配的点。数据仍然包括一些异常值,但是您可以看到旋转和缩放对匹配特征显示的影响。

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

输入参数

全部折叠

特征集1,指定为binaryFeatures对象或1——- - - - - -N矩阵。矩阵包含了1特性,N对应于每个特征向量的长度。你可以得到binaryFeatures对象使用extractFeatures功能与快速视网膜关键点(畸形),面向快速旋转简要(ORB),或二进制稳健不变的可伸缩关键点(敏捷)描述符方法。

功能类型2,指定为binaryFeatures对象或2——- - - - - -N矩阵。矩阵包含了2功能和N对应于每个特征向量的长度。你可以得到binaryFeatures对象使用extractFeatures功能与快速视网膜关键点(畸形),面向快速旋转简要(ORB),或二进制稳健不变的可伸缩关键点(敏捷)描述符方法。

名称-值对的观点

指定可选的逗号分隔的对名称,值参数。名称参数名和是对应的值。名称必须出现在引号内。可以按任意顺序指定多个名称和值对参数Name1, Value1,…,的家

例:“指标”,固态硬盘的指定用于匹配度量功能平方差的总和。

匹配方法中,指定为逗号分隔的一对组成的“方法”,要么“详尽”要么'近似'。该方法规定了如何与最近的邻居features1features2被发现。两个特征向量匹配当它们之间的距离小于由所述阈值设置MatchThreshold参数。

“详尽”

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

'近似'

使用有效的近似近邻搜索。将此方法用于大型功能集。[3]

阈值,指定为由'组成的逗号分隔的对。MatchThreshold'和范围内的标量的百分比值(0100],缺省值被设置为10.0对于二进制特征向量或1.0用于非二进制特征向量。您可以使用匹配阈值选择最强的比赛。阈值代表一个完美的比赛距离的百分比。

两个特征向量匹配当它们之间的距离小于所述阈值集合通过MatchThreshold。当特征之间的距离大于的值时,函数拒绝匹配MatchThreshold。增加值返回更多的比赛。

输入,binaryFeatures对象通常需要更大的匹配阈值。的extractFeatures函数返回binaryFeatures提取FREAK,ORB,还是快步描述符时的对象。

比率阈值,指定为由'组成的逗号分隔的对。MaxRatio和范围(0,1)内的标量比值。使用最大比率来拒绝不明确的匹配。增加这个值以返回更多的匹配项。

特征匹配度量,指定为由'组成的逗号分隔的对。度规”,要么“伤心”要么固态硬盘的

“伤心” 绝对差和
固态硬盘的 差平方和

当输入特性设置时,应用此属性,features1features2,不binaryFeatures对象。当您指定的特点binaryFeatures目的,该函数使用的汉明距离来计算相似性度量。

唯一匹配,指定为逗号分隔的对,其中包含'独特的”,要么要么真正。将此值设置为真正之间只返回唯一的匹配features1features2

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

当您设置独特的真正时,功能执行前后匹配来选择一个唯一的匹配。匹配后features1features2,它匹配features2features1保持最佳匹配。

输出参数

全部折叠

的两个输入特征集之间的对应特征,返回作为索引P-by-2的矩阵P指数的数量。每个索引对对应于所述一个之间匹配的特征features1features2输入。第一个元素对特性进行索引features1。第二个元素将匹配的特征编入索引features2

匹配特征之间的距离,返回为p×1向量。的距离的值是基于所选择的度量。每th元素matchmetric对应于第i行的indexPairs输出矩阵。当度规被设置为悲伤的要么SSD中,特征向量计算之前归一化到单位矢量。

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

请注意

你不能选择汉明指标。它在什么时候被自动调用features1features2输入binaryFeatures

参考文献

[1]洛韦,戴维G.“特色图像从尺度不变关键点的功能”。国际计算机视觉杂志。容积60,第2号,第91-110。

[2] Muja, M.和D. G. Lowe。二进制特征的快速匹配。”计算机和机器人视觉会议。CRV, 2012年。

[3] Muja, M.和D. G. Lowe。快速近似最近邻与自动算法配置。国际计算机视觉理论与应用会议.VISAPP,2009年。

[4] Rublee, E., V. Rabaud, K. Konolige和G. Bradski。“ORB:一个有效的选择来筛选或冲浪。”In2011年计算机视觉国际会议论文集,2564 - 2571。2011年西班牙巴塞罗那。

扩展功能

介绍了R2011a