mirror of
https://github.com/nerfstudio-project/nerfstudio.git
synced 2026-11-10 18:17:31 +08:00
Keep spaces in a COLMAP image name
read_images_text kept only the first word, so "my photo.jpg" came back as "my".
This commit is contained in:
parent
50e0e3c70c
commit
2f91cb7ad9
@ -204,7 +204,10 @@ def read_images_text(path):
|
||||
qvec = np.array(tuple(map(float, elems[1:5])))
|
||||
tvec = np.array(tuple(map(float, elems[5:8])))
|
||||
camera_id = int(elems[8])
|
||||
image_name = elems[9]
|
||||
# COLMAP writes the image name as the rest of the line, so a space stays in the name.
|
||||
if len(elems) < 10:
|
||||
raise IndexError("COLMAP image line is missing the name")
|
||||
image_name = " ".join(elems[9:])
|
||||
elems = fid.readline().split()
|
||||
xys = np.column_stack([tuple(map(float, elems[0::3])), tuple(map(float, elems[1::3]))])
|
||||
point3D_ids = np.array(tuple(map(int, elems[2::3])))
|
||||
|
||||
29
tests/data/test_colmap_image_name.py
Normal file
29
tests/data/test_colmap_image_name.py
Normal file
@ -0,0 +1,29 @@
|
||||
"""COLMAP images.txt names can contain spaces."""
|
||||
|
||||
from pathlib import Path
|
||||
|
||||
from nerfstudio.data.utils.colmap_parsing_utils import read_images_text
|
||||
|
||||
|
||||
def test_image_name_keeps_spaces(tmp_path: Path):
|
||||
images_txt = tmp_path / "images.txt"
|
||||
images_txt.write_text(
|
||||
"\n".join(
|
||||
[
|
||||
"# Image list with two lines of data per image:",
|
||||
"1 1.0 0.0 0.0 0.0 0.0 0.0 0.0 1 my photo.jpg",
|
||||
"1.5 2.5 7",
|
||||
"2 1.0 0.0 0.0 0.0 0.0 0.0 0.0 1 plain.jpg",
|
||||
"0.0 0.0 -1",
|
||||
"",
|
||||
]
|
||||
)
|
||||
)
|
||||
|
||||
images = read_images_text(images_txt)
|
||||
|
||||
assert images[1].name == "my photo.jpg"
|
||||
assert images[1].point3D_ids.tolist() == [7]
|
||||
assert images[1].xys.tolist() == [[1.5, 2.5]]
|
||||
assert images[2].name == "plain.jpg"
|
||||
assert images[2].point3D_ids.tolist() == [-1]
|
||||
Loading…
Reference in New Issue
Block a user