diff --git a/stages/mvstex.py b/stages/mvstex.py index f8a6b81e..19b4fd9d 100644 --- a/stages/mvstex.py +++ b/stages/mvstex.py @@ -27,6 +27,14 @@ class ODMMvsTexStage(types.ODM_Stage): subdir = "" if not primary and band is not None: subdir = band + + skip_global_seam_leveling = args.texturing_skip_global_seam_leveling + if not skip_global_seam_leveling and args.radiometric_calibration != "none": + # If radiometric calibration is turned on, we need + # to skip global seam leveling, otherwise we tamper the measured values + # - unless - this is an RGB band, in which case we probably couldn't calibrate it + # (A user can pass --texturing-skip-global-seam-leveling to force a skip) + skip_global_seam_leveling = band is None or band not in ["rgb", "redgreenblue"] if not args.skip_3dmodel and (primary or args.use_3dmesh): nonloc.runs += [{ @@ -35,7 +43,8 @@ class ODMMvsTexStage(types.ODM_Stage): 'nadir': False, 'primary': primary, 'nvm_file': nvm_file, - 'labeling_file': os.path.join(tree.odm_texturing, "odm_textured_model_geo_labeling.vec") if subdir else None + 'labeling_file': os.path.join(tree.odm_texturing, "odm_textured_model_geo_labeling.vec") if subdir else None, + 'skip_global_seam_leveling': skip_global_seam_leveling }] if not args.use_3dmesh: @@ -45,7 +54,8 @@ class ODMMvsTexStage(types.ODM_Stage): 'nadir': True, 'primary': primary, 'nvm_file': nvm_file, - 'labeling_file': os.path.join(tree.odm_25dtexturing, "odm_textured_model_geo_labeling.vec") if subdir else None + 'labeling_file': os.path.join(tree.odm_25dtexturing, "odm_textured_model_geo_labeling.vec") if subdir else None, + 'skip_global_seam_leveling': skip_global_seam_leveling }] if reconstruction.multi_camera: @@ -79,7 +89,7 @@ class ODMMvsTexStage(types.ODM_Stage): keepUnseenFaces = "" nadir = "" - if args.texturing_skip_global_seam_leveling: + if r['skip_global_seam_leveling']: skipGlobalSeamLeveling = "--skip_global_seam_leveling" if args.texturing_skip_local_seam_leveling: skipLocalSeamLeveling = "--skip_local_seam_leveling"