MFCameraExtrinsic_CalibratedTransform 구조체(mfapi.h)
다른 카메라 또는 설정된 외부 참조를 기준으로 카메라의 위치를 설명하는 변환입니다.
구문
typedef struct _MFCameraExtrinsic_CalibratedTransform {
GUID CalibrationId;
MF_FLOAT3 Position;
MF_QUATERNION Orientation;
} MFCameraExtrinsic_CalibratedTransform;
멤버
CalibrationId
다른 소비자가 동일한 프로세스에서 보정 데이터를 식별할 수 있도록 데이터에 대한 보정 프로세스를 식별하는 참조 GUID입니다.
Position
변환 위치입니다.
Orientation
변환 회전입니다.
설명
Position 값은 실제 좌표 단위로 미터 단위로 표현되어야 합니다. 위치와 방향의 좌표계는 다음 다이어그램과 같이 오른손 카티시안이어야 합니다.
위치 및 방향에는 독립 실행형 센서 그룹 및 Windows Mixed Reality 디바이스에 대해 서로 다른 해석이 있습니다.
독립 실행형 센서 그룹의 경우 위치와 방향은 센서의 좌표계에서 그룹의 원점 위치를 나타냅니다. 예를 들어 위치 값 {-5, 0, 0}은 원본이 센서의 왼쪽에서 5미터이므로 센서가 원점 오른쪽에 5미터임을 의미합니다. 원본보다 2미터 위에 있는 센서는 센서에 상대적인 원 점 위치이므로 {0, -2, 0}의 위치를 지정해야 합니다.
센서가 원점과 정렬되면 회전은 ID 쿼터니언이고 정방향 벡터는 -Z 축 {0, 0, -1}을 따릅니다. 센서가 원점에서 왼쪽으로 Y축을 중심으로 +30도 회전하는 경우 방향 값은 센서를 기준으로 원점의 방향을 나타내기 때문에 Y축을 중심으로 -30도 회전해야 합니다.
Windows Mixed Reality 디바이스
Windows Mixed Reality 디바이스에 연결된 센서(예: HoloLens)는 반대 규칙을 사용하여 보정을 표현하므로 위치와 방향은 디바이스의 좌표계에 있는 센서의 위치를 나타냅니다. 예를 들어 디바이스의 원점 오른쪽에 있는 센서의 위치는 디바이스를 기준으로 센서의 위치 이므로 {0.05, 0, 0}입니다. 마찬가지로 센서가 디바이스에서 Y축을 중심으로 +10도 회전하는 경우(즉, 왼쪽으로) 방향 값은 디바이스를 기준으로 센서의 방향을 나타내기 때문에 Y축에 대해 +10도의 회전이 됩니다. 또한 CalibrationId를 SpatialGraphInteropPreview.CreateLocatorForNode에 전달하여 Windows Mixed Reality 디바이스를 나타내는 SpatialLocator를 만들 수 있습니다. 이는 프레임이 캡처될 때 SpatialLocator의 위치를 쿼리하고 이를 MFCameraExtrinsic_CalibratedTransform위치 및 방향과 결합하여 지정된 프레임의 공간에서 센서 위치를 계산하는 데 사용할 수 있습니다. 프레임에 대한 디바이스 위치를 쿼리하려면 IMFSample::GetSampleTime 에서 제공한 프레임의 타임스탬프를 PerceptionTimestampHelper.FromSystemRelativeTargetTime에 전달하고 결과 PerceptionTimestamp 를 SpatialLocator.TryLocateAtTimestamp에 전달합니다.
IMFSample이 Windows Mixed Reality 디바이스에 연결된 센서에서 나왔는지 여부를 확인하려면 프레임에 연결된 다음 속성을 찾습니다. 로 설정합니다MFCameraExtrinsicsCalibrationType_SpatialGraphDynamicNode
.
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);
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows 10 [데스크톱 앱만 해당] |
지원되는 최소 서버 | Windows Server 2016 [데스크톱 앱만 해당] |
머리글 | mfapi.h |