Spaces:
Configuration error
Configuration error
| import pickle | |
| import os | |
| import numpy as np | |
| def read_pickle(pkl_path): | |
| with open(pkl_path, 'rb') as f: | |
| return pickle.load(f) | |
| def save_pickle(data, pkl_path): | |
| os.system('mkdir -p {}'.format(os.path.dirname(pkl_path))) | |
| with open(pkl_path, 'wb') as f: | |
| pickle.dump(data, f) | |
| def project(xyz, K, RT): | |
| """ | |
| xyz: [N, 3] | |
| K: [3, 3] | |
| RT: [3, 4] | |
| """ | |
| xyz = np.dot(xyz, RT[:, :3].T) + RT[:, 3:].T | |
| xyz = np.dot(xyz, K.T) | |
| xy = xyz[:, :2] / xyz[:, 2:] | |
| return xy | |
| def write_K_pose_inf(K, poses, img_root): | |
| K = K.copy() | |
| K[:2] = K[:2] * 8 | |
| K_inf = os.path.join(img_root, 'Intrinsic.inf') | |
| os.system('mkdir -p {}'.format(os.path.dirname(K_inf))) | |
| with open(K_inf, 'w') as f: | |
| for i in range(len(poses)): | |
| f.write('%d\n'%i) | |
| f.write('%f %f %f\n %f %f %f\n %f %f %f\n' % tuple(K.reshape(9).tolist())) | |
| f.write('\n') | |
| pose_inf = os.path.join(img_root, 'CamPose.inf') | |
| with open(pose_inf, 'w') as f: | |
| for pose in poses: | |
| pose = np.linalg.inv(pose) | |
| A = pose[0:3,:] | |
| tmp = np.concatenate([A[0:3,2].T, A[0:3,0].T,A[0:3,1].T,A[0:3,3].T]) | |
| f.write('%f %f %f %f %f %f %f %f %f %f %f %f\n' % tuple(tmp.tolist())) | |