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.
A Posição e a Orientação têm interpretações diferentes para grupos de sensores autônomos e para dispositivos Windows Mixed Reality.
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_SpatialGraphDynamicNode
como :
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 |