test124
This commit is contained in:
1 parent
4d8127ac35
commit
4652e3c65c
8 files changed
+1106
No files matched your search
@@ -0,0 +1,77 @@
|
||||
#!/usr/bin/python3
|
||||
# -*- encoding: utf-8 -*-
|
||||
"""
|
||||
This script is for comparing the poses stored in an OpenMVS project to the poses optimized by OpenMVG
|
||||
|
||||
usage: run 'MvgOptimizeSfM.py' in a sub-folder to the OpenMVS project folder containing
|
||||
'scene.mvs' and images stored in 'images' folder; structure ex:
|
||||
|
||||
-OpenMVS_project
|
||||
-images
|
||||
-scene.mvs
|
||||
-mvg
|
||||
-run script here
|
||||
"""
|
||||
|
||||
import os
|
||||
import sys
|
||||
import subprocess
|
||||
|
||||
if sys.platform.startswith('win'):
|
||||
PATH_DELIM = ';'
|
||||
else:
|
||||
PATH_DELIM = ':'
|
||||
|
||||
# add this script's directory to PATH
|
||||
os.environ['PATH'] += PATH_DELIM + os.path.dirname(os.path.abspath(__file__))
|
||||
|
||||
# add current directory to PATH
|
||||
os.environ['PATH'] += PATH_DELIM + os.getcwd()
|
||||
|
||||
|
||||
def whereis(afile):
|
||||
"""
|
||||
return directory in which afile is, None if not found. Look in PATH
|
||||
"""
|
||||
if sys.platform.startswith('win'):
|
||||
cmd = "where"
|
||||
else:
|
||||
cmd = "which"
|
||||
try:
|
||||
ret = subprocess.run([cmd, afile], stdout=subprocess.PIPE, stderr=subprocess.STDOUT, check=True)
|
||||
return os.path.split(ret.stdout.decode())[0]
|
||||
except subprocess.CalledProcessError:
|
||||
return None
|
||||
|
||||
|
||||
def launch(cmdline):
|
||||
# Launch the current step
|
||||
print('Cmd: ' + ' '.join(cmdline))
|
||||
try:
|
||||
pStep = subprocess.Popen(cmdline)
|
||||
pStep.wait()
|
||||
if pStep.returncode != 0:
|
||||
return
|
||||
except KeyboardInterrupt:
|
||||
sys.exit('\r\nProcess canceled by user, all files remains')
|
||||
|
||||
|
||||
# Try to find openMVG and openMVS binaries in PATH
|
||||
OPENMVG_BIN = whereis("openMVG_main_SfMInit_ImageListing")
|
||||
OPENMVS_BIN = whereis("ReconstructMesh")
|
||||
|
||||
# Ask user for openMVG and openMVS directories if not found
|
||||
if not OPENMVG_BIN:
|
||||
OPENMVG_BIN = input("openMVG binary folder?\n")
|
||||
if not OPENMVS_BIN:
|
||||
OPENMVS_BIN = input("openMVS binary folder?\n")
|
||||
|
||||
launch([os.path.join(OPENMVS_BIN, 'InterfaceCOLMAP'), '../scene.mvs', '-o', '../gt_dense_cameras.camera'])
|
||||
launch([os.path.join(OPENMVG_BIN, 'openMVG_main_SfMInit_ImageListingFromKnownPoses'), '-i', '../images', '-g', '../gt_dense_cameras', '-t', '1', '-o', '.'])
|
||||
launch([os.path.join(OPENMVG_BIN, 'openMVG_main_ComputeFeatures'), '-i', 'sfm_data.json', '-o', '.'])
|
||||
launch([os.path.join(OPENMVG_BIN, 'openMVG_main_ComputeMatches'), '-i', 'sfm_data.json', '-o', '.', '-m', '1'])
|
||||
launch([os.path.join(OPENMVG_BIN, 'openMVG_main_ComputeStructureFromKnownPoses'), '-i', 'sfm_data.json', '-m', '.', '-o', 'sfm_data_struct.bin', '-b'])
|
||||
launch([os.path.join(OPENMVG_BIN, 'openMVG_main_ComputeSfM_DataColor'), '-i', 'sfm_data_struct.bin', '-o', 'scene.ply'])
|
||||
launch([os.path.join(OPENMVG_BIN, 'openMVG_main_openMVG2openMVS'), '-i', 'sfm_data_struct.bin', '-o', 'scene.mvs', '-d', 'images'])
|
||||
launch([os.path.join(OPENMVS_BIN, 'InterfaceCOLMAP'), 'scene.mvs', '-o', 'cameras.camera'])
|
||||
launch([os.path.join(OPENMVG_BIN, 'openMVG_main_evalQuality'), '-i', '..', '-c', 'sfm_data_struct.bin', '-o', 'compare'])
|
||||
Reference in new issue
Block a user