opencv - 为什么与我的ToF传感器平行的对象在点云中看起来不平行?

标签 opencv 3d kinect point-cloud-library point-clouds

我将Kinect V2与自己的ToF传感器进行了比较,但发现了另一个地方。

下面是具有Kinect V2产生的RGB信息的点云,该点云放置在对象的前面,并且该对象放置在两堵墙之间。这意味着两个壁平行于Kinect V2的视线。

如果拖动点云,则可以看到.ply文件中的两堵墙的点云彼此平行,并且与Kinect的视线平行。

从点云的顶部看

但是,如果我使用自己的ToF传感器在相同的环境和相同的 View 下捕获点云(请忽略中间对象的差异,它已被更改),则点云看起来像这样(彩色相机没有已实现)

左壁(红色圆圈区域)以某种方式像“/”一样扭曲(右壁由于我的传感器的视野而无法显示)

我对这种现象感到困惑,我很确定Kinect V2采取了一些措施来解决此问题,但我无法弄清楚。

有人可以给我一些有关我看到的场景的线索吗?

如果需要提供更多信息,请随时询问。

最佳答案

TOF相机受传感器和照明单元的许多系统误差的影响,例如,这会导致照明不均匀。

我对此主题做了详细的研究,可以在以下地址找到:
https://arxiv.org/pdf/1505.05459.pdf

由于主动照明从未实现,因此错误在边框上变得非常重要:

  • 与相机
  • 相同
  • 框架的中心和边框的幂相同

  • 对于您的情况,我认为问题出在边界处,对于边界像素,所测量的距离变得非常非线性。检查纸张中的图5和15。

    可能的解决方案:
  • 尝试保持1到3米的距离。
  • 将更多的注意力集中在框架的中心2/3上。
  • 关于opencv - 为什么与我的ToF传感器平行的对象在点云中看起来不平行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29679278/

    相关文章:

    python - 使用 RSTP 的 DNN OpenCV Python 总是在几分钟后崩溃

    c++ - 如何将labview图像类型转换为opencv图像类型(或Mat)?

    opencv - 非局部均值滤波器可以处理哪些类型的噪声?双边过滤器与非本地过滤器

    c++ - 使用 OpenGL 进行纹理映射后出现奇怪的结果

    r - 使用 R 绘制具有等值线图叠加的 3D 曲面图

    python - 名称错误 : name 'freenect' is not defined

    c++ - 如何用 gtk 2.x 而不是 gtk3.x 编译 opencv

    algorithm - 从 3D 点云进行表面重建的鲁棒算法?

    ubuntu - Kinect + ROS + VMware Ubuntu

    c# - 如何从 Kinect 深度数组中获取位置 (x,y)?