__version__ = "2.0" import json import os from meshroom.core import desc class PanoramaSeams(desc.AVCommandLineNode): commandLine = 'aliceVision_panoramaSeams {allParams}' size = desc.DynamicNodeSize('input') cpu = desc.Level.INTENSIVE ram = desc.Level.INTENSIVE category = 'Panorama HDR' documentation = ''' Estimate the seams lines between the inputs to provide an optimal compositing in a further node ''' inputs = [ desc.File( name="input", label="Input SfMData", description="Input SfMData file.", value="", uid=[0], ), desc.File( name="warpingFolder", label="Warping Folder", description="Panorama warping results.", value="", uid=[0], ), desc.IntParam( name="maxWidth", label="Max Resolution", description="Maximal resolution for the panorama seams estimation.", value=5000, range=(0, 100000, 1), uid=[0], ), desc.BoolParam( name="useGraphCut", label="Use Smart Seams", description="Use a graphcut algorithm to optimize seams for better transitions between images.", value=True, uid=[0], ), desc.ChoiceParam( name="verboseLevel", label="Verbose Level", description="Verbosity level (fatal, error, warning, info, debug, trace).", value="info", values=["fatal", "error", "warning", "info", "debug", "trace"], exclusive=True, uid=[], ) ] outputs = [ desc.File( name="output", label="Labels", description="", semantic="image", value=desc.Node.internalFolder + "labels.exr", uid=[], ), desc.File( name="outputSfm", label="Output SfMData File", description="Path to the output SfMData file.", value=desc.Node.internalFolder + "panorama.sfm", uid=[], ) ]