在颜色位置获取深度,Kinect SDK



我正在寻找(尽快)从 Kinect 相机获取彩色像素的相应深度的方法。

我找到了 MapDepthFrameToColorFrame 函数。但这只会给我在某个深度位置的颜色,我想要相反。

我想要这个的原因是我将能够单击 RGB 图像上的某个位置并获取该像素的位置。

有没有办法比循环遍历MapDepthFrame到ColorFrame的所有结果更快?

这里的问题是,由于相机和红外发射器的定位方式,并非每个颜色像素都会分配一个深度。如果你面对 Kinect 并将左手举在胸前,则胸部的某些部分没有深度数据,因为你的手挡住了 IR 发射器。由于红外摄像机更接近RGB摄像机,因此从深度到RGB通常不会遇到相同的问题;如果 Kinect 可以看到 IR,它可以看到 RGB。

回答你的问题:我不知道有什么方法可以做到这一点,因为RGB索引没有给你足够的信息来计算深度指数。您是否尝试过使用MapDepthFrameToColorFrame并像您提到的那样循环?除非您像疯子(或计算机)一样点击,否则我敢打赌该应用程序将能够很好地处理这个问题。在您确定它会导致问题之前,我不会花时间尝试优化它。

如果需要,可以尝试通过检查函数返回的颜色坐标子集来减小循环的大小。获取 RGB 像素 (x, y) 的坐标,然后检查接近 (x,y) 的深度坐标。也许(x-20,y-20)到(x+20,y+20)。如果找不到它,您可以检查数组的其余部分。对此进行一些测试,您可能会找到一个很好的范围来检查请求的像素,大多数时间您都会受到打击,而不会有很多循环。

最新更新