>我正在使用立体校准应用程序,并且已成功校准立体相机,总体平均重投影误差= 0.32像素。
我想在相机 1 的框架中找到相机 2 的位置和方向。我在 TranslationOfCamera2 中获得的值并不等同于应用程序中显示的以相机为中心的外部视图。由于 TranslationOfCamera2 不正确,我不信任 RotateOfCamera2 的值。
您可以在此处查看以摄像机为中心的视图,并在此处查看 TranslationOfCamera2 和 RotationOfCamera2 的值。
根据该图,相机 2 相对于相机 1 处于 +Z 方向和 +Y 方向。但在 TranslationOfCamera2 向量中,Y 和 Z 的值为负数。这是我不明白的部分。
谁能解释一下这些价值观背后的逻辑?这些值是在哪些参考系中计算的?在文档中,它指出此应用程序给出了相机 2 相对于相机 1 的位置和方向。但就我而言,我认为情况正好相反。任何帮助不胜感激!
提前感谢!!
干杯
对问题第一部分的回答
相机 2 的平移与相机 2 的坐标相对,这意味着如果您将相机 2 的平移添加到相机 2 的坐标上(因此基本上减去,因为它们是负数),那么它将在相机 1 的点。对我来说看起来很合乎逻辑。
我知道这不是这个问题的完整答案,但我希望它有所帮助
这样想:RotationOfCamera2
和TranslationOfCamera2
是相机 2 相对于相机 1 坐标系的外在。如果你在相机 1 的坐标中有一个点[X, Y, Z]
,则它在相机 2 中的投影由 [X, Y, Z, 1] * [RotationOfCamera2; TranslationOfCamera2] * K
给出,其中 K 是相机 2 的内在矩阵。
您要查找的是相机 2 在相机 1 坐标系中的位置,可以按如下方式计算 -TranslationOfCamera2 * RotationOfCamera2'
.
这就是你在以摄像机为中心的情节中看到的。