initialize and parse the command line parameters
| 85 | |
| 86 | // initialize and parse the command line parameters |
| 87 | bool Application::Initialize(size_t argc, LPCTSTR* argv) |
| 88 | { |
| 89 | // initialize log and console |
| 90 | OPEN_LOG(); |
| 91 | OPEN_LOGCONSOLE(); |
| 92 | |
| 93 | // group of options allowed only on command line |
| 94 | boost::program_options::options_description generic("Generic options"); |
| 95 | generic.add_options() |
| 96 | ("help,h", "produce this help message") |
| 97 | ("working-folder,w", boost::program_options::value<std::string>(&WORKING_FOLDER), "working directory (default current directory)") |
| 98 | ("config-file,c", boost::program_options::value<std::string>(&OPT::strConfigFileName)->default_value(APPNAME _T(".cfg")), "file name containing program options") |
| 99 | ("export-type", boost::program_options::value<std::string>(&OPT::strExportType)->default_value(_T("ply")), "file type used to export the 3D scene (ply, obj, glb or gltf)") |
| 100 | ("archive-type", boost::program_options::value(&OPT::nArchiveType)->default_value(ARCHIVE_MVS), "project archive type: -1-interface, 0-text, 1-binary, 2-compressed binary") |
| 101 | ("process-priority", boost::program_options::value(&OPT::nProcessPriority)->default_value(-1), "process priority (below normal by default)") |
| 102 | ("max-threads", boost::program_options::value(&OPT::nMaxThreads)->default_value(0), "maximum number of threads (0 for using all available cores)") |
| 103 | #if TD_VERBOSE != TD_VERBOSE_OFF |
| 104 | ("verbosity,v", boost::program_options::value(&g_nVerbosityLevel)->default_value( |
| 105 | #if TD_VERBOSE == TD_VERBOSE_DEBUG |
| 106 | 3 |
| 107 | #else |
| 108 | 2 |
| 109 | #endif |
| 110 | ), "verbosity level") |
| 111 | #endif |
| 112 | #ifdef _USE_CUDA |
| 113 | ("cuda-device", boost::program_options::value(&SEACAVE::CUDA::desiredDeviceID)->default_value(-1), "CUDA device number to be used to texture the mesh (-2 - CPU processing, -1 - best GPU, >=0 - device index)") |
| 114 | #endif |
| 115 | ; |
| 116 | |
| 117 | // group of options allowed both on command line and in config file |
| 118 | boost::program_options::options_description config("Texture options"); |
| 119 | config.add_options() |
| 120 | ("input-file,i", boost::program_options::value<std::string>(&OPT::strInputFileName), "input filename containing camera poses and image list") |
| 121 | ("mesh-file,m", boost::program_options::value<std::string>(&OPT::strMeshFileName), "mesh file name to texture (overwrite existing mesh)") |
| 122 | ("output-file,o", boost::program_options::value<std::string>(&OPT::strOutputFileName), "output filename for storing the mesh") |
| 123 | ("decimate", boost::program_options::value(&OPT::fDecimateMesh)->default_value(1.f), "decimation factor in range [0..1] to be applied to the input surface before refinement (0 - auto, 1 - disabled)") |
| 124 | ("close-holes", boost::program_options::value(&OPT::nCloseHoles)->default_value(30), "try to close small holes in the input surface (0 - disabled)") |
| 125 | ("resolution-level", boost::program_options::value(&OPT::nResolutionLevel)->default_value(0), "how many times to scale down the images before mesh refinement") |
| 126 | ("min-resolution", boost::program_options::value(&OPT::nMinResolution)->default_value(640), "do not scale images lower than this resolution") |
| 127 | ("outlier-threshold", boost::program_options::value(&OPT::fOutlierThreshold)->default_value(6e-2f), "threshold used to find and remove outlier face textures (0 - disabled)") |
| 128 | ("cost-smoothness-ratio", boost::program_options::value(&OPT::fRatioDataSmoothness)->default_value(0.1f), "ratio used to adjust the preference for more compact patches (1 - best quality/worst compactness, ~0 - worst quality/best compactness)") |
| 129 | ("virtual-face-images", boost::program_options::value(&OPT::minCommonCameras)->default_value(0), "generate texture patches using virtual faces composed of coplanar triangles sharing at least this number of views (0 - disabled, 3 - good value)") |
| 130 | ("global-seam-leveling", boost::program_options::value(&OPT::bGlobalSeamLeveling)->default_value(true), "generate uniform texture patches using global seam leveling") |
| 131 | ("local-seam-leveling", boost::program_options::value(&OPT::bLocalSeamLeveling)->default_value(true), "generate uniform texture patch borders using local seam leveling") |
| 132 | ("texture-size-multiple", boost::program_options::value(&OPT::nTextureSizeMultiple)->default_value(0), "texture size should be a multiple of this value (0 - power of two)") |
| 133 | ("patch-packing-heuristic", boost::program_options::value(&OPT::nRectPackingHeuristic)->default_value(3), "specify the heuristic used when deciding where to place a new patch (0 - best fit, 3 - good speed, 100 - best speed)") |
| 134 | ("empty-color", boost::program_options::value(&OPT::nColEmpty)->default_value(0x00FF7F27), "color used for faces not covered by any image") |
| 135 | ("sharpness-weight", boost::program_options::value(&OPT::fSharpnessWeight)->default_value(0.5f), "amount of sharpness to be applied on the texture (0 - disabled)") |
| 136 | ("orthographic-image-resolution", boost::program_options::value(&OPT::nOrthoMapResolution)->default_value(0), "orthographic image resolution to be generated from the textured mesh - the mesh is expected to be already geo-referenced or at least properly oriented (0 - disabled)") |
| 137 | ("ignore-mask-label", boost::program_options::value(&OPT::nIgnoreMaskLabel)->default_value(-1), "label value to ignore in the image mask, stored in the MVS scene or next to each image with '.mask.png' extension (-1 - auto estimate mask for lens distortion, -2 - disabled)") |
| 138 | ("max-texture-size", boost::program_options::value(&OPT::nMaxTextureSize)->default_value(8192), "maximum texture size, split it in multiple textures of this size if needed (0 - unbounded)") |
| 139 | ; |
| 140 | |
| 141 | // hidden options, allowed both on command line and |
| 142 | // in config file, but will not be shown to the user |
| 143 | boost::program_options::options_description hidden("Hidden options"); |
| 144 | hidden.add_options() |
no test coverage detected