MFCameraExtrinsic_CalibratedTransform-Struktur (mfapi.h)
Eine Transformation, die die Position einer Kamera relativ zu anderen Kameras oder einen etablierten externen Verweis beschreibt.
Syntax
typedef struct _MFCameraExtrinsic_CalibratedTransform {
GUID CalibrationId;
MF_FLOAT3 Position;
MF_QUATERNION Orientation;
} MFCameraExtrinsic_CalibratedTransform;
Member
CalibrationId
Eine Referenz-GUID, die den Kalibrierungsprozess für die Daten identifiziert, sodass verschiedene Verbraucher Kalibrierungsdaten aus demselben Prozess identifizieren können.
Position
Die Transformationsposition.
Orientation
Die Transformationsrotation.
Hinweise
Der Positionswert sollte in realen Koordinaten in Einheiten von Zählern ausgedrückt werden. Das Koordinatensystem von Position und Ausrichtung sollte wie im folgenden Diagramm dargestellt rechtshändig kartesisch sein.
Position und Ausrichtung weisen unterschiedliche Interpretationen für eigenständige Sensorgruppen und für Windows Mixed Reality Geräte auf.
Bei eigenständigen Sensorgruppen drücken die Position und Ausrichtung die Position des Ursprungs der Gruppe im Koordinatensystem des Sensors aus. Ein Positionswert von {-5, 0, 0} bedeutet beispielsweise, dass der Ursprung 5 Meter links vom Sensor liegt und der Sensor 5 Meter rechts vom Ursprung liegt. Ein Sensor, der 2 Meter über dem Ursprung positioniert ist, sollte eine Position von {0, -2, 0} angeben, da dies die Position des Ursprungs relativ zum Sensor ist.
Wenn der Sensor am Ursprung ausgerichtet ist, ist die Drehung das Identitätsquaternion und der Vorwärtsvektor entlang der -Z-Achse {0, 0, -1}. Wenn der Sensor vom Ursprung (d. h. nach links) um die Y-Achse gedreht wird, sollte der Wert Ausrichtung eine Drehung von -30 Grad um die Y-Achse darstellen, da er die Ausrichtung des Ursprungs relativ zum Sensor darstellt.
Windows Mixed Reality Geräte
Sensoren, die an einem Windows Mixed Reality Gerät (z. B. einer HoloLens) angeschlossen sind, drücken ihre Kalibrierung mithilfe der entgegengesetzten Konvention aus, sodass die Position und Ausrichtung den Standort des Sensors im Koordinatensystem des Geräts angeben. Ein Sensor, der sich beispielsweise 5 Zentimeter rechts vom Ursprung des Geräts befindet, hat eine Position von {0,05, 0, 0}, da dies die Position des Sensors relativ zum Gerät ist. Wenn ein Sensor vom Gerät (d. h. nach links) um die Y-Achse gedreht wird ( d. h. nach links), ist der Wert ausrichtung eine Drehung von +10 Grad über die Y-Achse, da er die Ausrichtung des Sensors relativ zum Gerät darstellt. Darüber hinaus kann die CalibrationId an SpatialGraphInteropPreview.CreateLocatorForNode übergeben werden, um einen SpatialLocator zu erstellen, der das Windows Mixed Reality Geräts darstellt. Dies kann verwendet werden, um die Position des Sensors im Raum für einen bestimmten Frame zu berechnen, indem die Position des SpatialLocator zum Zeitpunkt der Erfassung des Frames abgefragt und mit der Position und Ausrichtung des MFCameraExtrinsic_CalibratedTransform kombiniert wird. Um den Standort des Geräts für einen Frame abzufragen, übergeben Sie den Zeitstempel des von IMFSample::GetSampleTime angegebenen Frames an PerceptionTimestampHelper.FromSystemRelativeTargetTime, und übergeben Sie den resultierenden PerceptionTimestamp an SpatialLocator.TryLocateAtTimestamp.
Um zu ermitteln, ob ein IMFSample von einem Sensor stammt, der an ein Windows Mixed Reality Gerät angeschlossen ist, suchen Sie nach der folgenden Eigenschaft, die an den Frame angefügt ist, und legen Sie auf MFCameraExtrinsicsCalibrationType_SpatialGraphDynamicNode
fest:
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);
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Windows 10 [nur Desktop-Apps] |
Unterstützte Mindestversion (Server) | Windows Server 2016 [nur Desktop-Apps] |
Kopfzeile | mfapi.h |