Spaces:
Build error
Build error
| import json | |
| import os | |
| import numpy as np | |
| import quaternion | |
| class CameraParameterLoader: | |
| def __init__(self): | |
| print('initialize camera parameter lodaer') | |
| def get_intrinsic(self, path): | |
| with open(os.path.join(path, '_camera_settings.json'), 'r') as f: | |
| param_cam = json.load(f) | |
| param_intrinsic = param_cam['camera_settings'][0]['intrinsic_settings'] | |
| cx = param_intrinsic['cx'] | |
| cy = param_intrinsic['cy'] | |
| fx = param_intrinsic['fx'] | |
| fy = param_intrinsic['fy'] | |
| s = param_intrinsic['s'] | |
| mat_intrinsic = np.array([[fx, s, cx], | |
| [0, fy, cy], | |
| [0, 0, 1]]) | |
| return mat_intrinsic | |
| def get_extrinsic(self, path): | |
| with open(path, 'r') as f: | |
| param_cam = json.load(f)['camera_data'] | |
| param_translation = param_cam['location_worldframe'] | |
| param_rotation = param_cam['quaternion_xyzw_worldframe'] | |
| mat_rotation = quaternion.as_rotation_matrix( | |
| np.quaternion(param_rotation[3], param_rotation[0], param_rotation[1], param_rotation[2])) | |
| mat_translation = np.array([[param_translation[0]], [param_translation[1]], [param_translation[2]]]) | |
| mat_extrinsic = np.concatenate( | |
| [np.concatenate([mat_rotation, mat_translation], axis=1), np.array([[0, 0, 0, 1]])], axis=0) | |
| return mat_extrinsic | |