MCPcopy Create free account
hub / github.com/Atrovast/THGS / generate_path

Function generate_path

utils/render_utils.py:173–194  ·  view source on GitHub ↗
(viewpoint_cameras, n_frames=480)

Source from the content-addressed store, hash-verified

171
172
173def generate_path(viewpoint_cameras, n_frames=480):
174 c2ws = np.array([np.linalg.inv(np.asarray((cam.world_view_transform.T).cpu().numpy())) for cam in viewpoint_cameras])
175 pose = c2ws[:,:3,:] @ np.diag([1, -1, -1, 1])
176 pose_recenter, colmap_to_world_transform = transform_poses_pca(pose)
177
178 # generate new poses
179 new_poses = generate_ellipse_path(poses=pose_recenter, n_frames=n_frames)
180 # warp back to orignal scale
181 new_poses = np.linalg.inv(colmap_to_world_transform) @ pad_poses(new_poses)
182
183 traj = []
184 for c2w in new_poses:
185 c2w = c2w @ np.diag([1, -1, -1, 1])
186 cam = copy.deepcopy(viewpoint_cameras[0])
187 cam.image_height = int(cam.image_height / 2) * 2
188 cam.image_width = int(cam.image_width / 2) * 2
189 cam.world_view_transform = torch.from_numpy(np.linalg.inv(c2w).T).float().cuda()
190 cam.full_proj_transform = (cam.world_view_transform.unsqueeze(0).bmm(cam.projection_matrix.unsqueeze(0))).squeeze(0)
191 cam.camera_center = cam.world_view_transform.inverse()[3, :3]
192 traj.append(cam)
193
194 return traj
195
196def load_img(pth: str) -> np.ndarray:
197 """Load an image and cast to float32."""

Callers 1

render.pyFile · 0.90

Calls 5

transform_poses_pcaFunction · 0.85
generate_ellipse_pathFunction · 0.85
pad_posesFunction · 0.85
cpuMethod · 0.45
cudaMethod · 0.45

Tested by

no test coverage detected