Profundidad de Kinect y alineación de marcos de imagen

Estoy jugando con el nuevo Kinect SDK v1.0.3.190. (otras preguntas relacionadas en stackoverflow están en el sdk anterior de kinect) Obtengo profundidad y flujos de color de Kinect. Como la profundidad y los flujos RGB se capturan con diferentes sensores, existe una desalineación entre dos cuadros, como se puede ver a continuación.

Solo rgb

Solo profundidad

Profundidad y RGB

Necesito alinearlos y hay una función llamada MapDepthToColorImagePoint exactamente para este propósito. Sin embargo, no parece funcionar. A continuación se muestra un resultado igual de combinado (profundidad y color mapeado) que se crea con el siguiente código.

<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>

dónde

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

videoBitmapData -> raw image data (byte array)

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

El orden de los parámetros, la resolución, los tamaños de matriz son correctos (doble verificación).

El resultado del código es:

¡La desalineación continúa! Lo que es aún peor es que, la imagen resultante después de usar MapDepthToColorImagePoint es exactamente la misma que la imagen original.

Se agradecería si alguien pudiera ayudarme a descubrir mi error o al menos explicarme para qué sirve MapDepthToColorImagePoint (suponiendo que entendí mal su funcionalidad).

Respuestas a la pregunta(2)

Su respuesta a la pregunta