Kinectv2 - 如何从 kinect fusion explorer - wpf 示例 c# 中删除深度颜色?

Kinectv2 - How to remove depth color from kinect fusion explorer - wpf example c#?

我有一个 Kinect v2 项目。我已经从 kinect sdk 下载了 kinect fusion explorer - wpf 示例。在这个例子中,我得到了一个像图中左边的网格。我想让它像正确的一样,没有颜色。有没有人有建议可以帮助我弄清楚该怎么做?我只想从流中删除深度颜色。

https://i.imgur.com/i7HvSS7.jpg

在此示例中,体素的着色是通过将包含每个体素的 X、Y、Z 坐标的向量乘以矩阵 worldToBGRTransform

默认矩阵将 X 映射到蓝色,将 Y 映射到绿色,将深度映射到 R,并在 X 和 Y 上进行一些偏移(我不太了解那部分)。

要使输出变成灰色,您必须映射颜色,使 R G 和 B 设置相等。

例如您可以按如下方式编辑 worldToBGRTransform 的设置(MainWindows.xaml.cs 行 2893):

this.worldToBGRTransform = Matrix4.Identity;
this.worldToBGRTransform.M11 = 0.5f * this.voxelsPerMeter / this.voxelsX;
this.worldToBGRTransform.M12 = 0.5f * this.voxelsPerMeter / this.voxelsX;
this.worldToBGRTransform.M13 = 0.5f * this.voxelsPerMeter / this.voxelsX;
this.worldToBGRTransform.M21 = 0.5f * this.voxelsPerMeter / this.voxelsY;
this.worldToBGRTransform.M22 = 0.5f * this.voxelsPerMeter / this.voxelsY;
this.worldToBGRTransform.M23 = 0.5f * this.voxelsPerMeter / this.voxelsY;
this.worldToBGRTransform.M31 = this.voxelsPerMeter / this.voxelsZ;
this.worldToBGRTransform.M32 = this.voxelsPerMeter / this.voxelsZ;
this.worldToBGRTransform.M33 = this.voxelsPerMeter / this.voxelsZ;