struktur MFCameraExtrinsic_CalibratedTransform (mfapi.h)
Transformasi yang menjelaskan lokasi kamera relatif terhadap kamera lain atau referensi eksternal yang mapan.
Sintaks
typedef struct _MFCameraExtrinsic_CalibratedTransform {
GUID CalibrationId;
MF_FLOAT3 Position;
MF_QUATERNION Orientation;
} MFCameraExtrinsic_CalibratedTransform;
Anggota
CalibrationId
GUID referensi yang mengidentifikasi proses kalibrasi untuk data, memungkinkan konsumen yang berbeda mengidentifikasi data kalibrasi dari proses yang sama.
Position
Posisi transformasi.
Orientation
Rotasi transformasi.
Keterangan
Nilai Posisi harus dinyatakan dalam koordinat dunia nyata dalam satuan meter. Sistem koordinat posisi dan orientasi harus dengan tangan kanan Cartesian seperti yang ditunjukkan pada diagram berikut.
Posisi dan Orientasi memiliki interpretasi yang berbeda untuk grup sensor yang berdiri sendiri, dan untuk perangkat Windows Mixed Reality.
Untuk grup sensor yang berdiri sendiri, posisi dan orientasi mengekspresikan lokasi asal grup dalam sistem koordinat sensor. Misalnya, nilai Posisi {-5, 0, 0} berarti bahwa asalnya adalah 5 meter di sebelah kiri sensor, dan oleh karena itu sensor adalah 5 meter di sebelah kanan asal. Sensor yang diposisikan 2 meter di atas asal harus menentukan Posisi {0, -2, 0} karena itu adalah posisi asal relatif terhadap sensor.
Jika sensor selaras dengan asal, rotasi adalah kuaternion identitas dan vektor maju berada di sepanjang sumbu -Z {0, 0, -1}. Jika sensor diputar +30 derajat di sekitar sumbu Y dari asal (yaitu ke kiri), maka nilai Orientasi harus berupa rotasi -30 derajat di sekitar sumbu Y, karena mewakili orientasi asal, relatif terhadap sensor.
Windows Mixed Reality perangkat
Sensor yang melekat pada perangkat Windows Mixed Reality (misalnya HoloLens) mengekspresikan kalibrasinya menggunakan konvensi yang berlawanan, sehingga posisi dan orientasi menunjukkan lokasi sensor dalam sistem koordinat perangkat. Misalnya, sensor yang terletak 5 sentimeter di sebelah kanan asal perangkat akan memiliki Posisi {0,05, 0, 0} karena itu adalah posisi sensor, relatif terhadap perangkat. Demikian juga, jika sensor diputar +10 derajat di sekitar sumbu Y dari perangkat (yaitu ke kiri), maka nilai Orientasi akan menjadi rotasi +10 derajat tentang sumbu Y, karena mewakili orientasi sensor, relatif terhadap perangkat. Selain itu, CalibrationId dapat diteruskan ke SpatialGraphInteropPreview.CreateLocatorForNode untuk membuat SpatialLocator yang mewakili perangkat Windows Mixed Reality. Ini dapat digunakan untuk menghitung lokasi sensor di ruang untuk bingkai tertentu, dengan mengkueri lokasi SpatialLocator pada saat bingkai ditangkap, dan menggabungkannya dengan Posisi dan OrientasiMFCameraExtrinsic_CalibratedTransform. Untuk mengkueri lokasi perangkat untuk bingkai, lewati tanda waktu bingkai yang diberikan oleh IMFSample::GetSampleTime ke PerceptionTimestampHelper.FromSystemRelativeTargetTime, dan teruskan PerceptionTimestamp yang dihasilkan ke SpatialLocator.TryLocateAtTimestamp.
Untuk menentukan apakah IMFSample berasal dari sensor yang terpasang pada perangkat Windows Mixed Reality, cari properti berikut yang dilampirkan ke bingkai, atur ke 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);
Persyaratan
Persyaratan | Nilai |
---|---|
Klien minimum yang didukung | Windows 10 [khusus aplikasi desktop] |
Server minimum yang didukung | Windows Server 2016 [hanya aplikasi desktop] |
Header | mfapi.h |