文档帮助中心文档
在三维坐标中绘制一个摄像机
凸轮= plotCamera
凸轮= plotCamera (cameraTable)
凸轮= plotCamera(名称、值)
例子
凸轮= plotCamera在当前坐标轴上绘制一个默认摄像机的三维坐标。函数返回凸轮,一个相机对象,该对象包含绘制的摄像机的属性。
凸轮
相机
凸轮= plotCamera (cameraTable)绘制指定的一个或多个摄像机cameraTable.
凸轮= plotCamera (cameraTable)
cameraTable
凸轮= plotCamera (名称,值)使用一个或多个名称-值对参数指定选项。例如,“不透明度”,0.4设置绘制的摄像机的不透明度为0.4.
凸轮= plotCamera (名称,值)
名称,值
“不透明度”
0.4
名称-值对参数设置绘制的摄像机可视化对象的相关属性。
全部折叠
创建一个rigid3d对象。
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 ();结束
创建一组校准图像。
图像= 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);标题(输入图像的);
Undistort图像。
我= undistortImage (imOrig cameraParams);
在新图像中找到参考对象。
[imagePoints, boardSize] = detectCheckerboardPoints (im);
计算新的extrinsics。
[rotationMatrix, translationVector] =外在(imagePoints、worldPoints cameraParams);
画出世界点。
图;plot3 (worldPoints (: 1) worldPoints(:, 2), 0(大小(worldPoints, 1), 1),‘*’);持有在
马克原点。
plot3 (0, 0, 0,“g *”);
计算相机的位置和方向。
取向= rotationMatrix ';location = -translationVector *方向;
绘制相机。
absPose = rigid3d(方向、位置);凸轮= plotCamera (“AbsolutePose”absPose,“大小”, 20);
使z设在点下来。
集(gca),“CameraUpVector”, 0 0 1);
设置视图参数。
camorbit (gca, -110, 60岁,“数据”, 0 0 1);轴平等的网格在
开启三维旋转。
cameratoolbar (“SetMode”,“轨道”);
标签的轴。
包含(“X(毫米));ylabel (“Y”(毫米));zlabel (“Z (mm)”);
用于可视化的摄像机属性,指定为表。每一行代表一个摄像机。每个列标题必须匹配名称-值对参数的名称-部分。的n属性的Th-row值设置属性nth元素凸轮.您不能指定的值“父”.如果表中包含“ViewId”列,则使用视图id来设置“标签”相机的值。
“父”
“ViewId”
“标签”
指定可选的逗号分隔的对名称,值参数。的名字参数名和价值为对应值。的名字必须出现在引号内。可以以任意顺序指定多个名称和值对参数Name1, Value1,…,的家.
的名字
价值
Name1, Value1,…,的家
“大小”
0.3
AbsolutePose
摄像机在世界坐标系中的绝对位姿,指定为逗号分隔对组成“AbsolutePose”一个rigid3d对象。
“AbsolutePose”
大小
1
相机基宽度,指定为逗号分隔对,由“大小”一个正实数。
标签
”
相机标签,指定为逗号分隔对,由'标签'和字符向量或字符串标量。
颜色
(1 0 0)
相机颜色,指定为逗号分隔对,由'颜色’和RGB三连音。RGB三元组是一个由三个元素组成的行向量,其元素指定颜色的红色、绿色和蓝色组件的强度。强度必须在[0,1]范围内。
不透明度
0.2
相机不透明度,指定为逗号分隔对,包含'不透明度'和范围为[0,1]的标量。
可见
真正的
假
0
摄像机可见性,指定为逗号分隔对,包含'可见'和数字或逻辑1(真正的)或0(假).
AxesVisible
摄像机轴可见性,指定为逗号分隔对,由'AxesVisible'和数字或逻辑1(真正的)或0(假).
ButtonDownFcn
回调函数,指定为逗号分隔的对,由'ButtonDownFcn,以及当你点击相机时执行的函数手柄。
父
轴
输出轴,指定为逗号分隔对,由'父和一个斧柄。默认情况下,plotCamera使用当前轴柄。要返回当前的轴,请使用gca函数。
plotCamera
gca
摄像机可视化对象,作为这些选项之一返回。
相机对象-当绘制单个相机时,该函数返回此选项。名称-值对参数或cameraTable输入元素设置相应的相机对象属性。
相机对象的行向量-当绘制多个相机时,函数返回这个选项。的n的第一行值cameraTable的输入设置属性nth相机物体在这个向量中。
相机对象是使用vision.graphics.Camera类。
vision.graphics.Camera
外在
showExtrinsics
您有这个示例的修改版本。您想打开这个示例与您的编辑吗?
你点击一个链接对应于这个MATLAB命令:
通过在MATLAB命令窗口中输入命令来运行命令。Web浏览器不支持MATLAB命令。金宝app
选择一个网站,在那里获得翻译的内容,并看到当地的活动和优惠。根据您的位置,我们建议您选择:.
你也可以从以下列表中选择一个网站:
选择中国网站(中文或英文)以获得最佳网站性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。
与当地办事处联系