import numpy as np
class CameraPose:
def __init__(self, meta, mat):
self.metadata = meta
self.pose = mat
def __str__(self):
return 'Metadata : ' + ' '.join(map(str, self.metadata)) + '\n' + \
"Pose : " + "\n" + np.array_str(self.pose)
def read_trajectory(filename):
traj = []
with open(filename, 'r') as f:
metastr = f.readline()
while metastr:
metadata = list(map(int, metastr.split()))
mat = np.zeros(shape=(4, 4))
for i in range(4):
matstr = f.readline()
mat[i, :] = np.fromstring(matstr, dtype=float, sep=' \t')
traj.append(CameraPose(metadata, mat))
metastr = f.readline()
return traj
def write_to_file(f_name, i, rot_mat, translation):
file1 = open(f_name, 'a') # 'a' means append
L1 = str(i) + ' ' + str(i) + ' ' + str(i + 1) + '\n'
L2 = str(rot_mat[0, 0]) + ' ' + str(rot_mat[0, 1]) + ' ' + str(rot_mat[0, 2]) + ' ' + str(
translation[0]) + '\n'
L3 = str(rot_mat[1, 0]) + ' ' + str(rot_mat[1, 1]) + ' ' + str(rot_mat[1, 2]) + ' ' + str(
translation[1]) + '\n'
L4 = str(rot_mat[2, 0]) + ' ' + str(rot_mat[2, 1]) + ' ' + str(rot_mat[2, 2]) + ' ' + str(
translation[2]) + '\n'
L5 = "0 0 0 1\n"
file1.write(L1)
file1.write(L2)
file1.write(L3)
file1.write(L4)
file1.write(L5)
file1.close()