estimateGeometricTransform

估计几何从匹配点对变换

描述

tform= estimateGeometricTransform(matchedPoints1matchedPoints2transformType返回2-d几何变换对象,tform。的tform对象映射内围层中matchedPoints1在正常值matchedPoints2

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

[tforminlierpoints1inlierpoints2] = estimateGeometricTransform(matchedPoints1matchedPoints2transformType返回在相应的内点分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);标题(“匹配的冲浪点,包括异常值”);

排除异常值,并计算变换矩阵。

[TForm的,inlierPtsDistorted,inlierPtsOriginal] =...estimateGeometricTransform(matchedPtsDistorted,matchedPtsOriginal,...“相似”);图;showMatchedFeatures(原件,扭曲,...inlierPtsOriginal,inlierPtsDistorted);标题(“符合条件的内围点”);

从失真图像恢复原始图像。

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

输入参数

全部折叠

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

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

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

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

数据类型:字符

名称-值对的观点

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

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

查找inliers的最大随机试验次数,指定为逗号分隔的对,由“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对象。

返回的几何变换矩阵将inliers映射进去matchedPoints1在正常值matchedPoints2。当您设置transformType输入要么“相似”“仿射”,该函数返回一个affine2d对象。否则,返回aprojective2d对象。

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

状态 描述
0 没有错误。
1 matchedPoints1matchedPoints2输入不包含足够的积分。
2 没有足够的正常值发现。

如果你不要求状态码输出,则该函数将抛出错误对于不能产生结果的两个条件。

数据类型:

内点图像中1个点,返回作为相同类型的输入匹配点。

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

参考文献

哈特利,R.,和A. Zisserman,“计算机视觉中的多视图几何”,剑桥大学出版社, 2003年。

MLESAC:一种新的鲁棒估计器与应用于图像几何估计,"计算机视觉和图像理解, 2000年。

扩展功能

介绍了R2013a