相机校准 - Matlab:立体校准应用程序



>我正在使用立体校准应用程序,并且已成功校准立体相机,总体平均重投影误差= 0.32像素。

我想在相机 1 的框架中找到相机 2 的位置和方向。我在 TranslationOfCamera2 中获得的值并不等同于应用程序中显示的以相机为中心的外部视图。由于 TranslationOfCamera2 不正确,我不信任 RotateOfCamera2 的值

您可以在此处查看以摄像机为中心的视图,并在此处查看 TranslationOfCamera2 和 RotationOfCamera2 的值。

根据该图,相机 2 相对于相机 1 处于 +Z 方向和 +Y 方向。但在 TranslationOfCamera2 向量中,Y 和 Z 的值为负数。这是我不明白的部分。

谁能解释一下这些价值观背后的逻辑?这些值是在哪些参考系中计算的?在文档中,它指出此应用程序给出了相机 2 相对于相机 1 的位置和方向。但就我而言,我认为情况正好相反。任何帮助不胜感激!

提前感谢!!

干杯

对问题第一部分的回答

相机 2 的平移与相机 2 的坐标

相对,这意味着如果您将相机 2 的平移添加到相机 2 的坐标上(因此基本上减去,因为它们是负数),那么它将在相机 1 的点。对我来说看起来很合乎逻辑。

我知道这不是这个问题的完整答案,但我希望它有所帮助

可以

这样想:RotationOfCamera2TranslationOfCamera2是相机 2 相对于相机 1 坐标系的外在。如果你在相机 1 的坐标中有一个点[X, Y, Z],则它在相机 2 中的投影由 [X, Y, Z, 1] * [RotationOfCamera2; TranslationOfCamera2] * K 给出,其中 K 是相机 2 的内在矩阵。

您要查找的是相机 2 在相机 1 坐标系中的位置,可以按如下方式计算 -TranslationOfCamera2 * RotationOfCamera2' .

这就是你在以摄像机为中心的情节中看到的。

相关内容

  • 没有找到相关文章

最新更新