Использование OpenVR TrackedCamera для стерео выпрямления OpenCV и сопоставления блоков - PullRequest
0 голосов
/ 06 ноября 2019

Я пытаюсь создать карту несоответствия изображений, созданных стереокамерой, установленной на гарнитуре Valve Index VR. Я использую OpenVR и OpenCV. OpenVR позволяет получить доступ к камерам с помощью интерфейса IVRTrackedCamera. Для выполнения OpenCV StereoBM левое и правое изображения должны быть исправлены.

Мой первый вопрос:
OpenVR позволяет получать кадры с помощью GetVideoStreamFrameBuffer (). Этот метод позволяет передавать EVRTrackedCameraFrameType, Distorted, Undistorted или MaximumUndistorted. Что означают разные FrameTypes? Могу ли я предположить, что кадры уже выпрямлены на общую плоскость при использовании типов нерассортированных или максимизированных кадров?

Второй вопрос:
Если кадры еще не выпрямлены на общей плоскости, как это сделать? С OpenVR я могу получить встроенные функции камеры для каждой отдельной камеры, используя GetCameraIntrinsics (), снова предоставляя EVRTrackedCameraFrameType. Я также могу получить параметры искажения для каждой отдельной камеры, используя GetArrayTrackedDeviceProperty (Prop_CameraDistortionCoefficients_Float_Array). Теперь два параметра, которые мне не хватает для StereoRectify () OpenCV:

R – Rotation matrix between the coordinate systems of the first and the second cameras.
T – Translation vector between coordinate systems of the cameras.

Возможно ли получить эти параметры из OpenVR?

...