MCPcopy Index your code
hub / github.com/DNA-Rendering/DNA-Rendering / readColmapSceneInfo

Function readColmapSceneInfo

scripts/3DGS/dataset_readers.py:142–187  ·  view source on GitHub ↗
(path, images, eval, llffhold=8)

Source from the content-addressed store, hash-verified

140 ply_data.write(path)
141
142def readColmapSceneInfo(path, images, eval, llffhold=8):
143 try:
144 cameras_extrinsic_file = os.path.join(path, "sparse/0", "images.bin")
145 cameras_intrinsic_file = os.path.join(path, "sparse/0", "cameras.bin")
146 cam_extrinsics = read_extrinsics_binary(cameras_extrinsic_file)
147 cam_intrinsics = read_intrinsics_binary(cameras_intrinsic_file)
148 except:
149 cameras_extrinsic_file = os.path.join(path, "sparse/0", "images.txt")
150 cameras_intrinsic_file = os.path.join(path, "sparse/0", "cameras.txt")
151 cam_extrinsics = read_extrinsics_text(cameras_extrinsic_file)
152 cam_intrinsics = read_intrinsics_text(cameras_intrinsic_file)
153
154 reading_dir = "images" if images == None else images
155 cam_infos_unsorted = readColmapCameras(cam_extrinsics=cam_extrinsics, cam_intrinsics=cam_intrinsics, images_folder=os.path.join(path, reading_dir))
156 cam_infos = sorted(cam_infos_unsorted.copy(), key = lambda x : x.image_name)
157
158 if eval:
159 train_cam_infos = [c for idx, c in enumerate(cam_infos) if idx % llffhold != 0]
160 test_cam_infos = [c for idx, c in enumerate(cam_infos) if idx % llffhold == 0]
161 else:
162 train_cam_infos = cam_infos
163 test_cam_infos = []
164
165 nerf_normalization = getNerfppNorm(train_cam_infos)
166
167 ply_path = os.path.join(path, "sparse/0/points3D.ply")
168 bin_path = os.path.join(path, "sparse/0/points3D.bin")
169 txt_path = os.path.join(path, "sparse/0/points3D.txt")
170 if not os.path.exists(ply_path):
171 print("Converting point3d.bin to .ply, will happen only the first time you open the scene.")
172 try:
173 xyz, rgb, _ = read_points3D_binary(bin_path)
174 except:
175 xyz, rgb, _ = read_points3D_text(txt_path)
176 storePly(ply_path, xyz, rgb)
177 try:
178 pcd = fetchPly(ply_path)
179 except:
180 pcd = None
181
182 scene_info = SceneInfo(point_cloud=pcd,
183 train_cameras=train_cam_infos,
184 test_cameras=test_cam_infos,
185 nerf_normalization=nerf_normalization,
186 ply_path=ply_path)
187 return scene_info
188
189def readCamerasFromTransforms(path, transformsfile, white_background, extension=".png"):
190 cam_infos = []

Callers

nothing calls this directly

Calls 5

readColmapCamerasFunction · 0.85
getNerfppNormFunction · 0.85
storePlyFunction · 0.85
fetchPlyFunction · 0.85
SceneInfoClass · 0.85

Tested by

no test coverage detected