Share via


estrutura MFCameraExtrinsic_CalibratedTransform (mfapi.h)

Uma transformação que descreve a localização de uma câmera em relação a outras câmeras ou uma referência externa estabelecida.

Sintaxe

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

Membros

CalibrationId

Um GUID de referência que identifica o processo de calibragem dos dados, permitindo que diferentes consumidores identifiquem dados de calibragem do mesmo processo.

Position

A posição da transformação.

Orientation

A rotação da transformação.

Comentários

O valor Position deve ser expresso em coordenadas do mundo real em unidades de medidores. O sistema de coordenadas de posição e orientação deve ser cartesiano destro, conforme mostrado no diagrama a seguir.

Sistema de coordenadas cartesiano destro
Importante

A Posição e a Orientação têm interpretações diferentes para grupos de sensores autônomos e para dispositivos Windows Mixed Reality.

### Grupos de sensores autônomos

Para grupos de sensores autônomos, a posição e a orientação expressam a localização da origem do grupo no sistema de coordenadas do sensor. Por exemplo, um valor Position de {-5, 0, 0} significa que a origem é de 5 metros à esquerda do sensor e, portanto, o sensor está 5 metros à direita da origem. Um sensor posicionado 2 metros acima da origem deve especificar uma Posição de {0, -2, 0} porque essa é a posição da origem em relação ao sensor.

Se o sensor estiver alinhado com a origem, a rotação será o quatérnion de identidade e o vetor de avanço estará ao longo do eixo -Z {0, 0, -1}. Se o sensor for girado +30 graus em torno do eixo Y da origem (ou seja, para a esquerda), o valor de Orientação deverá ser uma rotação de -30 graus ao redor do eixo Y, pois representa a orientação da origem, em relação ao sensor.

dispositivos Windows Mixed Reality

Os sensores anexados a um dispositivo de Windows Mixed Reality (por exemplo, um HoloLens) expressam sua calibragem usando a convenção oposta, de modo que a posição e a orientação indiquem a localização do sensor no sistema de coordenadas do dispositivo. Por exemplo, um sensor localizado a 5 centímetros à direita da origem do dispositivo terá uma Posição de {0,05, 0, 0} porque essa é a posição do sensor, em relação ao dispositivo. Da mesma forma, se um sensor for girado +10 graus ao redor do eixo Y do dispositivo (ou seja, à esquerda), o valor de Orientação será uma rotação de +10 graus sobre o eixo Y, pois representa a orientação do sensor, em relação ao dispositivo. Além disso, a CalibrationId pode ser passada para SpatialGraphInteropPreview.CreateLocatorForNode para criar um SpatialLocator que representa o dispositivo Windows Mixed Reality. Isso pode ser usado para calcular o local do sensor no espaço para um determinado quadro, consultando o local do SpatialLocator no momento em que o quadro foi capturado e combinando isso com a Posição e Orientação do MFCameraExtrinsic_CalibratedTransform. Para consultar o local do dispositivo para um quadro, passe o carimbo de data/hora do quadro fornecido por IMFSample::GetSampleTime para PerceptionTimestampHelper.FromSystemRelativeTargetTime e passe o PerceptionTimestamp resultante para SpatialLocator.TryLocateAtTimestamp.

Para determinar se um IMFSample veio de um sensor anexado a um dispositivo Windows Mixed Reality, procure a seguinte propriedade anexada ao quadro, definida MFCameraExtrinsicsCalibrationType_SpatialGraphDynamicNodecomo :

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 Valor
Cliente mínimo com suporte Windows 10 [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows Server 2016 [somente aplicativos da área de trabalho]
Cabeçalho mfapi.h

Confira também

Estruturas do Media Foundation