MFCameraExtrinsic_CalibratedTransform 構造体 (mfapi.h)
他のカメラまたは確立された外部参照に対するカメラの位置を表す変換。
構文
typedef struct _MFCameraExtrinsic_CalibratedTransform {
GUID CalibrationId;
MF_FLOAT3 Position;
MF_QUATERNION Orientation;
} MFCameraExtrinsic_CalibratedTransform;
メンバー
CalibrationId
データの調整プロセスを識別する参照 GUID。異なるコンシューマーが同じプロセスから調整データを識別できるようにします。
Position
変換位置。
Orientation
変換の回転。
注釈
Position 値は、実際の座標でメートル単位で表す必要があります。 次の図に示すように、位置と向きの両方の座標系は右揃えデカルトである必要があります。
位置と向きには、スタンドアロン センサー グループとWindows Mixed Reality デバイスの解釈が異なります。
スタンドアロン センサー グループの場合、位置と向きは、センサーの座標系内のグループの原点の位置を表します。 たとえば、 Position の値 {-5, 0, 0} は、原点がセンサーの左側に 5 メートルであることを意味するため、センサーは原点の右側に 5 メートルです。 原点の 2 メートル上に位置するセンサーは、センサーに対する 原点の位置 であるため、{0、-2、0} の位置を指定する必要があります。
センサーが原点に揃っている場合、回転は ID 四元数であり、前方ベクトルは -Z 軸 {0, 0, -1} に沿っています。 センサーが原点 (つまり左) から Y 軸を中心に +30 度回転する場合、センサーに対する原点の向きを表すので、 Orientation 値は Y 軸の周りの -30 度の回転になります。
Windows Mixed Reality デバイス
Windows Mixed Reality デバイス (HoloLens など) に接続されているセンサーは、逆の規則を使用して調整を表現するため、位置と向きはデバイスの座標系内のセンサーの位置を示します。 たとえば、デバイスの原点の右側の 5 センチメートルにあるセンサーは、デバイスに対するセンサーの 位置 であるため、{0.05、0、0} の位置になります。 同様に、センサーがデバイスから Y 軸を中心に +10 度回転した場合 (つまり左方向)、デバイスに対するセンサーの向きを表すので、 Orientation 値は Y 軸を中心に +10 度の回転になります。 さらに、CalibrationId を SpatialGraphInteropPreview.CreateLocatorForNode に渡して、Windows Mixed Reality デバイスを表す SpatialLocator を作成できます。 これを使用すると、フレームがキャプチャされた時点の SpatialLocator の位置を照会し、これをMFCameraExtrinsic_CalibratedTransformの位置と向きと組み合わせることで、特定のフレームの空間内のセンサーの位置を計算できます。 フレームのデバイスの場所を照会するには、 IMFSample::GetSampleTime によって指定されたフレームのタイムスタンプを PerceptionTimestampHelper.FromSystemRelativeTargetTime に渡し、結果の PerceptionTimestamp を SpatialLocator.TryLocateAtTimestamp に渡します。
IMFSample がWindows Mixed Reality デバイスに接続されているセンサーから取得されたかどうかを確認するには、フレームに接続されている次のプロパティを探し、 を にMFCameraExtrinsicsCalibrationType_SpatialGraphDynamicNode
設定します。
typedef enum _MFCameraExtrinsicsCalibrationType
{
MFCameraExtrinsicsCalibrationType_Unknown = 0,
MFCameraExtrinsicsCalibrationType_SpatialGraphDynamicNode = 1
} MFCameraExtrinsicsCalibrationType;
DEFINE_GUID(MFSampleExtension_CameraExtrinsicsCalibrationType, 0x3524e3b0, 0xc355, 0x49f1, 0xb8, 0xb0, 0xd0, 0xdd, 0x62, 0xde, 0x37, 0xa7);
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows 10 [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows Server 2016 [デスクトップ アプリのみ] |
Header | mfapi.h |