主要内容

bundleAdjustmentMotion

调整3 d点集合并使用motion-only束调整相机的姿势

自从R2020a

描述

例子

refinedPose= bundleAdjustmentMotion (xyzPoints,imagePoints,absolutePose,intrinsic)返回精制绝对相机姿势最小化reprojection错误。

motion-only细化过程的一个特例Levenberg-Marquardt包算法在优化调整3 d分固定。3 d点和相机放置在同一个世界坐标系统。

(refinedPose,reprojectionErrors)= bundleAdjustmentMotion (___)此外返回一个N元向量包含均reprojection误差为每一个三维世界点使用的参数从之前的语法。

(___)= bundleAdjustmentMotion (___,名称,值)使用附加选项指定一个或多个名称参数。未指定的参数有默认值。

例子

全部折叠

初始化的数据加载到工作区。

data =负载(“globeMotionOnlyBA.mat”);

完善的绝对相机姿势。

refinedPose = bundleAdjustmentMotion (data.xyzPoints data.imagePoints、data.absPose data.intrinsics);

显示3 d世界点。

pcshow (data.xyzPoints AxesVisibility =“上”VerticalAxis =“y”VerticalAxisDir =“向下”MarkerSize = 45);持有

情节绝对相机之前和之后的优化。

plotCamera (AbsolutePose = data.absPose,颜色=“r”、大小= 2);plotCamera (AbsolutePose = refinedPose,颜色=“m”、大小= 2);

图包含一个坐标轴对象。坐标轴对象包含21线类型的对象,文本,补丁,散射。

输入参数

全部折叠

未经提炼的3 d点,指定为一个3的矩阵x,y,z)的位置。

数据类型:|

形象点,指定为一个2矩阵或一个点特征类型数组中。

绝对相机姿势,指定为一个rigidtform3d对象。

相机intrinsic,指定为一个cameraIntrinsics对象。

名称-值参数

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

R2021a之前,用逗号来分隔每一个名称和值,并附上的名字在报价。

例子:“MaxIterations”, 50岁

最大数量的迭代Levenberg-Marquardt算法停止之前,指定为一个正整数。

绝对终止公差均方reprojection错误的像素,指定为一个积极的标量。

相对终止公差之间reprojection减少误差的迭代,指定为一个积极的标量。

国旗表明透镜畸变、指定为真正的。当您设置PointsUndistorted二维点pointTracks必须与透镜畸变图像。使用无畸变的点,使用undistortImage函数首先,然后设置PointsUndistorted真正的

显示进度信息,指定为真正的

输出参数

全部折叠

精制绝对构成的相机,作为一个返回rigidtform3d对象。

Reprojection错误,作为一个返回元向量。功能项目每个世界点回每一个相机。然后在每一个图像,函数计算reprojection错误检测和reprojected点之间的距离。的reprojectionErrors向量包含每个世界点的平均reprojection错误。

引用

[1]Lourakis, Manolis i。,and Antonis A. Argyros. "SBA: A Software Package for Generic Sparse Bundle Adjustment."ACM交易数学软件36,没有。1(2009年3月):2:1-2:30。

[2]理查德·哈特利,安德鲁Zisserman。计算机视觉中的多视图几何。第二版》。剑桥,英国 ;纽约:剑桥大学出版社,2003年。

[3]组织,比尔,菲利普·f·McLauchlan理查德·哈特利,和安德鲁·w·菲茨吉本。“束调整——现代合成。”In《国际研讨会上视觉算法,298 - 372。斯普林格出版社,1999年版。

扩展功能

版本历史

介绍了R2020a

全部展开