主要内容

estimateGeometricTransform2D

从匹配点对估计二维几何变换

描述

例子

tform= estimateGeometricTransform2D(matchedpoints1.matchedpoints2.transformType通过从一幅图像中映射匹配点中的嵌线来估计两幅图像之间的二维几何变换matchedpoints1.到另一幅图像中匹配点的嵌线matchedpoints2.

[tforminlierIndex) = estimateGeometricTransform2D (___另外,使用前一个语法中的输入参数返回指定每个匹配点对的向量或异常值。

[tforminlierIndex状态) = estimateGeometricTransform2D (___另外返回一个状态代码,指示函数是否可以估计转换,如果没有,则为原因。如果不指定状态输出,函数反而返回无法生成结果的条件的错误。

[___) = estimateGeometricTransform2D (___名称,值除了来自以前语法中的参数的任何组合,使用一个或多个名称值对参数指定其他选项。例如,'信心',99设置查找最大嵌套数的置信值为99

例子

全部折叠

读取图像并显示它。

原始= imread(“cameraman.tif”);imshow(原始)标题(“基础镜像”

扭曲并显示变换的图像。

扭曲= imresize(原始,0.7);扭曲= imrotate(扭曲、31);图imshow(扭曲)标题(改变了形象的

从原始图像和变换后的图像中检测和提取特征。

ptsoriginal =探测器(原版);ptsdistorted =检测到(扭曲);[特征诡计,validptsoriginal] =提取物(原始,冒号);[具有截图,validptsdistorted] =提取物(扭曲,ptordistored);

匹配和显示图像之间的特征。

index_pairs = matchfeatures(特征概述,特点);matchedptsoriginal = validptsoriginal(index_pairs(:,1));matchedptsdistorted = validptsdistorted(index_pairs(:,2));Figure ShowMatchedFeatures(原始,扭曲,Matchedptsoriginal,MatchedptsDistorted)标题(“与异常值匹配的SURF点”);

排除异常值,估计变换矩阵,并显示结果。

[tform,inlieridx] = eStimationGeometricTransform2D(MatchedPtsDistorted,matchedptsoriginal,“相似”);InLierptsDistorted = matchedptsdistorted(inlieridx,:);Inlierptsoriginal = MatchedPtpleSoriginal(Inlieridx,:);Figure ShowMatchedFeatures(原始,扭曲,inlierptsoriginal,InLierptsDistorted)标题(“匹配窗点”

利用估计变换从失真图像中恢复并显示原始图像。

outputView = imref2d(大小(原始));Ir = imwarp (tform扭曲,“OutputView”, outputView);图imshow (Ir);标题(恢复图像的);

输入参数

全部折叠

匹配来自第一张图像的点,指定为aKAZEPoints目的,角点目的,SURFPoints目的,MSERREGIONS目的,orbpoints.目的,Brikspoint.对象,或一个m-by-2矩阵,其中每一行是一对[Xy坐标和m是匹配点的数量。

第二幅图像中的匹配点,指定为aKAZEPoints目的,角点目的,SURFPoints目的,MSERREGIONS目的,orbpoints.目的,Brikspoint.对象,或一个m-by-2矩阵,其中每一行是一对[Xy坐标和m是匹配点的数量。

转换类型,指定为字符串。您可以将变换类型设置为'死板的'“相似”'仿射', 要么'投影'.每个变换类型需要最小数量的匹配点来估计变换。您通常可以通过使用更多数量的匹配点来提高转换的准确性。此表显示了与每个转换类型相关联的对象类型以及转换所需的匹配点的最小数量。

转换类型 tform对象 匹配点对的最小数目
'死板的' rigid2d. 2
“相似” Affine2d. 2
'仿射' Affine2d. 3.
'投影' projective2d 4.

数据类型:细绳

名称-值对的观点

指定可选的逗号分隔的对名称,值参数。名称是参数名称和价值是相应的价值。名称必须出现在引号内。可以以任意顺序指定多个名称和值对参数name1,value1,...,namen,valuen

例子:“信心”99设置查找最大嵌套数的置信值为99

最大随机试验数量,指定为逗号分隔对组成'maxnumtrial'和一个正整数。此值指定函数要查找匹配点对的随机尝试的数量。指定更高的值会导致功能执行额外的计算,这增加了查找inliers的可能性。

数据类型:单身的||INT8.|int16|int32|int64|uint8.|uint16|UINT32|UINT64

找到最大词数的信心指定为逗号分隔的对组成“信心”和范围内的正数标量(0,100)。增加该值会导致功能执行额外的计算,这增加了找到更多inliers的可能性。

数据类型:单身的||INT8.|int16|int32|int64|uint8.|uint16|UINT32|UINT64

从一个点到对应点的投影的最大距离,指定为由逗号分隔的对组成'maxdistance'和一个正数标量。'maxdistance'指定一个点与被视为嵌套点的相应点的投影位置之间的最大距离(以像素为单位)。相应的投影是基于估计变换的。

功能检查转换matchedpoints1.matchedpoints2.,然后计算应用变换后的每对匹配点之间的距离。如果一对匹配点之间的距离大于'maxdistance'值,然后该对被视为该转换的异常值。如果距离小于'maxdistance',则认为这一对是嵌套。

匹配点显示在图像1和图像2中。图1显示了图2中的点投影到图1上。

数据类型:单身的||INT8.|int16|int32|int64|uint8.|uint16|UINT32|UINT64

输出参数

全部折叠

几何变换,返回为rigid2d.Affine2d., 要么projective2d目的。

返回的几何变换矩阵地图映射inliersmatchedpoints1.对替代者matchedpoints2..方法指定的转换类型指定的对象transformType输入参数。

transformType tform
'死板的' rigid2d.
“相似” Affine2d.
'仿射' Affine2d.
'投影' projective2d

状态代码,返回0.1, 要么2.状态代码指示函数是否可以估计转换,如果不能,为什么会失败。

价值 描述
0. 没有错误
1 matchedpoints1.matchedpoints2.输入没有包含足够的点
2 没有找到足够的内层

如果不指定状态代码输出,如果它无法生成结果,则函数返回错误。

数据类型:int32

insliers指数,作为一个返回m- 1个逻辑向量,在哪里m是点对的数量。每个元素都包含一个逻辑1真的),表示对应的点对是嵌套点或逻辑点0.),表示对应的点对为离群点。

算法

该功能不包括使用M估计的样本共识(MSAC)算法的异常值。MSAC算法是随机样本共识(RANSAC)算法的变体。由于MSAC算法的随机性质,结果在运行之间可能不相同。

参考

哈特利,理查德和安德鲁·齐瑟曼。计算机视觉中的多视图几何.第二次。剑桥,英国;纽约:剑桥大学出版社,2003年。

Torr, p.h.s.和A. Zisserman。“MLESAC:一种新的用于估计图像几何的鲁棒估计器”。计算机视觉和图像理解78年,没有。1(2000年4月):138-56。https://doi.org/10.1006/cviu.1999.0832。

扩展能力

介绍了R2020b