mirror of
https://github.com/nerfstudio-project/nerfstudio.git
synced 2026-11-12 02:45:34 +08:00
fix(process_data): handle numpy array in write_points3D_binary error field
`read_points3D_binary` stores `error` as a numpy array, but
`write_points3D_binary` passed it directly to `struct.pack("<d", ...)`,
which fails on numpy 2.x because 1-d arrays are no longer auto-coerced
to Python scalars. Wrap `pt.error.item()` in `float()` for robust
extraction—this matches the existing convention in
`write_cameras_binary` (line 184: `float(p)`).
Fixes a pre-existing test failure on CI where
`test_process_images_skip_colmap` and
`test_process_images_recursively_skip_colmap` crashed with
`struct.error: required argument is not a float`.
This commit is contained in:
1 parent
8709e2d857
commit
98e6b30e29
1 file changed
+1
-1
@@ -399,7 +399,7 @@ def write_points3D_binary(points3D, path_to_model_file):
|
||||
write_next_bytes(fid, pt.id, "Q")
|
||||
write_next_bytes(fid, pt.xyz.tolist(), "ddd")
|
||||
write_next_bytes(fid, pt.rgb.tolist(), "BBB")
|
||||
write_next_bytes(fid, pt.error, "d")
|
||||
write_next_bytes(fid, float(pt.error.item()), "d")
|
||||
track_length = pt.image_ids.shape[0]
|
||||
write_next_bytes(fid, track_length, "Q")
|
||||
for image_id, point2D_id in zip(pt.image_ids, pt.point2D_idxs):
|
||||
|
||||
Reference in new issue
Block a user