主要内容

由三角形组成的

立体图像中未畸变匹配点的三维位置

描述

例子

worldPoints=满足(matchedPoints1matchedPoints2stereoParams返回两个立体图像中匹配的未失真图像点对的三维位置。

worldPoints=满足(matchedPoints1matchedPoints2camProjection1camProjection2返回匹配对在世界坐标系统中的三维位置。这些位置由摄像机投影矩阵定义。

worldPointsreprojectionErrors=三角测量(___此外,使用以前语法中的任何输入参数返回世界点的重投影错误。

worldPointsreprojectionErrorsvalidIndex=三角测量(___另外返回有效和无效世界点的索引。有效点位于摄像机前面。

例子

全部折叠

加载立体参数。

负载(“webcamsSceneReconstruction.mat”);

读入立体图像对。

I1 = imread(“sceneReconstructionLeft.jpg”);I2 = imread(“sceneReconstructionRight.jpg”);

不扭曲图像。

I1 = undistortion timage (I1,stereoParams.CameraParameters1);I2 = undistortion timage (I2,stereoParams.CameraParameters2);

在两个图像中都检测一张脸。

faceDetector = vision.CascadeObjectDetector;face1 = faceDetector(I1);face2 = faceDetector(I2);

找到脸的中心。

Center1 = face1(1:2) + face1(3:4)/2;Center2 = face2(1:2) + face2(3:4)/2;

计算从摄像头1到人脸的距离。

point3d =三角测量(center1, center2, stereoParams);distanceInMeters = norm(point3d)/1000;

显示检测到的人脸和距离。

distanceAsString = sprintf(“% 0.2 f米”, distanceInMeters);I1 = insertObjectAnnotation(I1,“矩形”face1 distanceAsString,“字形大小”, 18);I2 = insertObjectAnnotation(I2,“矩形”face2 distanceAsString,“字形大小”, 18);I1 = insertShape(I1,“filled-rectangle”, face1);I2 = insertShape(I2,“filled-rectangle”, face2);imshowpair (I1、I2“蒙太奇”);

图中包含一个轴对象。axis对象包含一个image类型的对象。

输入参数

全部折叠

图像1中对应点的坐标,指定为的-by-2矩阵[数目]x y中描述的点特征对象之一点特征类型

图像1中对应点的坐标,指定为的-by-2矩阵[数目]x y中描述的点特征对象之一点特征类型

立体声系统的相机参数,指定为stereoParameters对象。该对象包含立体相机系统的内在、外在和镜头畸变参数。您可以使用estimateCameraParameters函数来估计相机参数并返回stereoParameters对象。

当你经过stereoParameters对象对函数,世界坐标系的原点位于相机的光学中心1。的x-轴指向右侧,则y-轴指向下方,而z-轴指向远离摄像机。

摄像机1的投影矩阵,指定为3 × 4矩阵。该矩阵将齐次坐标下的3-D点映射到摄像机图像中的对应点。这个输入描述了相机1在世界坐标系中的位置和方向。camProjection1必须是一个实数且非稀疏的数值矩阵。方法获取摄像机矩阵cameraProjection函数。

摄像机投影矩阵,传递给函数,定义世界坐标系。

摄像机2的投影矩阵,指定为3 × 4矩阵。该矩阵将齐次坐标下的3-D点映射到摄像机图像中的对应点。这个输入描述了摄像机2在世界坐标系中的位置和方向。camProjection2必须是一个实数且非稀疏的数值矩阵。方法获取摄像机矩阵cameraProjection函数。

摄像机投影矩阵,传递给函数,定义世界坐标系。

输出参数

全部折叠

匹配的未失真图像点对的三维位置,返回为3矩阵。矩阵包含[数目]xyz]两个立体图像中匹配的未失真图像点对的位置。

指定相机几何形状时使用stereoParams,世界点坐标相对于摄像机1的光学中心。

指定相机几何形状时使用camProjection1而且camProjection2时,世界点坐标由摄像机矩阵定义。

函数返回worldPoints作为数据类型matchedPoints1而且matchedPoints2为数据类型.否则,函数返回worldPoints作为数据类型

数据类型:|

重投影错误,返回为1的向量。该函数将每个世界点投影回两个图像中。然后,在每张图像中,该函数将重投影误差计算为检测点与重投影点之间的距离。的reprojectionErrors向量包含每个世界点的平均重投影误差。

世界点的有效性,返回为-by-1逻辑向量。有效点,表示为逻辑点1真正的),均位于摄影机前。无效分,记为逻辑分0),位于摄影机后面。

世界点相对于摄像机位置的有效性是通过使用摄像机矩阵和齐次坐标将世界点投影到图像上来确定的。如果得到的比例因子为正,则世界点是有效的。

提示

由三角形组成的功能不考虑镜头失真。控件可以对图像进行还原undistortImage函数在检测点之前。或者,您可以使用undistortPoints函数。

参考文献

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

扩展功能

版本历史

在R2014b中引入

全部展开

Baidu
map