Kinect Глубина и выравнивание кадров

Я играю с новым Kinect SDK v1.0.3.190. (другие связанные вопросы в stackoverflow находятся на предыдущем SDK Kinect) Я получаю потоки глубины и цвета от Kinect. Поскольку потоки глубины и RGB регистрируются разными датчиками, между двумя кадрами возникает несоосность, как можно видеть ниже.

Только RGB RGB

Только глубина Depth

Глубина & amp; RGB RGB & Depth equally blended

Мне нужно выровнять их, и есть функция с именем MapDepthToColorImagePoint именно для этой цели. Однако это, похоже, не работает. ниже приведен одинаково смешанный результат (глубина и отображенный цвет), который создается с помощью следующего кода

<code>            Parallel.For(0, this.depthFrameData.Length, i =>
        {
            int depthVal = this.depthFrameData[i] >> 3;
            ColorImagePoint point = this.kinectSensor.MapDepthToColorImagePoint(DepthImageFormat.Resolution640x480Fps30, i / 640, i % 640, (short)depthVal, ColorImageFormat.RgbResolution640x480Fps30);
            int baseIndex = Math.Max(0, Math.Min(this.videoBitmapData.Length - 4, (point.Y * 640 + point.X) * 4));

            this.mappedBitmapData[baseIndex] = (byte)((this.videoBitmapData[baseIndex]));
            this.mappedBitmapData[baseIndex + 1] = (byte)((this.videoBitmapData[baseIndex + 1]));
            this.mappedBitmapData[baseIndex + 2] = (byte)((this.videoBitmapData[baseIndex + 2]));
        });
</code>

где

<code>depthFrameData -> raw depth data (short array)

videoBitmapData -> raw image data (byte array)

mappedBitmapData -> expected result data (byte array)
</code>

порядок параметров, разрешение, размеры массива правильные (проверено дважды).

Результат кода: depth and MapDepthToColorImagePoint

Смещение продолжается! Еще хуже то, что результирующее изображение после использования MapDepthToColorImagePoint в точности совпадает с исходным изображением.

Был бы признателен, если бы кто-нибудь мог помочь мне узнать мою ошибку или хотя бы объяснить, для чего предназначен MapDepthToColorImagePoint (при условии, что я неправильно понял его функциональность)?

Ответы на вопрос(2)

Ваш ответ на вопрос