在Opencv中校准后查找点世界坐标

在Opencv中校准后查找点世界坐标,opencv,camera-calibration,calibration,Opencv,Camera Calibration,Calibration,OpenCV是否具有以下功能: 图像平面中标记的坐标 外在参数 固有参数 z坐标(标记器和凸轮之间的距离,因为我使用传感器kinect) 提供标记的相应世界坐标 非常感谢您的帮助。谢谢 要查找标记的世界坐标,需要其相对于摄影机的坐标。如果您知道相对于原点的摄影机姿势P和相对于摄影机的标记姿势M,要获得相对于原点的标记姿势,只需将它们相乘即可 final = [P]*[M] 听起来你只是在努力寻找M。你需要做的就是将你的位置乘以摄像机矩阵的倒数,然后乘以你的Z坐标 Z*cam_mat.inv

OpenCV是否具有以下功能:

  • 图像平面中标记的坐标
  • 外在参数
  • 固有参数
  • z坐标(标记器和凸轮之间的距离,因为我使用传感器kinect)
提供标记的相应世界坐标


非常感谢您的帮助。谢谢

要查找标记的世界坐标,需要其相对于摄影机的坐标。如果您知道相对于原点的摄影机姿势P和相对于摄影机的标记姿势M,要获得相对于原点的标记姿势,只需将它们相乘即可

final = [P]*[M]
听起来你只是在努力寻找M。你需要做的就是将你的位置乘以摄像机矩阵的倒数,然后乘以你的Z坐标

Z*cam_mat.inv()*[x_image,y_image,1] = [x_world,y_world,z_world]

M = [1,0,0,x_world,
     0,1,0,y_world,
     0,0,1,z_world,
     0,0,0,1]

外部参数表示相机相对于某个参考的位置。你知道点和世界坐标系中参考点之间的距离吗?是的,我使用kinect传感器(我知道z坐标)。我的问题是,OpenCv中是否有自动进行转换的函数?您需要提供一个更具体的列表,列出您所知道的内容。如果您知道相关点的z坐标,那么您知道的比“图像平面中点的坐标”更多。你对这一点了解多少?它相对于原点的位置?它相对于相机的位置?请看编辑,谢谢,我是否假设cam和标记系统坐标具有相同的方向?但x、y和z的标记平移是否与凸轮有关?如果只有一个点,则无法确定该点的方向。是否有多个点可以从中导出方向?是的,x_w、y_w和z_w与摄影机是垂直的。那么,如果我还想确定对象的方向(相对于世界坐标),我必须使用多个标记还是一个复合标记?是的,点仅在位置上定义。仿射变换可以用3个点定义,透视变换可以用4个点定义。谢谢,我将尝试更多有关对象方向的信息