matlab - 是否可以从未经校准的校正图像对确定两个相机之间的基线?
问题描述
目前,我正在从事一个关于立体视觉的短期项目。
我正在尝试创建风景的深度图。为此,我使用我的手机查看点并使用 Matlab 提供的以下代码/工作流程:https ://nl.mathworks.com/help/vision/ug/uncalibrated-stereo-image-rectification.html
按照此代码,我可以创建漂亮的视差图,但我现在想要深度(以米为单位)。为此,我需要基线、焦距和视差,如下所示:https ://www.researchgate.net/figure/Relationship-between-the-baseline-b-disparity-d-focal-length-f-and -深度-z_fig1_2313285
焦距和基线是已知的,但不是基线。我确定了基本矩阵的估计。有没有办法从基本矩阵到基线,或者通过做出一些假设来到达基本矩阵,然后从那里到基线。
如果有任何正确方向的提示,我将不胜感激!
解决方案
“焦距和基线是已知的,但不是基线。”
我猜你的意思是视差图是已知的。如果没有已知或估计的校准矩阵,则无法确定基本矩阵。(详细比较 Hartley 和 Zisserman 的多视图几何)
关于您的可用数据,您无法计算度量重建。从基本矩阵中,您只能以规范形式提取相机矩阵,该矩阵允许投影重建,并且不会满足设置的真实基线。投影重建是通过未知变换与度量结果不同的重建。非平凡的技术可以允许将这些重建升级为欧几里得重建结果。然而,这些自校准技术的成功很大程度上取决于数据的质量。因此,使用校准相机的图像实际上是最好的方法。
推荐阅读
- geometry - 如何在 Yelp 或 Uber 服务中使用 S2?
- javascript - 在 Bootstrap 5 中实现暗/亮/...模式的最合适方法是什么?
- python - GridSearchCV 没有为 xgboost 选择最佳超参数
- swift - 用新数据重新加载 PageViewController
- uwp - ObservableCollection 在 UWP 和 WASM 上的行为不同
- nginx - 在 nignx 中动态重写路径
- module - 如何使用 Xquery 为 MarkLogic 实现自动递增数字主键
- flutter - GetStorage 不保存列表编辑
- vector - 根据另一列的相应行值创建行的子集?
- matrix - Java 矩阵变换