gpt4 book ai didi

c# - ColorSpacePoint 到 DepthSpacePoint

转载 作者:搜寻专家 更新时间:2023-10-31 00:31:21 24 4
gpt4 key购买 nike

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

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

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

任何人都可以阐明这个问题吗?

谢谢!

最佳答案

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

要实现从颜色空间到深度或相机空间的正确映射,您首先必须将完整深度图像映射到彩色图像,以获得每个颜色像素的深度值。然后很容易将单个像素从颜色映射到深度空间。但到那时你已经有了完整的映射。

所以,如果你真的需要朝那个方向前进,你需要使用 CoordinateMapper.MapColorFrameToCameraSpace 映射整个图像。 .

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

编辑:

我希望一张小图可以帮助解释为什么需要深度来获得颜色和深度空间之间的正确映射:

enter image description here

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

如果物体不存在,彩色相机的相同像素将注视背景(蓝色虚线箭头),这将映射到深度相机中的不同像素(红色虚线箭头 - 不同的方向)箭头表示不同的像素)。

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

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

关于c# - ColorSpacePoint 到 DepthSpacePoint,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34189980/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com