由RGB-D图像获取三维坐标(相机坐标) Python

由RGB-D图像获取三维坐标(相机坐标) Python

这段时间做了一个简单的项目,涉及到定位的部分,特地记下一些简单的“细节”,以便自己以后回想。
其实就是由像素坐标(彩色图上特征点)获取三维坐标(相机坐标),比较简单

第一次写博客,就简单写一下吧。

然后,混子撰写!混子撰写!混子撰写!重要事情说三遍!
有问题请轻喷,谢谢!

图像数据

原始深度图(单通道)+RGB图像(需要与深度图对齐,目的保证像素大小一致)
关于图像对齐问题以及如何生成三维点云,有机会再写

获取相机坐标(本处是在深度摄像头下)

某点像素坐标(u , v)及其对应深度值depth,根据相机参数以及以下公式,可以求得该点的相机坐标(x , y , z)为
在这里插入图片描述
式中:fx,fy为Kinect相机的焦距; cx,cy为Kinect相机的主点,均为相机内参,可由MATLAB相机标定获得。
标定参考网址链接: https://blog.csdn.net/qq_40855366/article/details/81177201.

相信大家最感兴趣的 肯定是代码啦

如有改进,请多指教,一起学习

def depth2mi(depthValue):

    return depthValue * 0.001


def depth2xyz(u, v, depthValue):
    fx = 361.1027
    fy = 361.8266
    cx = 258.4545
    cy = 212.1282

    depth = depth2mi(depthValue)

    z = float(depth)
    x = float((u - cx) * z) / fx
    y = float((v - cy) * z) / fy

    result = [x, y, z]
    return result

注意!注意!注意!
彩色图和深度图要对齐!!!
相机内参使用自己相机的内参!!!
像素坐标原点是左上角!!!

定义了上述函数,直接调用就行啦。
还有最后一点得注意,像素对应512X424的图,
在这里插入图片描述
存入np数组,行列互换变为424X512。
在这里插入图片描述

注意像素坐标对应。

#深度图存入np数组
arr = np.array(depth)
#彩色图上某点像素坐标(u,v)在对齐深度图的深度值
depthValue =float(arr3[v, u])
coordinate = depth2xyz(u, v, depthValue)

代码中相机内参,是本次项目Kinect V2深度相机的内参
像素坐标获取对应三维坐标参考网址

  • 3
    点赞
  • 12
    评论
  • 42
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

©️2021 CSDN 皮肤主题: 1024 设计师:白松林 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值