Freigeben über


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.

Kartesisches Koordinatensystem mit rechtshändiger Hand
Wichtig

Position und Ausrichtung weisen unterschiedliche Interpretationen für eigenständige Sensorgruppen und für Windows Mixed Reality Geräte auf.

### Eigenständige Sensorgruppen

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_SpatialGraphDynamicNodefest:

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

Weitere Informationen

Medienfundamentstrukturen