ブログ@kaorun55

HoloLensやKinectなどのDepthセンサーを中心に書いています。

Kinect for Windows SDK v1.6 の 座標系変換(C#)

Kinect for Windows SDK v1.5までは距離カメラ座標からスケルトン座標(その反対も)や、距離カメラ座標からカラーカメラ座標に変換するメソッドはKinectSensorにありました(Map~)。

Kinect for Windows SDK v1.6ではこれらの機能が CoordinateMapper クラスに移され、そちらを利用することが推奨されているようです。 なお、 CoordinateMapper クラスのインスタンスは、 KinectSensor.CoordinateMapper プロパティにて取得できます。

なお、v1.6では従来の変換メソッドに加えて、拡張された距離データである DepthImagePixel の変換もサポートしているため、v1.6までの5つが8つになっています。変換できる座標は次の通りです。DepthFrameとついているのがv1.6で追加された DepthImagePixel の変換になりますが、ColorFrame とついているものも DepthImagePixel の変換になるようです。 DepthPointとついているのが従来の距離データのようです。

また、変換後のデータの妥当性(変換後の座標に収まっているか)は、  KinectSensor.IsKnownPoint() で確認できるようです。

  • MapColorFrameToDepthFrame
  • MapColorFrameToSkeletonFrame
  • MapDepthFrameToColorFrame
  • MapDepthFrameToSkeletonFrame
  • MapDepthPointToColorPoint
  • MapDepthPointToSkeletonPoint
  • MapSkeletonPointToColorPoint
  • MapSkeletonPointToDepthPoint