ACloudViewer  3.9.4
A Modern Library for 3D Data Processing
mvs.cpp
Go to the documentation of this file.
1 // ----------------------------------------------------------------------------
2 // - CloudViewer: www.cloudViewer.org -
3 // ----------------------------------------------------------------------------
4 // Copyright (c) 2018-2024 www.cloudViewer.org
5 // SPDX-License-Identifier: MIT
6 // ----------------------------------------------------------------------------
7 
8 #include "exe/mvs.h"
9 
10 #include "pipelines/mvs.h"
11 #include "pipelines/option_utils.h"
12 
13 namespace cloudViewer {
14 
16  const std::string& input_path,
17  const std::string& output_path,
18  const std::string& input_type /*= "dense"*/,
19  const colmap::mvs::DelaunayMeshingOptions& delaunay_meshing_options) {
20  OptionsParser parser;
21  // Path to either the dense workspace folder or the sparse reconstruction
22  parser.registerOption("input_path", &input_path);
23  parser.registerOption("output_path", &output_path);
24  // supported {dense, sparse}
25  parser.registerOption("input_type", &input_type);
26  parser.addDelaunayMeshingOptions(delaunay_meshing_options);
27  if (!parser.parseOptions()) return EXIT_FAILURE;
28 
29  return colmap::RunDelaunayMesher(parser.getArgc(), parser.getArgv());
30 }
31 
33  const std::string& workspace_path,
34  const std::string& config_path /*= ""*/,
35  const std::string& workspace_format /*= "COLMAP"*/,
36  const std::string& pmvs_option_name /*= "option-all"*/,
37  const colmap::mvs::PatchMatchOptions& patch_match_options) {
38  OptionsParser parser;
39  // Path to the folder containing the undistorted images
40  parser.registerOption("workspace_path", &workspace_path);
41  parser.registerOption("config_path", &config_path);
42  // supported {COLMAP, PMVS}
43  parser.registerOption("workspace_format", &workspace_format);
44  parser.registerOption("pmvs_option_name", &pmvs_option_name);
45  parser.addPatchMatchStereoOptions(patch_match_options);
46  if (!parser.parseOptions()) return EXIT_FAILURE;
47 
48  return colmap::RunPatchMatchStereo(parser.getArgc(), parser.getArgv());
49 }
50 
52  const std::string& input_path,
53  const std::string& output_path,
54  const colmap::mvs::PoissonMeshingOptions& poisson_meshing_options) {
55  OptionsParser parser;
56  parser.registerOption("input_path", &input_path);
57  parser.registerOption("output_path", &output_path);
58  parser.addPoissonMeshingOptions(poisson_meshing_options);
59  if (!parser.parseOptions()) return EXIT_FAILURE;
60 
61  return colmap::RunPoissonMesher(parser.getArgc(), parser.getArgv());
62 }
63 
64 int StereoFuse(const std::string& workspace_path,
65  const std::string& output_path,
66  const std::string& bbox_path /*= ""*/,
67  const std::string& stereo_input_type /*= "geometric"*/,
68  const std::string& output_type /*= "PLY"*/,
69  const std::string& workspace_format /*= "COLMAP"*/,
70  const std::string& pmvs_option_name /*= "option-all"*/,
71  const colmap::mvs::StereoFusionOptions& stereo_fusion_options) {
72  OptionsParser parser;
73  // Path to the folder containing the undistorted images
74  parser.registerOption("workspace_path", &workspace_path);
75  parser.registerOption("bbox_path", &bbox_path);
76  parser.registerOption("output_path", &output_path);
77  // supported {photometric, geometric}
78  parser.registerOption("input_type", &stereo_input_type);
79  // supported {BIN, TXT, PLY}
80  parser.registerOption("output_type", &output_type);
81  // supported {COLMAP, PMVS}
82  parser.registerOption("workspace_format", &workspace_format);
83  parser.registerOption("pmvs_option_name", &pmvs_option_name);
84  parser.addStereoFusionOptions(stereo_fusion_options);
85  if (!parser.parseOptions()) return EXIT_FAILURE;
86 
87  return colmap::RunStereoFuser(parser.getArgc(), parser.getArgv());
88 }
89 
90 } // namespace cloudViewer
void addDelaunayMeshingOptions(const colmap::mvs::DelaunayMeshingOptions &delaunay_meshing_options)
void addStereoFusionOptions(const colmap::mvs::StereoFusionOptions &stereo_fusion_options)
void addPoissonMeshingOptions(const colmap::mvs::PoissonMeshingOptions &poisson_meshing_options)
void registerOption(const std::string &name, const T *option)
Definition: option_utils.h:43
void addPatchMatchStereoOptions(const colmap::mvs::PatchMatchOptions &patch_match_options)
Generic file read and write utility for python interface.
int StereoPatchMatch(const std::string &workspace_path, const std::string &config_path, const std::string &workspace_format, const std::string &pmvs_option_name, const colmap::mvs::PatchMatchOptions &patch_match_options)
Definition: mvs.cpp:32
int StereoFuse(const std::string &workspace_path, const std::string &output_path, const std::string &bbox_path, const std::string &stereo_input_type, const std::string &output_type, const std::string &workspace_format, const std::string &pmvs_option_name, const colmap::mvs::StereoFusionOptions &stereo_fusion_options)
Definition: mvs.cpp:64
int MeshDelaunay(const std::string &input_path, const std::string &output_path, const std::string &input_type, const colmap::mvs::DelaunayMeshingOptions &delaunay_meshing_options)
Definition: mvs.cpp:15
int MeshPoisson(const std::string &input_path, const std::string &output_path, const colmap::mvs::PoissonMeshingOptions &poisson_meshing_options)
Definition: mvs.cpp:51
int RunPoissonMesher(int argc, char **argv)
Definition: mvs.cc:123
int RunPatchMatchStereo(int argc, char **argv)
Definition: mvs.cc:81
int RunStereoFuser(int argc, char **argv)
Definition: mvs.cc:138
int RunDelaunayMesher(int argc, char **argv)
Definition: mvs.cc:43