如何使用MATLAB将2D(x,y)坐标转换为3D(x,y,z)坐标?

时间:2018-07-15 09:09:12

标签: matlab image-processing computer-vision camera-calibration robotics

我正在尝试使用MATLAB自动执行机械手。所以问题是,相机将安装在机械臂的基座上。它将捕获相机帧的快照并对其进行图像处理,并将检测到目标(对象)并找到其像素坐标。完成后,该像素坐标应映射到现实世界的xyz度量坐标吗?,并且该现实世界的坐标(x,y,z)将用作反向运动学函数的参数,并给出值θ,以便伺服器可以移动。

我被困在这里,这个像素坐标应该映射到现实世界的x-y-z度量坐标吗?,我不知道该怎么做。没有任何想法,如何进行呢? 任何有领导的人,请分享!!

PS你们所有人都认为,对于机械手臂的自动化,我应该使用MATLAB还是其他工具?因为所有这些代码都将使用ROS环境上传到raspberry pi 3上。

最佳记录

hitesh kumar

1 个答案:

答案 0 :(得分:0)

要计算图像中给定像素的3D世界点,您需要深度信息(应使用3D相机,如Kinect ..etc)。您可以掌握深度信息以及相机的内在和外在特性,可以将2D像素转换为3D世界坐标,反之亦然。

下面的公式用于计算世界坐标中的X,Y,Z。

enter image description here

从技术上讲,Perspective projection是摄像机将3D世界转换为2D时所做的工作,以下等式表示此投影。

enter image description here

上图来自here