如何使用 opencv 从 2D 获取 3D 位置
How to get the 3D position from a 2D with opencv
我正在尝试使用带有 openCV 的单个相机从物体投影到图像上获取物体的 3D 坐标和方向。
我一直在阅读,要遵循的步骤是:校准图像以获得除矩阵 k 之外的旋转和平移矩阵。
我发现了很多关于棋盘的例子 --> https://littlecodes.wordpress.com/2013/06/24/calibracion-de-camaras-y-procesamiento-de-imagenes-ii/。
但我的问题是:一旦获得了这些参数,我如何获得任何其他物体的位置?我没有找到任何完整的例子,只有我不太理解的数学解释。
类似于 this,但使用矩阵并能够获得一定准确度的方向。
我已经有了分割后的图像,可以定位角点了
我喜欢这样的东西:Video
问候和感谢。
您可以使用 cv2.solvePnPRansac
获取旋转和平移矢量,然后使用 cv2.projectPoints
将 3d 点投影到平面上。您可以找到关于此的完整教程 here.(Internet 存档)
您需要知道对象模型的坐标,以通过解决 Perspective-n-Point 问题(即使用 OpenCV 中包含的 cv::solvePnP 或 cv::solvePnPRansac 函数)来检索对象的位置.
尝试研究视觉基准标记并对那些特定类型的参考对象进行姿势估计。标记是用于(也)执行此操作的对象。这是从原始 PnP 问题开始的一个很好的简化,您可以更好地理解发生了什么。了解引擎盖下发生的事情后,您可以对您拥有模型的任何对象执行此操作。
我正在尝试使用带有 openCV 的单个相机从物体投影到图像上获取物体的 3D 坐标和方向。 我一直在阅读,要遵循的步骤是:校准图像以获得除矩阵 k 之外的旋转和平移矩阵。 我发现了很多关于棋盘的例子 --> https://littlecodes.wordpress.com/2013/06/24/calibracion-de-camaras-y-procesamiento-de-imagenes-ii/。 但我的问题是:一旦获得了这些参数,我如何获得任何其他物体的位置?我没有找到任何完整的例子,只有我不太理解的数学解释。 类似于 this,但使用矩阵并能够获得一定准确度的方向。
我已经有了分割后的图像,可以定位角点了
我喜欢这样的东西:Video
问候和感谢。
您可以使用 cv2.solvePnPRansac
获取旋转和平移矢量,然后使用 cv2.projectPoints
将 3d 点投影到平面上。您可以找到关于此的完整教程 here.(Internet 存档)
您需要知道对象模型的坐标,以通过解决 Perspective-n-Point 问题(即使用 OpenCV 中包含的 cv::solvePnP 或 cv::solvePnPRansac 函数)来检索对象的位置.
尝试研究视觉基准标记并对那些特定类型的参考对象进行姿势估计。标记是用于(也)执行此操作的对象。这是从原始 PnP 问题开始的一个很好的简化,您可以更好地理解发生了什么。了解引擎盖下发生的事情后,您可以对您拥有模型的任何对象执行此操作。