主要内容

由三角形组成的

3 d立体影像不失真匹配点的位置

描述

例子

worldPoints=满足(matchedPoints1,matchedPoints2,stereoParams)返回匹配的三维位置对无畸变的图像分两个立体影像。

worldPoints=满足(matchedPoints1,matchedPoints2,cameraMatrix1,cameraMatrix2)返回匹配的三维位置对的世界坐标系统。这些位置是由摄像机投影矩阵。

(worldPoints,reprojectionErrors)=满足(___)另外世界点返回reprojection错误从先前的语法使用任何输入参数。

(worldPoints,reprojectionErrors,validIndex)=满足(___)另外世界点返回有效和无效的指标。有效的点是坐落在镜头前。

例子

全部折叠

负载立体声参数。

负载(“webcamsSceneReconstruction.mat”);

读的立体图像。

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

Undistort图像。

I1 = undistortImage (I1, stereoParams.CameraParameters1);I2 = undistortImage (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 =规范(point3d) / 1000;

显示检测到的脸和距离。

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

图包含一个坐标轴对象。坐标轴对象包含一个类型的对象的形象。

输入参数

全部折叠

点的坐标在图片1中,指定为一个2的矩阵的数量(xy)坐标,或作为KAZEPoints,SURFPoints,MSERRegions,cornerPoints,或BRISKPoints对象。的matchedPoints1matchedPoints2输入必须包含点匹配使用等功能matchFeatures

在图2的坐标点,指定为一个2的矩阵的数量(xy)坐标,或作为KAZEPoints,SURFPoints,MSERRegions,cornerPoints,或BRISKPoints对象。的matchedPoints1matchedPoints2输入必须包含点匹配使用等功能matchFeatures

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

当你通过stereoParameters函数对象,世界坐标系的原点位于相机的光学中心1。的x设在点向右y设在分下来,z设在点远离相机。

投影矩阵的摄像机1,指定为一个4-by-3矩阵。矩阵地图三维齐次坐标点在图像中对应点的相机。这个输入描述相机的位置和方向1在世界坐标系中。cameraMatrix1必须是一个真正的和nonsparse数字矩阵。您可以获得使用摄像机矩阵cameraMatrix函数。

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

投影矩阵照相机2,指定为一个4-by-3矩阵。矩阵地图三维齐次坐标点在图像中对应点的相机。这个输入描述相机的位置和方向2在世界坐标系中。cameraMatrix2必须是一个真正的和nonsparse数字矩阵。您可以获得使用摄像机矩阵cameraMatrix函数。

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

输出参数

全部折叠

三维位置匹配的成对的无畸变的图像点,作为一个返回3矩阵。矩阵包含了的数量(xyz]匹配双无畸变的像点的位置由两个立体图像。

当你指定相机几何使用stereoParams,世界点坐标是相对于相机的光学中心1。

当你指定相机几何使用cameraMatrix1cameraMatrix2,世界点坐标是由摄像机矩阵。

函数返回worldPoints作为数据类型matchedPoints1matchedPoints2的数据类型。否则,函数返回worldPoints作为数据类型

数据类型:|

Reprojection错误,作为一个返回1的向量。功能项目每个世界点回两个图像。在每一个图像,函数计算reprojection错误检测和reprojected点之间的距离。的reprojectionErrors向量包含每个世界点的平均reprojection错误。

有效性的点,作为一个返回1逻辑向量。有效的点,表示逻辑1(真正的),位于在镜头前。无效的点,表示逻辑0(),位于后面的相机。

世界点的有效性对相机的位置是由世界点情绪投射到图像使用摄像机矩阵和齐次坐标。世界上是有效的,如果由此产生的比例因子是正的。

提示

由三角形组成的函数不占透镜畸变。你可以undistort图片使用undistortImage函数之前检测的点。或者,您可以使用undistort点自己undistortPoints函数。

引用

a[1]哈特利,r和Zisserman。在计算机视觉“多视图几何。”剑桥大学出版社,312年,页2003。

扩展功能

版本历史

介绍了R2014b