diff --git a/opendm/config.py b/opendm/config.py index edb66b952..966a4f2e6 100755 --- a/opendm/config.py +++ b/opendm/config.py @@ -389,6 +389,13 @@ def config(argv=None, parser=None): help='Filters the point cloud by keeping only a single point around a radius N (in meters). This can be useful to limit the output resolution of the point cloud and remove duplicate points. Set to 0 to disable sampling. ' 'Default: %(default)s') + parser.add_argument('--pc-skip-geometric', + action=StoreTrue, + nargs=0, + default=False, + help='Geometric estimates improve the accuracy of the point cloud by computing geometrically consistent depthmaps but may not be usable in larger datasets. This flag disables geometric estimates. ' + 'Default: %(default)s') + parser.add_argument('--pc-tile', action=StoreTrue, nargs=0, diff --git a/stages/openmvs.py b/stages/openmvs.py index df37f6a01..eec1bba4a 100644 --- a/stages/openmvs.py +++ b/stages/openmvs.py @@ -86,7 +86,10 @@ def process(self, args, outputs): config.append("--fusion-mode 1") extra_config = [] - + + if args.pc_skip_geometric: + extra_config.append("--geometric-iters 0") + masks_dir = os.path.join(tree.opensfm, "undistorted", "masks") masks = os.path.exists(masks_dir) and len(os.listdir(masks_dir)) > 0 if masks: