当前位置:  开发笔记 > 编程语言 > 正文

ColorSpacePoint到DepthSpacePoint

如何解决《ColorSpacePoint到DepthSpacePoint》经验,为你挑选了1个好方法。

我正在尝试将单个ColorSpacePoint映射到Kinect SDK 2.0中的DepthSpacePoint。

如果了解Kinect提供的三种坐标系统类型,这应该是一个非常简单的映射。ColorSpace和DepthSpace都是二维空间,它们具有不同的分辨率和宽高比。

但是,我无法确定CoordinateMapper中的哪个函数将接收特定的ColorSpacePoint并返回关联的DepthSpacePoint。

有人能对此事有所启发吗?

谢谢!



1> HenningJ..:

SDK中没有将单个映射ColorSpacePointDepthSpace或的方法CameraSpace。而且不可能!为了获得正确的映射,您不仅需要像素坐标,而且还需要特定像素的深度。而且在RGB图像中,您没有该信息。

为了实现从颜色空间到深度或相机空间的正确映射,首先必须将完整的深度图像映射到彩色图像,以获得每个颜色像素的深度值。这样就很容易将单个像素从颜色映射到深度空间。但是到那时,您将拥有完整的映射。

因此,如果您确实需要朝这个方向前进,则需要使用绘制整个图像CoordinateMapper.MapColorFrameToCameraSpace

另一方面,当您处于景深或摄影空间中时,每个像素已经拥有所需的所有信息,因此映射单个像素很容易。这就是为什么这些方法存在的原因(例如CoordinateMapper.MapDepthPointToCameraSpace)。

编辑:

我希望可以通过绘制一些图形来解释为什么需要深度才能在颜色和深度空间之间获得正确的映射:

彩色相机的像素之一注视着蓝色物体(蓝色实心箭头)。该像素映射到深度相机的特定像素(红色实心箭头)。

如果对象不存在,则彩色相机的相同像素将注视着背景(蓝色虚线箭头),该背景将被映射到深度相机中的另一个像素(红色虚线箭头-箭头的不同方向意味着不同的像素)。

但是彩色相机不知道它是在看物体还是背景。它只知道那里是哪种颜色。颜色没有多远。这就是为什么仅彩色相机无法确定深度相机中哪个像素正确的原因。

另一方面,深度相机知道每个像素的距离,因此可以找出彩色相机中的相应像素。

推荐阅读
黄晓敏3023
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有