4
0
mirror of https://github.com/nerfstudio-project/nerfstudio.git synced 2026-11-11 02:24:38 +08:00
This commit is contained in:
Afloat 2026-11-06 19:14:29 +00:00 committed by GitHub
commit bc1a6924bd
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 25 additions and 2 deletions

View File

@ -300,8 +300,7 @@ def write_images_binary(images, path_to_model_file):
write_next_bytes(fid, img.qvec.tolist(), "dddd")
write_next_bytes(fid, img.tvec.tolist(), "ddd")
write_next_bytes(fid, img.camera_id, "i")
for char in img.name:
write_next_bytes(fid, char.encode("utf-8"), "c")
fid.write(img.name.encode("utf-8"))
write_next_bytes(fid, b"\x00", "c")
write_next_bytes(fid, len(img.point3D_ids), "Q")
for xy, p3d_id in zip(img.xys, img.point3D_ids):

View File

@ -0,0 +1,24 @@
from pathlib import Path
import numpy as np
from nerfstudio.data.utils.colmap_parsing_utils import Image, read_images_binary, write_images_binary
def test_multibyte_image_name_roundtrip(tmp_path: Path):
image = Image(
id=7,
qvec=np.array([1, 0, 0, 0]),
tvec=np.zeros(3),
camera_id=3,
name="室内/café.png",
xys=np.array([[2.5, 1.0]]),
point3D_ids=np.array([17]),
)
path = tmp_path / "images.bin"
write_images_binary({image.id: image}, path)
restored = read_images_binary(path)[image.id]
assert restored.name == image.name
np.testing.assert_array_equal(restored.xys, image.xys)
np.testing.assert_array_equal(restored.point3D_ids, image.point3D_ids)