主要内容

plotCamera

在三维坐标中画出摄像机

描述

例子

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

例子

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

例子

凸轮= plotCamera (名称=值使用一个或多个名称-值参数以及以前语法中的参数组合指定选项。例如,不透明度= 0.4将绘制的相机的不透明度设置为0.4

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

例子

全部折叠

创建一个rigidtform3d对象。

initialRotation = [1 0 0;0 0 1;0 -1 0];initialTranslation = [10 0 20];pose = rigidtform3d(initialRotation,initialTranslation);

绘制一个不透明度为零的相机,并基于创建的绝对姿势rigidtform3d对象。

cam = plotCamera(AbsolutePose=pose,不透明度=0)
cam =相机属性:父:[1x1坐标轴]大小:1 AbsolutePose: [1x1 rigidtform3d]可见:1 AxesVisible: 0 ButtonDownFcn: "颜色:[1 0 0]不透明度:0标签:"

设置当前轴的查看属性。

网格平等的手册

扩展每个轴的可视范围。这些变化使整个动画在下一步中可见。

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

旋转相机周围y设在。

theta = 0:10:1800 updateAngles = [0 -theta 0];updateTranslation = [10*cosd(theta) 10*sind(theta) 20];updateTform = rigidtform3d(updateAngles, updateTranslation);凸轮。AbsolutePose = rigidtform3d(initialRotation * updateTform。R, updateTform.Translation);drawnow ();结束

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

创建一组校准图像。

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

检测图像中的棋盘角。

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

在以模式为中心的坐标系统中生成棋盘角的世界坐标,其中左上角位于(0,0)。将正方形大小设置为29毫米。

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

在新位置加载图像。

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

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

校准相机。

cameraParams = estimatecamerparameters (imagePoints,worldPoints,“图象尺寸”、大小(imOrig 1:2));

还原图像。

im = undistortion timage (imOrig, cameraparams . intrinsic);

在新图像中找到引用对象。

[imagePoints,boardSize] = detectCheckerboardPoints(im);

计算新的外部性。

camExtrinsics = estimateExtrinsics(imagePoints,worldPoints, cameraparams . intrinsic);

绘制世界点。

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

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

标记原点。

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

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

计算相机的位置和方向。

absPose = extr2pose(camExtrinsics);

画出相机。

cam = plotCamera(AbsolutePose=absPose,Size=20);

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

使z-轴向下。

set(gca,CameraUpVector=[0 0 -1]);

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

设置视图参数。

Camorbit (gca,-110,60,data=[0 0 1]);轴平等的网格

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

标记坐标轴。

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

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

输入参数

全部折叠

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

名称-值参数

指定可选参数对为Name1 = Value1,…,以=家,在那里的名字参数名称和价值对应的值。名称-值参数必须出现在其他参数之后,但对的顺序无关紧要。

在R2021a之前,使用逗号分隔每个名称和值,并将其括起来的名字在报价。

例子:大小= 0.3指定相机基底宽度为0.3

相机在世界坐标系中的绝对姿态,指定为rigidtform3d对象。

相机基底宽度,指定为正实数。

摄像机标签,指定为字符向量或字符串标量。

相机颜色,指定为RGB三元组。RGB三元组是一个三元素行向量,其元素指定颜色的红、绿和蓝分量的强度。强度必须在[0,1]范围内。

相机不透明度,指定为范围[0,1]中的标量。

相机可见性,指定为数字或逻辑1真正的)或0).

摄像机轴可见性,指定为数字或逻辑1真正的)或0).

回调函数,指定为在单击相机时执行的函数句柄。

输出轴,指定为轴句柄。默认情况下,plotCamera使用当前轴句柄。方法返回当前轴gca函数。

输出参数

全部折叠

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

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

  • 的行向量相机objects -该函数在绘制多个摄像机时返回此选项。的n的第Th行值cameraTable属性的属性nth相机向量中的对象。

对象创建相机对象vision.graphics.Camera类,它包含以下属性:

版本历史

在R2015a中引入

全部展开