主要内容

Bundleadjustment.

精炼相机姿势和3-D点

描述

例子

[XYZREFINEDPOINTS.一方面] = BundleAdjustment(XYZPOINTS.Pointtacks.Cameraposes内在机构返回精制的3-D点和相机姿势,可最大限度地减少重新注入错误。细化程序是Levenberg-Marquardt算法的变体。3-D点和相机姿势放置在相同的全局参考坐标系中。

[___重新评论错误] = BundleAdjustment(___另外返回A.N-Element矢量包含来自前一个语法的参数的每个3-D世界点的平均刻录错误。

[___] = BundleAdjustment(___名称,价值使用一个或多个指定的其他选项名称,价值对论点。未指定的属性具有默认值。

例子

全部收缩

加载初始化数据。

data = load('sfmglobe');

优化相机姿势和点。

[XYZREFINEDPOINTS,RefintPoss] =......BundleAdjustment(data.xyzpoints,data.pointtracks,data.cameraposes,data.intrinsics);

显示精制的相机姿势和3-D世界点。

pcshow(xyzrefinedpoints,'verticalaxis''是''verticalaxisdir'......'下''Markersize',45);抓住Plotcamera(优化,'尺寸',0.1);抓住离开网格

图包含轴。轴包含51个类型的类型线,文本,贴片,分散。

输入参数

全部收缩

未精制的3-D点,指定为一个m- 3矩阵[XyZ.位置。

跨多个图像的匹配点,指定为一个N-element arrumPointtack.对象。每个元素包含跨多个图像的两个或多个匹配点。

相机姿势查看方向, 和地点信息,指定为三列表。视图ID与ID相关Pointtacks.目的。方向被指定为3×3旋转矩阵。该位置被指定为三元素矢量。

相机内在机构,指定为标量或一个m-element arrum摄像头对象。m是相机数量的姿势。使用相同的相机捕获图像时使用标量值。使用图像由不同的摄像机捕获时使用向量。

名称值对参数

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

例子:'maxtations','50.'

Levenberg-Marquardt算法之前的最大迭代次数停止,指定为逗号分隔的配对组成最大'和一个积极的整数。

像素中平均平方输注误差的绝对终止容差,指定为由“逗号分离的对”absolutetolerance.'和一个正标量。

相对终止容忍迭代之间的重新注入误差的减少,指定为逗号分隔的对组成的“相对验证'和一个正标量。

标志表示镜头失真,指定为逗号分隔的配对组成占点'还有错误的或者真的。当你设置时占点错误的,2-D点Pointtacks.必须从带镜头失真的图像。要使用未变点的点,请使用undostortimage.功能首先,然后设置占点真的

查看固定摄像机姿势的ID,指定为逗号分隔的配对组成filedviewids.'和非负整数的向量。每个ID对应于查看固定的相机姿势Cameraposes。空价值filedviewids.意味着所有相机姿势都经过优化。

显示进度信息,指定为由“逗号分隔的配对”组成verb'还有错误的或者真的

输出参数

全部收缩

精制世界点的三维地点,作为一个m- 3矩阵[XyZ.位置。

数据类型:单身的|双倍的

精致的相机姿势,作为桌子返回。该表包含三列'查看''方向', 和'地点'

重新注明错误,作为一个返回m-by-1矢量。该功能将每个世界投射到每个相机中。然后在每个图像中,该功能计算重注错误作为检测到的距离和恢复点之间的距离。这重新评论错误向量包含每个世界点的平均丢注错误。

参考

[1]卢克西斯,M.I.A.和A.A.argyros。“SBA:用于通用稀疏捆绑捆绑调整的软件包。”数学软件上的ACM交易。2009年。

[2]哈特利,R.和A. Zisserman。计算机视觉中的多视图几何。剑桥大学出版社,2003年。

[3] Triggs,B.,P. Mclauchlan,R. Hartley和A. Fitzgibbon。“捆绑调整:现代合成。”视觉算法国际研讨会的诉讼程序。Springer-Verlag。1999年,第298-372页。

在R2016A介绍