ameerazam08's picture
Upload folder using huggingface_hub
e34aada verified
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