estructura de MFCameraExtrinsic_CalibratedTransform (mfapi.h)

Transformación que describe la ubicación de una cámara en relación con otras cámaras o una referencia externa establecida.

Sintaxis

typedef struct _MFCameraExtrinsic_CalibratedTransform {
  GUID          CalibrationId;
  MF_FLOAT3     Position;
  MF_QUATERNION Orientation;
} MFCameraExtrinsic_CalibratedTransform;

Miembros

CalibrationId

GUID de referencia que identifica el proceso de calibración de los datos, lo que permite a los distintos consumidores identificar los datos de calibración del mismo proceso.

Position

Posición de transformación.

Orientation

Rotación de transformación.

Comentarios

El valor Position debe expresarse en coordenadas reales en unidades de medidores. El sistema de coordenadas de posición y orientación debe ser cartesiano a la derecha, como se muestra en el diagrama siguiente.

Sistema de coordenadas cartesiano a la derecha
Importante

La posición y la orientación tienen diferentes interpretaciones para grupos de sensores independientes y para dispositivos Windows Mixed Reality.

### Grupos de sensores independientes

En el caso de los grupos de sensores independientes, la posición y la orientación expresan la ubicación del origen del grupo en el sistema de coordenadas del sensor. Por ejemplo, un valor position de {-5, 0, 0} significa que el origen es de 5 metros a la izquierda del sensor y, por lo tanto, el sensor está a 5 metros a la derecha del origen. Un sensor situado a 2 metros por encima del origen debe especificar una posición de {0, -2, 0} porque es la posición del origen en relación con el sensor.

Si el sensor está alineado con el origen, la rotación es el cuaternión de identidad y el vector de avance se encuentra a lo largo del eje -Z {0, 0, -1}. Si el sensor gira +30 grados alrededor del eje Y desde el origen (es decir, a la izquierda), el valor orientation debe ser un giro de -30 grados alrededor del eje Y, ya que representa la orientación del origen, en relación con el sensor.

dispositivos Windows Mixed Reality

Los sensores conectados a un dispositivo Windows Mixed Reality (por ejemplo, holoLens) expresan su calibración mediante la convención opuesta, por lo que la posición y la orientación indican la ubicación del sensor en el sistema de coordenadas del dispositivo. Por ejemplo, un sensor que se encuentra a 5 centímetros a la derecha del origen del dispositivo tendrá una posición de {0,05, 0, 0} porque es la posición del sensor, en relación con el dispositivo. Del mismo modo, si un sensor gira +10 grados alrededor del eje Y desde el dispositivo (es decir, a la izquierda), el valor orientation será un giro de +10 grados sobre el eje Y, ya que representa la orientación del sensor, en relación con el dispositivo. Además, el valor de CalibrationId se puede pasar a SpatialGraphInteropPreview.CreateLocatorForNode para crear un SpatialLocator que represente el dispositivo Windows Mixed Reality. Esto se puede usar para calcular la ubicación del sensor en el espacio de un marco determinado, consultando la ubicación del SpatialLocator en el momento en que se capturó el fotograma y combinándolo con la posición y la orientación del MFCameraExtrinsic_CalibratedTransform. Para consultar la ubicación del dispositivo para un fotograma, pase la marca de tiempo del fotograma proporcionado por IMFSample::GetSampleTime a PerceptionTimestampHelper.FromSystemRelativeTargetTime y pase la marca de tiempo resultante a SpatialLocator.TryLocateAtTimestamp.

Para determinar si un IMFSample procede de un sensor conectado a un dispositivo Windows Mixed Reality, busque la siguiente propiedad adjunta al marco, establecida MFCameraExtrinsicsCalibrationType_SpatialGraphDynamicNodeen :

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);
 

Requisitos

Requisito Value
Cliente mínimo compatible Windows 10 [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows Server 2016 [solo aplicaciones de escritorio]
Encabezado mfapi.h

Consulte también

Estructuras de Media Foundation