0

我试图从 RGB 流中简单地获取给定 2D ColorSpacePoint的 3D CameraSpacePoint位置。

查看CoordinatorMapper 方法,从颜色坐标映射的唯一方法是:

MapColorFrameToDepthSpace 将帧从颜色空间映射到深度空间。 MapColorFrameToDepthSpaceUsingIBuffer 将帧从颜色空间映射到深度空间。 MapDepthFrameToCameraSpace将帧从深度空间映射到相机空间。 MapDepthFrameToCameraSpaceUsingIBuffer将帧从深度空间映射到相机空间。

问题是,在我的旧 PC 上,当我尝试使用 MapColorFrameToDepthSpace 时,速度从 ~33fps 下降到 ~10fps。我猜想将 1920x1080 点从 2D 转换为 3D 需要一段时间,但我希望有更快的方法,因为我需要为我的应用程序转换一个点。甚至 SDK 示例(c++ 和 c#)也以 ~1fps 的速度运行,用于颜色到相机的转换演示。

即使我使用MapDepthFrameToCameraSpacethen MapDepthPointToCameraSpace,当我只需要一个点时,它仍然会将整个深度帧转换为相机空间。

有没有办法将单个 ColorSpacePoint 转换为 CameraPoint ?如果有怎么办?否则我怎么能加速 ColorSpace 到 CameraSpace 的映射?

是否有任何其他 SDK(libfreenect2 等)提供更有效的方法来检索颜色流上某个位置的深度?

4

1 回答 1

0

我已经使用开源库 PCL 与 RGDB 相机一起使用(尽管是英特尔 realsence)。这可能值得一试。不过,我不确定它在笔记本电脑的限制下效果如何。

于 2018-03-13T07:19:50.330 回答