主要内容

worldToImage

项目世界指向图像

描述

例子

imagePoints= worldToImage (intrinsicrotationMatrixtranslationVectorworldPoints根据相机的固有特性、旋转矩阵和平移向量,返回三维世界点的投影到图像中。

imagePointsvalidIndex) = worldToImage (___还返回使用任何前面的语法输入的图像边界内的有效图像点的索引。

___) = worldToImage (___“ApplyDistortion”,扭曲返回带有应用失真选项的投影。非鱼眼摄像机参数支持此语法。万博1manbetx

例子

全部折叠

创建一组校准图像。

图像= imageDatastore (fullfile (toolboxdir (“愿景”),“visiondata”...“校准”“单反”));

检测图像中的棋盘角。

[imagePoints, boardSize] = detectCheckerboardPoints (images.Files);

在以模式为中心的坐标系中生成棋盘角的世界坐标,左上角为(0,0)。

squareSize = 29;%在毫米worldPoints = generateCheckerboardPoints (boardSize squareSize);

校准相机。

cameraParams = estimateCameraParameters (imagePoints worldPoints);

在新位置加载图像。

imOrig = imread (fullfile (matlabroot“工具箱”“愿景”“visiondata”...“校准”“单反”“image9.jpg”));imshow (imOrig“InitialMagnification”, 30);

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

Undistort图像。

imUndistorted = undistortImage (imOrig cameraParams);

在新图像中找到一个参考对象。

[imagePoints, boardSize] = detectCheckerboardPoints (imUndistorted);

计算新的外在。

[R t] =外在(imagePoints, worldPoints cameraParams);

添加一个z坐标到世界点。

zCoord = 0(大小(worldPoints, 1), 1);worldPoints = [worldPoints zCoord];

投射的世界指向原来的图像。

projectedPoints = worldToImage (cameraParams R t, worldPoints);持有情节(projectedPoints (: 1) projectedPoints (:, 2),“g * - - - - - -”);传奇(“投影点”);持有

图中包含一个坐标轴。轴包含两个类型为image, line的对象。这个物体表示投影点。

输入参数

全部折叠

摄像机参数,指定为cameraIntrinsics或者一个fisheyeIntrinsics对象。该对象存储关于相机的固有校准参数的信息,包括镜头畸变参数。

世界坐标相对于图像坐标的三维旋转,指定为一个3 × 3矩阵。旋转矩阵,加上平移向量,使您能够将点从世界坐标系转换到摄像机坐标系。的rotationMatrixtranslationVector输入必须是相同的数据类型。

数据类型:|

世界坐标相对于图像坐标的三维平移,指定为1 × 3向量。平移向量,连同旋转矩阵,使您能够将点从世界坐标系转换到摄像机坐标系。的rotationMatrixtranslationVector输入必须是相同的数据类型。

数据类型:|

三维世界点,指定为3矩阵包含xyz三维世界点的坐标。

选择应用镜头失真,指定为真正的.当你将这个参数设置为真正的,该功能将镜头失真应用到输出imagePoints

该参数仅在使用cameraParameters对象作为cameraParams输入。

输出参数

全部折叠

图像点,返回为2的矩阵xy点坐标。

有效的索引返回为属性中指定有效映像点索引的逻辑数组imagePoints在图像边界内的输出。与指数相对应的世界点在相机的视场内。

介绍了R2016b