主要内容

matchFeatures

找到匹配的特性

描述

例子

indexPairs= matchFeatures (features1features2返回两个输入特征集中匹配特征的索引。输入特性必须是其中之一binaryFeatures对象或矩阵。

indexPairsmatchmetric) = matchFeatures (features1features2也返回匹配特性之间的距离,索引为indexPairs

indexPairsmatchmetric) = matchFeatures (features1features2名称,值包括由一个或多个指定的附加选项名称,值对参数。

例子

全部折叠

利用局部邻域和Harris算法在一对图像之间找到对应的兴趣点。

阅读立体图像。

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个类型为image, line的对象。

利用SURF局部特征检测函数,找到两幅相互旋转和缩放的图像之间的对应点。

阅读这两张图片。

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

查找SURF功能。

里= 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个类型为image, line的对象。这些对象表示匹配点1,匹配点2。

输入参数

全部折叠

功能集1,指定为abinaryFeatures对象或一个1——- - - - - -N矩阵。矩阵包含了1特性,N对应于每个特征向量的长度。你可以获得binaryFeatures对象使用extractFeatures功能与快速视网膜关键点(FREAK),面向fast和旋转简要(ORB),或二进制鲁棒不变可扩展关键点(轻快)描述符方法。

功能集2,指定为abinaryFeatures对象或一个2——- - - - - -N矩阵。矩阵包含了2特性和N对应于每个特征向量的长度。你可以获得binaryFeatures对象使用extractFeatures功能与快速视网膜关键点(FREAK),面向fast和旋转简要(ORB),或二进制鲁棒不变可扩展关键点(轻快)描述符方法。

名称-值参数

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

例子:“指标”固态硬盘的指定特征匹配度量的差异平方和。

匹配方法,指定为逗号分隔的对,由'方法”,要么“详尽”“近似”.该方法指定了最接近的邻居之间的关系features1features2被发现。当两个特征向量之间的距离小于由MatchThreshold参数。

“详尽”

计算中特征向量之间的成对距离features1features2

“近似”

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

匹配阈值,指定为逗号分隔对,由'MatchThreshold和范围(0,100)内的标量百分比值。默认值设置为10.0为二值特征向量或1.0对于非二值特征向量。您可以使用匹配阈值来选择最强的匹配。阈值表示距离完美匹配距离的百分之一。

当两个特征向量之间的距离小于设定的阈值时,两个特征向量进行匹配MatchThreshold.当特性之间的距离大于值时,函数将拒绝匹配MatchThreshold.增加该值以返回更多匹配项。

输入,binaryFeatures对象通常需要更大的匹配阈值。的extractFeatures函数的作用是:返回binaryFeatures对象在提取FREAK、ORB或BRISK描述符时。

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

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

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

此属性适用于以下情况:features1features2,不binaryFeatures对象。当你指定特性为binaryFeatures对象,函数使用汉明距离来计算相似性度量。

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

当您设置独特的时,函数返回之间的所有匹配项features1features2.多个功能features1能匹配一个功能在features2

表示特征1的列,其中条目1和3被圈起来,指向表示特征2的列中的条目2

当您设置独特的真正的时,该函数执行向前-向后匹配以选择唯一匹配。匹配后features1features2,它匹配features2features1并保持最好的匹配。

输出参数

全部折叠

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

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

度规 范围 完美的匹配值
悲伤的 02√6大小features12)))。 0
固态硬盘 04 0
汉明 0, features1。NumBits 0

参考文献

David G. Lowe“来自比例不变关键点的独特图像特征”国际计算机视觉杂志.第60卷第2期91-110页。

Muja M.和D. G. Lowe。二值特征的快速匹配。计算机与机器人视觉会议.CRV, 2012年。

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

Rublee, E., V. Rabaud, K. Konolige和G. Bradski。ORB: SIFT或SURF的有效替代品。在2011国际计算机视觉会议论文集, 2564 - 2571。2011年西班牙巴塞罗那。

扩展功能

介绍了R2011a