主要内容

外在

计算校准相机的位置位置

描述

例子

[RotationMatrix.翻译科] =外在物质(图像点世界观点Cameraparams.的)返回3-D旋转矩阵和3-D平移向量,允许您将点从世界坐标转换到摄像机坐标系统。

例子

全部收缩

创建一组校准图像。

images = imagedataStore(fullfile(toolboxdir('想象'),'VisionData'......'校准''SLR'));

检测图像中的棋盘角。

[ImagePoints,BoardSize] =侦探校验erboardPoints(Images.files);

在以图案为中心的坐标系中生成棋盘角落的世界坐标,左上角(0,0)。方形尺寸为毫米。

squareSize = 29;worldPoints = generateCheckerboardPoints(boardSize, squareSize);

校准相机。

I = readimage(图片1);imageSize = [size(I,1), size(I,2)];cameraParams = estimateCameraParameters (imagePoints worldPoints,......“图象尺寸”,图片尺寸);

在新位置加载图像。

imorig = imread(fullfile(matlabroot,“工具箱”'想象''VisionData'......'校准''SLR''image9.jpg'));图imshow(imorig);标题(输入图像的);

图包含轴对象。具有标题输入图像的轴对象包含类型图像的对象。

未破坏图像。

[IM,Neworigin] = undostortimage(imorig,cameraparams,'outputview'“全部”);

在新图像中查找参考对象。

[imagePoints, boardSize] = detectCheckerboardPoints (im);

补偿图像坐标系偏移。

imagePoints = [imagePoints(:,1)+ neworigin(1),......imagePoints (:, 2) + newOrigin (2)];

计算新的外在内针。

[RotationMatrix,TranslationVector] =外在(......imagePoints、worldPoints cameraParams);

计算相机的姿势。

[orientation, location] = extrinsicsToCameraPose(rotationMatrix,......翻译传票器);图Plotcamera(“位置”,地点,“定位”,方向,'尺寸', 20);持有pcshow ([worldPoints, 0(大小(worldPoints, 1), 1)),......'verticalaxisdir'“下来”“MarkerSize”,40);

图包含轴对象。轴对象包含11个类型的线,文本,补丁,分散的对象。

输入参数

全部收缩

点的图像坐标,指定为M.-by-2阵列。阵列包含M.[Xy]坐标。这图像点世界观点输入必须是双倍的或两者都是单身的

数据类型:单身的|双倍的

与图像坐标相对应的世界坐标,指定为M.- 2矩阵。这图像点世界观点输入必须是双倍的或两者都是单身的。该函数假定该点是共面的Z.= 0和点数,M.,必须至少为4。

数据类型:单身的|双倍的

用于存储相机参数的对象,指定为aCameraparameters.cameraIntrinsics, 或者fisheyeintrinsics目的。这些对象由返回估计值功能,函数estissmeneyearameters.功能,或相机校准器应用程序。该对象包含相机的内在,外在和镜头失真参数。

输出参数

全部收缩

3-D旋转,返回为3×3矩阵。旋转矩阵与翻译矢量允许您从世界坐标转换到相机坐标系的点。

如果你设置了图像点世界观点输入上课双倍的,则函数返回RotationMatrix.翻译科作为双倍的。否则,他们是单身的

3-D翻译,返回为1×3载体。

如果你设置了图像点世界观点输入上课双倍的,则函数返回RotationMatrix.翻译科作为双倍的。否则,他们是单身的

算法

外在函数使用两个不同的算法来计算外在的内在文件世界观点被指定为一个M.- 2矩阵。用A.M.共面点的-by-2矩阵Z.= 0。

外在函数以闭合形式计算单个图像的旋转矩阵和平移向量。在定标过程中,对图像进行数值估计,以减小所有定标图像的重投影误差。因此,使用外在对其中一幅标定图像的函数返回的旋转矩阵和平移向量与标定时得到的略有不同。

扩展能力

介绍了R2014a