3D重建的步骤?
Steps for 3D Reconstruction?
这个问题已经以不同的方式被问过很多次,许多人以不同的方式解决这个问题。这就是为什么我不确定我的方法,如果有人能告诉我我做的事情是否正确,那就太好了。
我遵循的步骤是-
- 设置立体相机对。
- 分别校准两个摄像头以获得它们的摄像头
矩阵,失真系数,使用
calibrateCamera
- 然后我们计算R、T、E、F
使用
stereoCalibrate
- 使用
stereoRectify
计算 R1、R2、P1、P2 和 Q
- 因为我想找到我的特定点的 3D 坐标
场景,我在两个图像中提取该点的坐标,
然后我使用
triangulatePoints
来获取 3D 点
齐次坐标.
我遵循的步骤是否正确?我一直在使用 OpenCV 文档时遇到问题,所以我花了一些时间来制定步骤,仔细阅读文档。人们以不同的方式解决了 OpenCV 中的这个问题,有些人甚至使用 OpenCV 文档中的一些辅助函数构建了基本矩阵和基本矩阵,但我认为 stereoCalibrate
和 stereoRectify
使用这些辅助函数他们自己。
这些步骤在理论上是正确的。使用它们不会获得任何好的结果。
我的建议是买一个现成的立体相机(想到 ZED 或 RealSense),它已经有了你需要的一切,所以你不必校准或计算,只需使用他们的库并获得一些结果。这不会是完美的,但它会给你一个好的开始。
一旦你对立体相机玩够了,你就会更好地理解问题最多的地方,以及如何解决它们。
正如你所说,每个人都有自己的方式。我尝试的方法是,前 4 个步骤是相同的,但是为了计算 3d 点,我使用了 OpenCV 中存在的立体匹配算法。 StereoBM、StereoSGBM 等算法在 OpenCV 中实现,它提供了易于使用的 APIs。
因此,一旦我们从立体匹配函数中获得了视差图,我们就可以使用 reprojectImageTo3D API 获得 3d 坐标。它需要视差图和Q矩阵作为输入。
这个问题已经以不同的方式被问过很多次,许多人以不同的方式解决这个问题。这就是为什么我不确定我的方法,如果有人能告诉我我做的事情是否正确,那就太好了。
我遵循的步骤是-
- 设置立体相机对。
- 分别校准两个摄像头以获得它们的摄像头
矩阵,失真系数,使用
calibrateCamera
- 然后我们计算R、T、E、F
使用
stereoCalibrate
- 使用
stereoRectify
计算 R1、R2、P1、P2 和 Q
- 因为我想找到我的特定点的 3D 坐标
场景,我在两个图像中提取该点的坐标,
然后我使用
triangulatePoints
来获取 3D 点 齐次坐标.
我遵循的步骤是否正确?我一直在使用 OpenCV 文档时遇到问题,所以我花了一些时间来制定步骤,仔细阅读文档。人们以不同的方式解决了 OpenCV 中的这个问题,有些人甚至使用 OpenCV 文档中的一些辅助函数构建了基本矩阵和基本矩阵,但我认为 stereoCalibrate
和 stereoRectify
使用这些辅助函数他们自己。
这些步骤在理论上是正确的。使用它们不会获得任何好的结果。
我的建议是买一个现成的立体相机(想到 ZED 或 RealSense),它已经有了你需要的一切,所以你不必校准或计算,只需使用他们的库并获得一些结果。这不会是完美的,但它会给你一个好的开始。
一旦你对立体相机玩够了,你就会更好地理解问题最多的地方,以及如何解决它们。
正如你所说,每个人都有自己的方式。我尝试的方法是,前 4 个步骤是相同的,但是为了计算 3d 点,我使用了 OpenCV 中存在的立体匹配算法。 StereoBM、StereoSGBM 等算法在 OpenCV 中实现,它提供了易于使用的 APIs。
因此,一旦我们从立体匹配函数中获得了视差图,我们就可以使用 reprojectImageTo3D API 获得 3d 坐标。它需要视差图和Q矩阵作为输入。