主要内容

estimateGeometricTransform

从匹配点对估计几何变换

描述

例子

tform= estimateGeometricTransform (matchedPoints1matchedPoints2transformType返回一个二维几何变换对象,tform.的tform对象将嵌入器映射到matchedPoints1到内嵌matchedPoints2

该函数使用m估计样本一致性(MSAC)算法排除异常值。MSAC算法是随机样本共识(RANSAC)算法的一种变体。由于MSAC算法的随机性质,每次运行的结果可能不相同。

请注意

这个函数将在未来的版本中被删除。使用estimateGeometricTransform2destimateGeometricTransform3d提供更大功能的函数。

例子

tforminlierpoints1inlierpoints2) = estimateGeometricTransform (matchedPoints1matchedPoints2transformType返回相应的inlier点inlierpoints1inlierpoints2

例子

___状态) = estimateGeometricTransform (matchedPoints1matchedPoints2transformType的状态码01,或2.如果你不请求状态代码输出时,函数返回不能产生结果的条件的错误。

___) = estimateGeometricTransform (matchedPoints1matchedPoints2transformType名称,值使用一个或多个指定的附加选项名称,值对参数。

例子

全部折叠

读取图像并显示它。

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

扭曲并显示转换后的图像。

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

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

ptsOriginal = detectSURFFeatures(原始);ptsDistorted = detectSURFFeatures(扭曲);[featuresOriginal, validPtsOriginal] = extractFeatures(原始ptsOriginal);[featuresDistorted, validPtsDistorted] = extractFeatures(扭曲,ptsDistorted);

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

index_pairs = matchFeatures (featuresOriginal featuresDistorted);matchedPtsOriginal = validPtsOriginal (index_pairs (: 1));matchedPtsDistorted = validPtsDistorted (index_pairs (:, 2));图showMatchedFeatures(原始的、扭曲、matchedPtsOriginal matchedPtsDistorted)标题(“与异常值匹配的SURF点”);

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

[tform, inlierIdx] = estimateGeometricTransform2D (matchedPtsDistorted matchedPtsOriginal,“相似”);inlierPtsDistorted = matchedPtsDistorted (inlierIdx:);inlierPtsOriginal = matchedPtsOriginal (inlierIdx:);图showMatchedFeatures(原始的、扭曲、inlierPtsOriginal inlierPtsDistorted)标题(“匹配窗点”

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

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

输入参数

全部折叠

图像1中的匹配点,指定为aKAZEPointscornerPoints对象,SURFPoints对象,MSERRegions对象,ORBPoints对象,BRISKPoints或者一个[x,y]坐标的-by-2矩阵。该函数使用m估计样本一致性(MSAC)算法排除异常值。MSAC算法是随机样本共识(RANSAC)算法的一种变体。

图像2中的匹配点,指定为aKAZEPointscornerPoints对象,SURFPoints对象,MSERRegions对象,ORBPoints对象,BRISKPoints或者一个[x,y]坐标的-by-2矩阵。该函数使用m估计样本一致性(MSAC)算法排除异常值。MSAC算法是随机样本共识(RANSAC)算法的一种变体。

转换类型,指定为三个字符串之一。您可以将转换类型设置为任意一种“相似”仿射的,或“射影”.匹配的点对越多,估计变换的精度就越大。每种转换类型匹配点对的最小数目:

转换类型 匹配点对的最小数目
“相似” 2
仿射的 3.
“射影” 4

数据类型:字符

名称-值对的观点

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

例子:“信心”99将置信值设置为99

查找嵌套的最大随机试验数,指定为逗号分隔的对,包含'MaxNumTrials和一个正整数标量。增加这个值会提高结果的稳健性,但会牺牲额外的计算。

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64

查找inliers的最大数目的置信度,指定为逗号分隔对,由'信心和范围(0 100)内的百分比数字标量。增加这个值会提高结果的稳健性,但会牺牲额外的计算。

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64

从一个点到其相应点的投影的最大像素距离,指定为逗号分隔对,由'MaxDistance'和一个正数标量。相应的投影是基于估计变换的。

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64

输出参数

全部折叠

几何变换,返回为affine2d对象或一个projective2d对象。

返回的几何变换矩阵映射内嵌线matchedPoints1到内嵌matchedPoints2.当你设置transformType输入到“相似”仿射的时,函数返回anaffine2d对象。否则,返回aprojective2d对象。

状态代码,作为值返回01,或2

状态 描述
0 没有错误。
1 matchedPoints1matchedPoints2输入没有包含足够的点。
2 没有找到足够的内层。

如果你不请求状态代码输出时,该函数将为两个不能产生结果的条件抛出错误。

数据类型:

图1中的Inlier点,返回与输入匹配点相同的类型。

图2中的Inlier点,返回与输入匹配点相同的类型。

参考文献

[1] Hartley, R., and A. Zisserman,《计算机视觉中的多视图几何》剑桥大学出版社, 2003年。

[2] Torr, P. H. S, and A. Zisserman,“MLESAC:一种新的用于估计图像几何形状的鲁棒估计方法”,计算机视觉与图像理解,2000年。

扩展功能

介绍了R2013a