文档

cameraMatrix

摄像机投影矩阵

描述

例子

camMatrix= cameraMatrix (cameraParams,rotationMatrix,translationVector)返回一个4-by-3摄像机投影矩阵。您可以使用这个矩阵项目3 d世界在齐次坐标点为一个图像。

例子

全部折叠

创建一套校准图片。

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

检测图像中的棋盘角。

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

生成的世界坐标棋盘角落pattern-centric坐标系,在左上角(0,0)。广场在毫米大小。

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

校准相机。

I = readimage(图片1);图象尺寸=[(我,1),大小(我,2)];cameraParams = estimateCameraParameters (imagePoints worldPoints,“图象尺寸”、图象尺寸);

加载图像新的位置。

imOrig = imread (fullfile (matlabroot“工具箱”,“愿景”,“visiondata”,“校准”,“单反”,“image9.jpg”));图;imshow (imOrig);标题(输入图像的);

Undistort形象。

我= undistortImage (imOrig cameraParams);

在新形象找到引用对象。

[imagePoints, boardSize] = detectCheckerboardPoints (im);

计算新的外在。

[rotationMatrix, translationVector] =外在(imagePoints、worldPoints cameraParams);

计算摄像机矩阵

P = cameraMatrix (cameraParams rotationMatrix translationVector)
P =4×3105×0.0157 -0.0271 0.0000 0.0404 -0.0046 -0.0000 0.0199 0.0387 0.0000 8.9399 9.4399 0.0072

输入参数

全部折叠

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

旋转摄像头,指定为一个3×3的矩阵。您可以获得这个矩阵使用外在函数。你也可以得到矩阵使用relativeCameraPose函数通过置换取向输出。的rotationMatrixtranslationVector输入必须是真实的,nonsparse,同一个类的。

翻译的相机,指定为1×3向量。翻译向量描述了从世界坐标与摄像机之间的坐标转换。您可以获得这个向量使用外在函数。你也可以获得向量使用位置取向输出的relativeCameraPose功能:

  • translationVector= -relativeLocation*relativeOrientation”

translationVector输入必须是真实的,nonsparse,同一个类的。

输出参数

全部折叠

相机的投影矩阵,作为4-by-3返回矩阵。在齐次坐标矩阵包含3 d世界点投射到图像。当您设置rotationMatrixtranslationVector,该函数返回camMatrix作为。否则它会返回camMatrix作为

函数计算camMatrix如下:

camMatrix= (rotationMatrix;translationVectorK
K:内在矩阵

然后,使用摄像机矩阵和齐次坐标,可以世界点投射到图像。

w×[x,y,1]= [X,Y,Z1)×camMatrix

(X,Y,Z):点的世界坐标
(x,y):对应的像点的坐标
w:任意比例因子

数据类型:|

扩展功能

介绍了R2014b