Как удалить глубину цвета из Kinect Fusion Explorer - пример wpf c #? - PullRequest
1 голос
/ 05 июля 2019

У меня есть проект с Kinect v2. Я скачал Kinect Fusion Explorer - пример wpf с Kinect SDK. В этом примере я получаю сетку, подобную левой на картинке. Я хочу получить его как правильный, без цветов. У кого-нибудь есть совет, который может дать мне понять, как это сделать? Я просто хочу удалить глубину цвета из потока.

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

1 Ответ

1 голос
/ 06 июля 2019

В этом примере колоризация вокселей выполняется путем умножения вектора, содержащего координаты 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;
...