MFCameraExtrinsic_CalibratedTransform struttura (mfapi.h)
Trasformazione che descrive la posizione di una fotocamera rispetto ad altre fotocamere o a un riferimento esterno stabilito.
Sintassi
typedef struct _MFCameraExtrinsic_CalibratedTransform {
GUID CalibrationId;
MF_FLOAT3 Position;
MF_QUATERNION Orientation;
} MFCameraExtrinsic_CalibratedTransform;
Members
CalibrationId
GUID di riferimento che identifica il processo di calibrazione per i dati, consentendo ai diversi consumer di identificare i dati di calibrazione dallo stesso processo.
Position
Posizione di trasformazione.
Orientation
Rotazione della trasformazione.
Commenti
Il valore Position deve essere espresso in coordinate reali in unità di metri. Il sistema di coordinate sia di posizione che di orientamento deve essere cartesiano destro, come illustrato nel diagramma seguente.
La posizione e l'orientamento hanno diverse interpretazioni per i gruppi di sensori autonomi e per i dispositivi Windows Mixed Reality.
Per i gruppi di sensori autonomi, la posizione e l'orientamento esprimono la posizione dell'origine del gruppo nel sistema di coordinate del sensore. Ad esempio, un valore Position di {-5, 0, 0} indica che l'origine è di 5 metri a sinistra del sensore e quindi il sensore è di 5 metri a destra dell'origine. Un sensore posizionato 2 metri sopra l'origine deve specificare una posizione di {0, -2, 0} perché è la posizione dell'origine rispetto al sensore.
Se il sensore è allineato all'origine, la rotazione è il quaternione dell'identità e il vettore di inoltro si trova lungo l'asse -Z {0, 0, -1}. Se il sensore è ruotato +30 gradi intorno all'asse Y dall'origine (ad esempio a sinistra ), il valore Orientamento deve essere una rotazione di -30 gradi intorno all'asse Y, perché rappresenta l'orientamento dell'origine, rispetto al sensore.
dispositivi Windows Mixed Reality
I sensori collegati a un dispositivo Windows Mixed Reality (ad esempio un HoloLens) esprimono la loro calibrazione usando la convenzione opposta, quindi la posizione e l'orientamento indicano la posizione del sensore nel sistema di coordinate del dispositivo. Ad esempio, un sensore che si trova a 5 centimetri a destra dell'origine del dispositivo avrà una posizione di {0,05, 0, 0} perché è la posizione del sensore, rispetto al dispositivo. Analogamente, se un sensore è ruotato +10 gradi intorno all'asse Y dal dispositivo (ad esempio a sinistra ), il valore Orientamento sarà una rotazione di +10 gradi sull'asse Y, perché rappresenta l'orientamento del sensore, rispetto al dispositivo. È inoltre possibile passare l'Oggetto CalibrationId a SpatialGraphInteropPreview.CreateLocatorForNode per creare un oggetto SpatialLocator che rappresenta il dispositivo Windows Mixed Reality. Ciò può essere usato per calcolare la posizione del sensore nello spazio per un determinato frame, eseguendo una query sulla posizione dell'oggetto SpatialLocator al momento dell'acquisizione del frame e combinandolo con la posizione el'orientamento del MFCameraExtrinsic_CalibratedTransform. Per eseguire una query sulla posizione del dispositivo per un frame, passare il timestamp del frame specificato da FMSample::GetSampleTime a PerceptionTimestampHelper.FromSystemRelativeTargetTime e passare il timestamp risultante a SpatialLocator.TryLocateAtTimestamp.
Per determinare se un FMISample proviene da un sensore collegato a un dispositivo Windows Mixed Reality, cercare la proprietà seguente collegata alla cornice, impostata su 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);
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Windows 10 [solo app desktop] |
Server minimo supportato | Windows Server 2016 [solo app desktop] |
Intestazione | mfapi.h |