mirror of
https://github.com/alicevision/Meshroom.git
synced 2025-08-06 02:08:25 +02:00
133 lines
No EOL
4.7 KiB
Python
133 lines
No EOL
4.7 KiB
Python
|
|
from meshroom.processGraph import desc
|
|
|
|
class StructureFromMotion(desc.CommandLineNode):
|
|
internalFolder = '{cache}/{nodeType}/{uid0}/'
|
|
commandLine = 'openMVG_main_IncrementalSfM {allParams}'
|
|
|
|
input_file = desc.FileAttribute(
|
|
label='Input File',
|
|
description='''path to a SfM_Data scene''',
|
|
value='',
|
|
shortName='i',
|
|
arg='',
|
|
uid=[0],
|
|
isOutput=False,
|
|
)
|
|
describerMethods = desc.ParamAttribute(
|
|
label='Describer Methods',
|
|
description='''(methods to use to describe an image): SIFT (default), SIFT_FLOAT to use SIFT stored as float, AKAZE: AKAZE with floating point descriptors, AKAZE_MLDB: AKAZE with binary descriptors''',
|
|
value='SIFT',
|
|
shortName='d',
|
|
arg='',
|
|
uid=[0],
|
|
isOutput=False,
|
|
)
|
|
matchdir = desc.FileAttribute(
|
|
label='Matchdir',
|
|
description='''path to the matches that corresponds to the provided SfM_Data scene''',
|
|
value='',
|
|
shortName='m',
|
|
arg='',
|
|
uid=[0],
|
|
isOutput=False,
|
|
)
|
|
featuresDir = desc.FileAttribute(
|
|
label='Features Dir',
|
|
description='''path to directory containing the extracted features (default: $matchdir)''',
|
|
value='',
|
|
shortName='F',
|
|
arg='',
|
|
uid=[0],
|
|
isOutput=False,
|
|
)
|
|
outdir = desc.FileAttribute(
|
|
label='Outdir',
|
|
description='''path where the output data will be stored''',
|
|
value='{cache}/{nodeType}/{uid0}/',
|
|
shortName='o',
|
|
arg='',
|
|
uid=[0],
|
|
isOutput=True,
|
|
)
|
|
out_sfmdata_file = desc.FileAttribute(
|
|
label='Out Sfmdata File',
|
|
description='''path of the output sfmdata file (default: $outdir/sfm_data.json)''',
|
|
value='{cache}/{nodeType}/{uid0}/sfm.json',
|
|
shortName='s',
|
|
arg='',
|
|
uid=[0],
|
|
isOutput=True,
|
|
)
|
|
inter_file_extension = desc.FileAttribute(
|
|
label='Inter File Extension',
|
|
description='''extension of the intermediate file export (default: .ply)''',
|
|
value='.ply',
|
|
shortName='e',
|
|
arg='',
|
|
uid=[0],
|
|
isOutput=False,
|
|
)
|
|
# initialPairA = desc.FileAttribute(
|
|
# label='Initial Pair A',
|
|
# description='''filename of the first image (without path)''',
|
|
# value='',
|
|
# shortName='a',
|
|
# arg='',
|
|
# uid=[0],
|
|
# isOutput=False,
|
|
# )
|
|
# initialPairB = desc.FileAttribute(
|
|
# label='Initial Pair B',
|
|
# description='''filename of the second image (without path)''',
|
|
# value='',
|
|
# shortName='b',
|
|
# arg='',
|
|
# uid=[0],
|
|
# isOutput=False,
|
|
# )
|
|
camera_model = desc.ParamAttribute(
|
|
label='Camera Model',
|
|
description='''Camera model type for view with unknown intrinsic: 1: Pinhole 2: Pinhole radial 1 3: Pinhole radial 3 (default)''',
|
|
value=3,
|
|
shortName='c',
|
|
arg='',
|
|
uid=[0],
|
|
isOutput=False,
|
|
)
|
|
refineIntrinsics = desc.ParamAttribute(
|
|
label='Refine Intrinsics',
|
|
description='''0-> intrinsic parameters are kept as constant 1-> refine intrinsic parameters (default).''',
|
|
value=1,
|
|
shortName='f',
|
|
arg='',
|
|
uid=[0],
|
|
isOutput=False,
|
|
)
|
|
minInputTrackLength = desc.ParamAttribute(
|
|
label='Min Input Track Length',
|
|
description='''minimum track length in input of SfM (default: 2)''',
|
|
value=2,
|
|
shortName='t',
|
|
arg='N',
|
|
uid=[0],
|
|
isOutput=False,
|
|
)
|
|
# matchFilePerImage = desc.FileAttribute(
|
|
# label='Match File Per Image',
|
|
# description='''To use one match file per image instead of a global file.''',
|
|
# value=1,
|
|
# shortName='p',
|
|
# arg='',
|
|
# uid=[0],
|
|
# isOutput=False,
|
|
# )
|
|
allowUserInteraction = desc.ParamAttribute(
|
|
label='Allow User Interaction',
|
|
description='''Enable/Disable user interactions. (default: true) If the process is done on renderfarm, it doesn't make sense to wait for user inputs. Unrecognized option --help''',
|
|
value=0,
|
|
shortName='u',
|
|
arg='',
|
|
uid=[0],
|
|
isOutput=False,
|
|
) |