主要内容

estimateEssentialMatrix

从一对图像中对应的点估计本质矩阵

描述

例子

E= estimateEssentialMatrix (matchedpoints1.matchedpoints2.cameraParams返回3乘3的基本矩阵,E,采用m估计样本一致性(MSAC)算法。输入点可以是2的矩阵的数量(xy]坐标,或一个KAZEPointsSURFPointsMSERRegionsBRISKPoints,或cornerPoints对象。的cameraParams对象包含用于拍摄图像的相机的参数。

E= estimateEssentialMatrix (matchedpoints1.matchedpoints2.cameraParams1cameraParams2返回由不同相机拍摄的两个图像的基本矩阵。cameraParams1cameraParams2cameraParameters分别包含摄像机1和摄像机2参数的对象。

EinliersIndex) = estimateEssentialMatrix (___此外返回一个1逻辑向量,inliersIndex,用于计算基本矩阵。函数将向量的元素设置为真正的用相应的点来计算基本矩阵。元素被设置为如果它们没有被使用。

EinliersIndex状态) = estimateEssentialMatrix (___另外,返回一个状态码来指示点数的有效性。

___) = estimateEssentialMatrix (___名称,值使用一个或多个指定的其他选项名称,值对参数。

例子

全部折叠

加载预计算的摄像机参数。

负载upToScaleReconstructionCameraParameters.mat

阅读并校正两幅图像。

imageDir = fullfile (toolboxdir (“愿景”),“visiondata”...“upToScaleReconstructionImages”);图像= imageDatastore (imageDir);I1 = undistortImage (readimage(图片1),cameraParams);I2 = undistortImage (readimage(图片2),cameraParams);I1gray = im2gray (I1);I2gray = im2gray (I2);

检测每个图像的特征点。

imagePoints1 = detectSURFFeatures (I1gray);imagePoints2 = detectSURFFeatures (I2gray);

从每个图像中提取特征描述符。

features1 = extractFeatures (I1gray imagePoints1,“正直”,真正的);features2 = extractFeatures (I2gray imagePoints2,“正直”,真正的);

匹配图像的特征。

indexPairs = matchFeatures (features1 features2);matchedPoints1 = imagePoints1 (indexPairs (: 1));matchedPoints2 = imagePoints2 (indexPairs (:, 2));图showMatchedFeatures (I1、I2 matchedPoints1 matchedPoints2);标题('推定匹配'

图中包含一个坐标轴。标题为推定匹配的轴包含类型为image, line的4个对象。

估计基本矩阵。

(E,内围层)= estimateEssentialMatrix (matchedPoints1 matchedPoints2,...cameraParams);

显示嵌套匹配。

inlierPoints1 = matchedPoints1(窗);inlierPoints2 = matchedPoints2(窗);图showMatchedFeatures (I1、I2 inlierPoints1 inlierPoints2);标题('Inlier Matches'

图中包含一个坐标轴。标题为Inlier Matches的轴包含4个类型为image, line的对象。

输入参数

全部折叠

图1中对应点的坐标,指定为- 2矩阵(xy坐标,或作为KAZEPointsSURFPointsBRISKPointsMSERRegions,或cornerPoints对象。的matchedpoints1.输入必须包含至少5个点,这些点可以通过使用诸如matchFeatures

图1中对应点的坐标,指定为- 2矩阵(xy坐标,或作为KAZEPointsSURFPointsMSERRegionsBRISKPoints,或cornerPoints对象。的matchedpoints2.输入必须包含至少5个点,这些点可以通过使用诸如matchFeatures

摄像机参数,指定为cameraParameters或者摄像头对象。你可以退回cameraParameters对象使用estimateCameraParameters函数。的cameraParameters对象包含相机的内在、外在和镜头畸变参数。

摄像头参数1,指定为acameraParameters或者摄像头对象。你可以退回cameraParameters对象使用estimateCameraParameters函数。的cameraParameters对象包含相机的内在、外在和镜头畸变参数。

摄像机参数2,指定为acameraParameters或者摄像头对象。你可以退回cameraParameters对象使用estimateCameraParameters函数。的cameraParameters对象包含相机的内在、外在和镜头畸变参数。

名称-值对的观点

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

例子:“MaxNumTrials”500

寻找异常值的最大随机试验数,指定为逗号分隔的对,由'MaxNumTrials和一个正整数。实际试验的次数取决于matchedpoints1.matchedpoints2.的价值信心参数。为了优化速度和准确性,选择随机试验的次数。

查找最大嵌套数所需的置信度,指定为逗号分隔对,由'信心和范围(0,100)内的百分比标量值。增加这个值可以提高输出的稳健性,但会增加计算量。

Sampson距离阈值,指定为逗号分隔对,包含'MaxDistance'和标量值。该函数使用阈值来查找以像素平方为单位返回的异常值。桑普森距离是点与极线之间几何距离的平方的一阶近似。增加这个值可以使算法收敛得更快,但这也会对结果的准确性产生不利影响。

输出参数

全部折叠

基本矩阵,返回为一个3 × 3的矩阵,由matchedpoints1.matchedpoints2.输入与已知的相机内在。

P 2 1 E 年代 年代 e n t 一个 l 一个 t r x P 1 1 0

P1图像1中的点,在归一化图像坐标中,对应于,P2点在图2中。

在计算机视觉中,基本矩阵是一个3 × 3的矩阵,它将立体图像中在归一化图像坐标下的对应点联系起来。当两台摄像机从两个不同的位置观察一个三维场景时,三维点之间的几何关系及其在二维图像上的投影导致了图像点之间的约束。同一场景的两个图像通过极线几何关系。

数据类型:

Inliers索引,返回为逻辑索引向量。元素设置为真正的表示相应的索引匹配点matchedpoints1.matchedpoints2.,用于计算本质矩阵。元素设置为表示索引点未用于计算。

数据类型:逻辑

状态代码,返回为下列可能值之一:

状态 价值
0 没有错误。
1 matchedpoints1.matchedpoints2.不要包含足够的积分。至少需要五点。
2 没有找到足够的内层。至少需要5个嵌套。

数据类型:int32

提示

使用estimateEssentialMatrix当你了解了相机的本质。您可以使用相机校准器应用程序。否则,您可以使用estimateFundamentalMatrix不需要相机固有功能。基本矩阵不能从共面世界点估计。

参考

Kukelova, Z., M. Bujnak, T. Pajdla5-pt和6-pt相对位姿问题的多项式特征值金宝搏官方网站解。英国利兹:BMVC, 2008。

[2] nist, D . .《五点相对姿态问题的有效解决方案》模式分析与机器智能学报。第26卷第6期,2004年6月。

Torr, P. H. S.和A. Zisserman。“MLESAC:一种新的用于估计图像几何的鲁棒估计器”。计算机视觉与图像理解。78卷,第1期,2000年4月,138-156页。

扩展功能

介绍了R2016b