主要内容

plotCamera

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

描述

例子

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

例子

cam= plotCamera (Cameratable.绘制指定的一个或多个摄像机Cameratable.

例子

cam= 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目的。

Cam = 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:pi / 64:10 * pi t = [cos(theta)0 sin(θ); 0 1 0; -sin(θ)0 cos(θ);Cam.absolutepose = rigid3d(t * r,[10 * cos(theta),10 * sin(θ),20]);rawing();结束

图中包含一个轴对象。轴对象包含10个类型的类型,文本,修补程序。

创建一组校准图像。

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

检测图像中的棋盘角。

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

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

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

校准相机。

cameraparams =估计(观点,WorldPoints);

在新位置加载图像。

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

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

Undistort图像。

我= undistortImage (imOrig cameraParams);

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

[imagePoints,BoardSize] =侦探校验erboardPoints(IM);

计算新的extrinsics。

[RotationMatrix,transportvector] =外在(图像点,WorldPoints,Cameraparams);

绘制世界要点。

数字;Plot3(WorltPoints(:,1),WorltPoints(:,2),零(大小(worldPoints,1),1),'*');抓住

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

标记起源。

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

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

计算相机位置和方向。

orientation = RotationMatrix';位置= -translationVector *方向;

绘制相机。

积血= rigid3d(方向,位置);Cam = Plotcamera('absolutepose',积存,'尺寸', 20);

图中包含一个轴对象。轴对象包含12个类型的类型,文本,修补程序。

制作z设在点下来。

套装(GCA,“CameraUpVector”,[0 0-1]);

图中包含一个轴对象。轴对象包含12个类型的类型,文本,修补程序。

设置视图参数。

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

图中包含一个轴对象。轴对象包含12个类型的类型,文本,修补程序。

打开3-D旋转。

摄像机('设置模式'“轨道”);

图中包含一个轴对象。轴对象包含12个类型的类型,文本,修补程序。

标签的轴。

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

图中包含一个轴对象。轴对象包含12个类型的类型,文本,修补程序。

输入参数

全部收缩

可视化的摄像机属性,指定为表格。每行代表一个摄像头。每个列标题必须与名称值对参数的名称部分匹配。这nTh-行值设置属性nth元素cam.您不能指定的值'父母'.如果表中包含“ViewId”列,然后使用视图ID来设置“标签”相机的值。

名称-值参数

指定可选的逗号分隔的对名称,价值论点。的名字参数名和价值是相应的价值。的名字必须出现在引号内。您可以以任何顺序指定多个名称和值对参数name1,value1,...,namen,valuen

例子:'尺寸'0.3指定摄像机的宽度为0.3

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

摄像机基础宽度,指定为逗号分隔对组成'尺寸'和一个积极的实数。

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

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

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

相机可见性,指定为逗号分隔的配对组成可见的'和一个数字或逻辑1真的) 或者0)。

相机轴的可见性,指定为逗号分隔的配对组成轴不可分割'和一个数字或逻辑1真的) 或者0)。

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

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

输出参数

全部收缩

相机可视化对象,作为其中一个选项返回。

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

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

使用相机对象使用Vision.Graphics.Camera.类。

在R2015A介绍