分享几行代码|yolo识别出物体像素坐标如何转成相机坐标

大家好,我是小鱼。

今天分享几行代码,是自己一两年前写的了,当时就是用来将yolo识别结果的位姿转换成相机坐标系下的位姿。

代码很简单,就一个函数,输入像素坐标xy和深度z即可求出对应的空间坐标,计算过程中还需要相机的内参和畸变参数,这个在相机标定时即可获取。

为什么要从像素坐标转换成三维的相机坐标系呢?

一般我们使用yolo等识别出物体在图像中的像素位置,像素位置并不能用于机械臂抓取或者3D的位姿计算,所以我们还需要将其转换成相机坐标系下的坐标使用~

重点函数:cv2.undistortPoints

需要注意的是,在opencv4.1版本中好像找不到该函数,后来小鱼安装了4.2版本的opencv-python库找到了该函数。

影响最终结果的主要是内参和畸变D,所以发现最终结果误差比较大,可以从这两个方面下手。

你可能感兴趣的:(机器人,计算机视觉,opencv)