1

我正在开发 cinder 和 kinect v2 应用程序,目前我被困在将颜色点映射到深度点。我在颜色框架中搜索某种颜色的特定点,所以我有颜色框架点 x 和 y。

我想从中获得深度,但当然深度框架是不同的分辨率和视点,所以你不能只索引它。

我找不到任何颜色点到深度点甚至相机点的映射器。除了自己进行测量之外,还有其他简单的方法吗?

我的问题与此类似:如何使用 Kinect 从不同的对象获取真实世界坐标 (x, y, z),但我不需要实际的真实世界坐标。但是,那里的答案并没有完全解释我需要做什么。

4

2 回答 2

2

您必须使用CoordinateMapperClass。对于您的情况:
使用该功能

 public void MapColorFrameToDepthSpace (
         Array<UInt16>[] depthFrameData,
         out Array<DepthSpacePoint>[] depthSpacePoints
)
于 2015-12-11T10:20:03.183 回答
1

您必须使用 kinect 传感器的 CoordinateMapper。您的映射与 MapColorFrameToDepthFrame 或空间有关。此功能在 kinect v2 sdk 上可用。

完成此步骤后,您将获得 3 个信息(Xview、Yview、Zworld)Yworld 和 Xworld,您可以找到这些公式

Yworld =  Zworld * Yview / focal_length 
Xworld = Zworld  * Xview / focal_length

现在你知道任何图像点的世界坐标

您可以轻松测量两点之间的距离。

Distance_of_p1_p2(mm) = Sqrt ( Square(p2.Xworld - p1.Xworld) +  Square(p2.Yworld - p1.Yworld) + Square(p2.Zworld - p1.Zworld)) 
于 2016-02-26T13:47:34.100 回答