From 90cc4f1d1e0dbae3dd358f6d8a106ce820f754bc Mon Sep 17 00:00:00 2001 From: Jisung Yoo Date: Sat, 29 Jun 2024 13:46:54 +0900 Subject: [PATCH] Fix dimension mismatch between downscaled cameras and images in colmap. (#3232) Co-authored-by: jisung.yoo --- nerfstudio/data/dataparsers/colmap_dataparser.py | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/nerfstudio/data/dataparsers/colmap_dataparser.py b/nerfstudio/data/dataparsers/colmap_dataparser.py index 91169462b..a70936180 100644 --- a/nerfstudio/data/dataparsers/colmap_dataparser.py +++ b/nerfstudio/data/dataparsers/colmap_dataparser.py @@ -478,12 +478,13 @@ class ColmapDataParser(DataParser): with status(msg="[bold yellow]Downscaling images...", spinner="growVertical"): assert downscale_factor > 1 assert isinstance(downscale_factor, int) - filepath = next(iter(paths)) - img = Image.open(filepath) - w, h = img.size - w_scaled, h_scaled = calculate_scaled_size(w, h, downscale_factor, downscale_rounding_mode) # Using %05d ffmpeg commands appears to be unreliable (skips images). for path in paths: + # Compute image-wise rescaled width/height. + img = Image.open(path) + w, h = img.size + w_scaled, h_scaled = calculate_scaled_size(w, h, downscale_factor, downscale_rounding_mode) + # Downscale images using ffmpeg. nn_flag = "" if not nearest_neighbor else ":flags=neighbor" path_out = get_fname(path) path_out.parent.mkdir(parents=True, exist_ok=True)