首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将二维像素坐标转换为三维Azure Kinect

将二维像素坐标转换为三维Azure Kinect
EN

Stack Overflow用户
提问于 2020-08-05 07:39:12
回答 1查看 883关注 0票数 2

我正在用深度相机探测一个矩形。此时,我正在努力使用NFOV深度相机来生成选定像素的精确3d坐标。我在测试板上选择了两个点,使用深度2d将它们转换为彩色3d Kinect-SDK C#包装函数,计算接收坐标之间的距离,并测量选定的现实点之间的距离(918 C#),对此进行了测试。在2.7米的距离,我得到2厘米的误差在图像中心,而在角落的误差高达6厘米。

转换函数不应该是失真的吗?我是否错过了接收准确数据的关键步骤?这可能是别的什么吗?

谢谢你的帮助!

EN

回答 1

Stack Overflow用户

发布于 2020-08-27 01:40:23

增加Git问题的答复:

以下几点:

  1. ,你是怎么选择2d点的。这是通过手动查看红外图像还是手动查看深度图像?关键是,你应该从一个精确的2d像素开始,与3d点完全匹配,当你用人眼做这件事时,通常你需要一些纹理,例如在红外光谱中有可见标记的目标板,然后你可以进行像素检查(假设人眼能给出足够的精度)来找到标记的中心,或者使用CV算法来检测2d点。
  2. 只尝试将2d深度像素转换成深度相机空间中的3d点(而不是彩色3d空间)。您只需将TransformTo3D的最后一个参数更改为K4A.CalibrationDeviceType.Depth,然后将点A到点B的相对距离与实际测量值进行比较。这可以帮助缩小是否只有使用深度相机的本质才能提供一个更好的结果(而不是一直走到彩色空间)。如果与彩色空间中的3d点相比,使用深度相机空间中的3d点效果更好,那么可能会出现一些与extrinsics或颜色本质相关的校准问题。

最后,深度相机倾斜6度相对于colot相机应该不重要。摄像机标定的本质是针对每台摄像机的畸变进行标定,并对外场进行标定以考虑摄像机的力学特性。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63260503

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档