gpt4 book ai didi

c++ - opencv triangulatePoints 导致 NaN 值

转载 作者:太空宇宙 更新时间:2023-11-03 23:12:43 25 4
gpt4 key购买 nike

我正在尝试通过 Motion 代码实现标准结构,但 triangulatePoints 导致了 NaN 值。我执行以下步骤-

  1. 获取图像 1 和图像 2 的 ORB 特征。
  2. 匹配特征。
  3. 使用 findEssentialMat() 从可用的匹配特征和相机内在信息中获取基本矩阵
  4. 使用 recoverPose() 获取相机 2 的姿势。假定相机 1 位于原点。
  5. 获取 camera1 和 camera2 的投影矩阵。
  6. 使用 triangulatePoints() 获取 3D 点。

我已经尝试了 Matlab triangulate() 函数以及 camera1 和 camera2 的投影矩阵以及上面获得的匹配点。在 Matlab 的情况下,我得到了很好的结果。但是在 C++ (Opencv 3.3) 中使用 opencv 我得到了 NaN 值。

最佳答案

我还遇到了来自 opencv 的 triangulatePoints 问题。这是由于输入点数组的类型错误:

  • 点的形状必须是:2xN 或大小为 1xN 或 Nx1 的双 channel 矩阵
  • 必须是 float!
  • 类型

除此之外,我唯一能想到的可能是计算的 3d 点可能是无穷大,因此在转换为欧几里得坐标后,它们除以零 -> NaN

关于c++ - opencv triangulatePoints 导致 NaN 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46419522/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com