Source code for xrprimer.transform.convention.camera

from xrprimer.data_structure.camera.camera import BaseCameraParameter
from .from_opencv import convert_camera_from_opencv
from .intrinsic import downgrade_k_4x4, upgrade_k_3x3
from .to_opencv import convert_camera_to_opencv

__all__ = ['upgrade_k_3x3', 'downgrade_k_4x4', 'convert_camera_parameter']


[docs]def convert_camera_parameter( cam_param: BaseCameraParameter, dst: str, ) -> BaseCameraParameter: """Convert a camera parameter instance into opencv convention. Args: cam_param (BaseCameraParameter): The input camera parameter, which is an instance of BaseCameraParameter subclass. dst (str): The name of destination convention. Returns: BaseCameraParameter: A camera in the same type as input, whose direction is same as cam_param, and convention equals to dst. """ if cam_param.convention == dst: return cam_param else: opencv_cam = convert_camera_to_opencv(cam_param) dst_cam = convert_camera_from_opencv(opencv_cam, dst) if dst_cam.world2cam != cam_param.world2cam: dst_cam.inverse_extrinsic() return dst_cam