主要内容

plotCamera

在三维坐标中绘制一个摄像机

描述

例子

凸轮= plotCamera在当前坐标轴上绘制一个默认摄像机的三维坐标。函数返回凸轮,一个相机对象,该对象包含绘制的摄像机的属性。

例子

凸轮= plotCamera (cameraTable绘制指定的一个或多个摄像机cameraTable

例子

凸轮= plotCamera (名称,值使用一个或多个名称-值对参数指定选项。例如,“不透明度”0.4设置绘制的摄像机的不透明度为0.4

名称-值对参数设置绘制的摄像机可视化对象的相关属性。

例子

全部折叠

创建一个rigid3d对象。

R = [1 0 0;0 0 -1;0 0 -1;T = [10 0 20];构成= rigid3d (R, t);

绘制一个不透明度为0的相机,并根据创建的绝对姿态rigid3d对象。

凸轮= plotCamera (“AbsolutePose”姿势,“不透明度”, 0)
cam = Camera with properties: Parent: [1x1 Axes] Size: 1 AbsolutePose: [1x1 rigid3d] Visible: 1 AxesVisible: 0 ButtonDownFcn: " Color: [1 0 0] Opacity: 0 Label: "

设置当前轴的查看属性。

网格平等的手册

扩展每个轴的可视限制。这些更改使整个动画在下一步中可见。

xlim (20 [-15]);ylim (20 [-15]);zlim (25 [15]);

旋转摄像机y设在。

= 0: /64:10* T = [cos 0sin;0 10;-sin 0cos];凸轮。AbsolutePose = rigid3d(T * R, [10 * cos(theta), 10 * sin(theta), 20]);drawnow ();结束

图中包含一个轴对象。axis对象包含10个类型为line, text, patch的对象。

创建一组校准图像。

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

检测图像中的棋盘角。

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

在以模式为中心的坐标系中生成棋盘角的世界坐标,左上角为(0,0)。设置方形尺寸为29毫米。

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

校准相机。

cameraParams = estimateCameraParameters (imagePoints worldPoints);

在新位置加载图像。

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

图中包含一个轴对象。标题为Input Image的axes对象包含一个Image类型的对象。

Undistort图像。

我= undistortImage (imOrig cameraParams);

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

[imagePoints, boardSize] = detectCheckerboardPoints (im);

计算新的extrinsics。

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

画出世界点。

图;plot3 (worldPoints (: 1) worldPoints(:, 2), 0(大小(worldPoints, 1), 1),‘*’);持有

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

马克原点。

plot3 (0, 0, 0,“g *”);

图中包含一个轴对象。轴对象包含两个类型为line的对象。

计算相机的位置和方向。

取向= rotationMatrix ';location = -translationVector *方向;

绘制相机。

absPose = rigid3d(方向、位置);凸轮= plotCamera (“AbsolutePose”absPose,“大小”, 20);

图中包含一个轴对象。axis对象包含12个类型为line, text, patch的对象。

使z设在点下来。

集(gca),“CameraUpVector”, 0 0 1);

图中包含一个轴对象。axis对象包含12个类型为line, text, patch的对象。

设置视图参数。

camorbit (gca, -110, 60岁,“数据”, 0 0 1);轴平等的网格

图中包含一个轴对象。axis对象包含12个类型为line, text, patch的对象。

开启三维旋转。

cameratoolbar (“SetMode”“轨道”);

图中包含一个轴对象。axis对象包含12个类型为line, text, patch的对象。

标签的轴。

包含(“X(毫米));ylabel (“Y”(毫米));zlabel (“Z (mm)”);

图中包含一个轴对象。axis对象包含12个类型为line, text, patch的对象。

输入参数

全部折叠

用于可视化的摄像机属性,指定为表。每一行代表一个摄像机。每个列标题必须匹配名称-值对参数的名称-部分。的n属性的Th-row值设置属性nth元素凸轮.您不能指定的值“父”.如果表中包含“ViewId”列,则使用视图id来设置“标签”相机的值。

名称-值参数

指定可选的逗号分隔的对名称,值参数。的名字参数名和价值为对应值。的名字必须出现在引号内。可以以任意顺序指定多个名称和值对参数Name1, Value1,…,的家

例子:“大小”0.3指定摄像机的宽度为0.3

摄像机在世界坐标系中的绝对位姿,指定为逗号分隔对组成“AbsolutePose”一个rigid3d对象。

相机基宽度,指定为逗号分隔对,由“大小”一个正实数。

相机标签,指定为逗号分隔对,由'标签'和字符向量或字符串标量。

相机颜色,指定为逗号分隔对,由'颜色’和RGB三连音。RGB三元组是一个由三个元素组成的行向量,其元素指定颜色的红色、绿色和蓝色组件的强度。强度必须在[0,1]范围内。

相机不透明度,指定为逗号分隔对,包含'不透明度'和范围为[0,1]的标量。

摄像机可见性,指定为逗号分隔对,包含'可见'和数字或逻辑1真正的)或0).

摄像机轴可见性,指定为逗号分隔对,由'AxesVisible'和数字或逻辑1真正的)或0).

回调函数,指定为逗号分隔的对,由'ButtonDownFcn,以及当你点击相机时执行的函数手柄。

输出轴,指定为逗号分隔对,由'和一个斧柄。默认情况下,plotCamera使用当前轴柄。要返回当前的轴,请使用gca函数。

输出参数

全部折叠

摄像机可视化对象,作为这些选项之一返回。

  • 相机对象-当绘制单个相机时,该函数返回此选项。名称-值对参数或cameraTable输入元素设置相应的相机对象属性。

  • 相机对象的行向量-当绘制多个相机时,函数返回这个选项。的n的第一行值cameraTable的输入设置属性nth相机物体在这个向量中。

相机对象是使用vision.graphics.Camera类。

介绍了R2015a