【发布时间】:2015-03-27 17:29:12
【问题描述】:
我一直在尝试了解如何使用图像点和对象点(3D 和 2D 点)来计算投影矩阵,但我似乎无法清楚地了解您将如何做到这一点。我有一个功能如下:
void calculateprojectionmatrix(Mat image_points, Mat object_points, Mat projection_matrix)
我已尝试为此研究解决方案(最好是在 C++ 实现中),但找不到任何明确的解释,而且我找不到任何背景资源似乎可以充分说明该主题。任何帮助将不胜感激!
【问题讨论】:
-
如果你已经实现了这个函数,调用它。如果您需要实现此功能,则需要为此付出一些的努力。
-
很抱歉,如果它被认为是“懒惰”或缺乏努力,但当我不了解操作这些要点的过程时,我很难开始。如果是调试实现的问题,我会在问题中包含我的实现。事实是,我花了几个小时研究,我根本找不到足够的信息来创建一个实现。我不是要求为我完成它,而只是为了帮助理解。
-
所以你对计算投影矩阵一无所知任何事情,甚至它是什么,除了名字之外什么也做不了这个函数应该做什么,甚至不指定它使用的类型(
Mat)是什么。这不是很多工作。 -
好的,我知道投影矩阵是一个 4x3 矩阵(或 Mat 对象),用于将世界坐标系中的齐次坐标转换为图像坐标系。我知道它可以计算为 K[R|T] ((Camera Calibration matrix) * [Rotation matrix | Translation matrix]),这就是我传统上学习形成它的方式。此外,Mat 类型是(CV_32F - 32 位浮点数)。问题是我不明白如何根据图像/对象点创建它。我会计算 K、R、T 矩阵,然后使用我知道的公式吗?
-
在重新阅读了一些笔记之后,我认为我的问题有了很好的线索。一旦我确认我有一个可行的解决方案供其他人参考,我将发布详细信息作为答案。感谢您的帮助!
标签: c++ computer-vision