def create_config_from_template(config_template_ifp, config_fp):
    config_template_ifp = os.path.abspath(config_template_ifp)
    config_fp = os.path.abspath(config_fp)

    if not os.path.isfile(config_fp):
        copyfile(config_template_ifp, config_fp)
    return SSRConfig(config_fp=config_fp)
 def __init__(self, pm):
     self.pm = pm
     self.ssr_config = SSRConfig.get_instance()
     colmap_vissat_exe_fp = self.ssr_config.get_option_value(
         "colmap_vissat_exe_fp", str
     )
     self.colmap_vissat_exe_fp = colmap_vissat_exe_fp
     assert os.path.isfile(colmap_vissat_exe_fp)
     self.colmap_vissat_exe_dp = os.path.dirname(colmap_vissat_exe_fp)
Example #3
0
    def __init__(self, pm, bm):
        # path manager
        self.pm = pm
        # backend manager
        self.bm = bm
        # task manager
        self.tm = TaskManager(pm, bm)

        self.ssr_config = SSRConfig.get_instance()
Example #4
0
 def __init__(self):
     ssr_config = SSRConfig.get_instance()
     self.executable_fp = ssr_config.get_option_value(
         "meshlab_server_fp", str)
     self.meshlab_temp_dp = ssr_config.get_option_value_or_None(
         "meshlab_temp_dp", str)
     if self.meshlab_temp_dp is not None:
         if not os.path.isdir(self.meshlab_temp_dp):
             logger.vinfo("meshlab_temp_dp", self.meshlab_temp_dp)
             assert False, "Choose a valid path (in the config file) for Meshlab's temp directory"
Example #5
0
 def __init__(self):
     self.ssr_config = SSRConfig.get_instance()
     self.texrecon_apps_dp = self.ssr_config.get_option_value(
         "texrecon_apps_dp", str)
     assert self.texrecon_apps_dp is not None
     if platform.system() == "Windows":
         self.texrecon_executable = os.path.join(self.texrecon_apps_dp,
                                                 "texrecon.exe")
     else:
         self.texrecon_executable = os.path.join(self.texrecon_apps_dp,
                                                 "texrecon", "texrecon")
Example #6
0
    def __init__(self):

        self.NAME_OCTREE_FILE = "octree"

        self.ssr_config = SSRConfig.get_instance()
        self.gdmr_bin_dp = self.ssr_config.get_option_value("gdmr_bin_dp", str)
        self.octree_executable_fp = os.path.join(self.gdmr_bin_dp,
                                                 "pointfusion_octree")
        assert os.path.isfile(self.octree_executable_fp)

        self.surface_executable_fp = os.path.join(self.gdmr_bin_dp,
                                                  "pointfusion_surface")
        assert os.path.isfile(self.surface_executable_fp)
 def __init__(self):
     self.ssr_config = SSRConfig.get_instance()
     self.openmvs_bin_dp = self.ssr_config.get_option_value(
         "openmvs_bin_dp", str)
     self.interface_visualsfm_fp = os.path.join(self.openmvs_bin_dp,
                                                "InterfaceVisualSFM")
     self.interface_colmap_fp = os.path.join(self.openmvs_bin_dp,
                                             "InterfaceCOLMAP")
     self.densify_point_cloud_fp = os.path.join(
         self.openmvs_bin_dp,
         "DensifyPointCloud",
     )
     self.reconstruct_mesh_fp = os.path.join(self.openmvs_bin_dp,
                                             "ReconstructMesh")
     self.refine_mesh_fp = os.path.join(self.openmvs_bin_dp, "RefineMesh")
     self.texture_mesh_fp = os.path.join(self.openmvs_bin_dp, "TextureMesh")
Example #8
0
    def __init__(self, workspace_dp=None):
        self.ssr_config = SSRConfig.get_instance()
        self.mve_apps_dp = self.ssr_config.get_option_value("mve_apps_dp", str)
        self.workspace_folder = workspace_dp

        if platform.system() == "windows":
            self.make_scene_fp = os.path.join(self.mve_apps_dp, "makescene")
            self.sfm_recon_fp = os.path.join(self.mve_apps_dp, "sfmrecon")
            self.dm_recon_fp = os.path.join(self.mve_apps_dp, "dmrecon")
            self.scene2pset_fp = os.path.join(self.mve_apps_dp, "scene2pset")
            self.fssrecon_fp = os.path.join(self.mve_apps_dp, "fssrecon")
            self.meshclean_fp = os.path.join(self.mve_apps_dp, "meshclean")

        else:  # assume linux
            self.make_scene_fp = os.path.join(
                self.mve_apps_dp, "makescene", "makescene"
            )
            self.sfm_recon_fp = os.path.join(
                self.mve_apps_dp, "sfmrecon", "sfmrecon"
            )
            self.dm_recon_fp = os.path.join(
                self.mve_apps_dp, "dmrecon", "dmrecon"
            )
            self.scene2pset_fp = os.path.join(
                self.mve_apps_dp, "scene2pset", "scene2pset"
            )
            self.fssrecon_fp = os.path.join(
                self.mve_apps_dp, "fssrecon", "fssrecon"
            )
            self.meshclean_fp = os.path.join(
                self.mve_apps_dp, "meshclean", "meshclean"
            )

        assert os.path.isfile(self.make_scene_fp)
        assert os.path.isfile(self.dm_recon_fp)
        assert os.path.isfile(self.scene2pset_fp)
        assert os.path.isfile(self.fssrecon_fp)
        assert os.path.isfile(self.meshclean_fp)
Example #9
0
 def __init__(self, pm):
     self.pm = pm
     self.ssr_config = SSRConfig.get_instance()
 def __init__(self):
     self.ssr_config = SSRConfig.get_instance()
     self.colmap_exe_dp = self.ssr_config.get_option_value(
         "colmap_exe_dp", str)
def create_backend_manager(ssr_config):
    bm = BackendManager()
    bm.set_meshing_backends(
        ssr_config.get_option_value("meshing_backends", list))
    bm.set_texturing_backends(
        ssr_config.get_option_value("texturing_backends", list))
    return bm


if __name__ == "__main__":

    ssr_config_template_ifp = "./configs/pipeline_template.cfg"
    ssr_config_fp = "./configs/pipeline.cfg"
    ssr_config = create_config_from_template(ssr_config_template_ifp,
                                             ssr_config_fp)
    SSRConfig.set_instance(ssr_config)

    pm = create_path_manager(ssr_config)
    bm = create_backend_manager(ssr_config)

    # =====
    # Gather options from the config file
    # =====
    lazy = ssr_config.get_option_value("lazy", bool)
    # === SfM / MVS Options ===
    reconstruct_sfm_mvs = ssr_config.get_option_value("reconstruct_sfm_mvs",
                                                      bool)
    # === Preparation Options ===
    extract_pan = ssr_config.get_option_value("extract_pan", bool)
    extract_msi = ssr_config.get_option_value("extract_msi", bool)
    pan_sharpening = ssr_config.get_option_value("pan_sharpening", bool)