Kinect颜色指向深度/相机点

时间:2015-01-18 00:27:33

标签: kinect cinder

我正在研究cinder和kinect v2应用程序,目前我仍然坚持将色点映射到深度点。我通过颜色框搜索某个特定颜色的点,所以我有颜色框架点x和y。

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

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

我的问题与此类似:How to get real world coordinates (x, y, z) from a distinct object using a Kinect,但我不需要实际的真实世界坐标。但是,那里的答案并没有完全解释我做了什么。

2 个答案:

答案 0 :(得分:2)

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

 public void MapColorFrameToDepthSpace (
         Array<UInt16>[] depthFrameData,
         out Array<DepthSpacePoint>[] depthSpacePoints
)

答案 1 :(得分: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))