[nodes] Remove invalidate=True from descriptions

This commit is contained in:
Candice Bentéjac 2024-09-06 17:30:22 +02:00
parent 07b65499ce
commit 41a1b47c43
81 changed files with 8 additions and 1076 deletions

View file

@ -18,21 +18,18 @@ Overwrite intrinsics with a calibrated intrinsic.
label="SfMData", label="SfMData",
description="Input SfMData file.", description="Input SfMData file.",
value="", value="",
invalidate=True,
), ),
desc.File( desc.File(
name="calibration", name="calibration",
label="Calibration", label="Calibration",
description="Calibration file (SfmData or Lens calibration file).", description="Calibration file (SfmData or Lens calibration file).",
value="", value="",
invalidate=True,
), ),
desc.BoolParam( desc.BoolParam(
name="useJson", name="useJson",
label="Use Lens Calibration File", label="Use Lens Calibration File",
description="Calibration is a Lens calibration file generated using 3Dequalizer instead of an sfmData.", description="Calibration is a Lens calibration file generated using 3Dequalizer instead of an sfmData.",
value=False, value=False,
invalidate=True,
), ),
desc.ChoiceParam( desc.ChoiceParam(
name="verboseLevel", name="verboseLevel",
@ -40,7 +37,6 @@ Overwrite intrinsics with a calibrated intrinsic.
description="Verbosity level (fatal, error, warning, info, debug, trace).", description="Verbosity level (fatal, error, warning, info, debug, trace).",
values=VERBOSE_LEVEL, values=VERBOSE_LEVEL,
value="info", value="info",
invalidate=False,
exclusive=True, exclusive=True,
), ),
] ]
@ -51,6 +47,5 @@ Overwrite intrinsics with a calibrated intrinsic.
label="SMData", label="SMData",
description="Path to the output SfMData file.", description="Path to the output SfMData file.",
value=desc.Node.internalFolder + "sfmData.sfm", value=desc.Node.internalFolder + "sfmData.sfm",
invalidate=False,
), ),
] ]

View file

@ -20,7 +20,6 @@ class CameraCalibration(desc.AVCommandLineNode):
" - image sequence like \"/path/to/seq.@.jpg\".\n" " - image sequence like \"/path/to/seq.@.jpg\".\n"
" - video file.", " - video file.",
value="", value="",
invalidate=True,
), ),
desc.ChoiceParam( desc.ChoiceParam(
name="pattern", name="pattern",
@ -29,7 +28,6 @@ class CameraCalibration(desc.AVCommandLineNode):
value="CHESSBOARD", value="CHESSBOARD",
values=["CHESSBOARD", "CIRCLES", "ASYMMETRIC_CIRCLES", "ASYMMETRIC_CCTAG"], values=["CHESSBOARD", "CIRCLES", "ASYMMETRIC_CIRCLES", "ASYMMETRIC_CCTAG"],
exclusive=True, exclusive=True,
invalidate=True,
), ),
desc.GroupAttribute( desc.GroupAttribute(
name="size", name="size",
@ -42,7 +40,6 @@ class CameraCalibration(desc.AVCommandLineNode):
description="", description="",
value=7, value=7,
range=(0, 10000, 1), range=(0, 10000, 1),
invalidate=True,
), ),
desc.IntParam( desc.IntParam(
name="height", name="height",
@ -50,7 +47,6 @@ class CameraCalibration(desc.AVCommandLineNode):
description="", description="",
value=5, value=5,
range=(0, 10000, 1), range=(0, 10000, 1),
invalidate=True,
), ),
], ],
), ),
@ -60,7 +56,6 @@ class CameraCalibration(desc.AVCommandLineNode):
description="Size of the grid's square cells (mm).", description="Size of the grid's square cells (mm).",
value=1.0, value=1.0,
range=(0.0, 100.0, 1.0), range=(0.0, 100.0, 1.0),
invalidate=True,
), ),
desc.IntParam( desc.IntParam(
name="nbDistortionCoef", name="nbDistortionCoef",
@ -68,7 +63,6 @@ class CameraCalibration(desc.AVCommandLineNode):
description="Number of distortion coefficients.", description="Number of distortion coefficients.",
value=3, value=3,
range=(0, 5, 1), range=(0, 5, 1),
invalidate=True,
), ),
desc.IntParam( desc.IntParam(
name="maxFrames", name="maxFrames",
@ -76,7 +70,6 @@ class CameraCalibration(desc.AVCommandLineNode):
description="Maximum number of frames to extract from the video file.", description="Maximum number of frames to extract from the video file.",
value=0, value=0,
range=(0, 5, 1), range=(0, 5, 1),
invalidate=True,
), ),
desc.IntParam( desc.IntParam(
name="maxCalibFrames", name="maxCalibFrames",
@ -84,7 +77,6 @@ class CameraCalibration(desc.AVCommandLineNode):
description="Maximum number of frames to use to calibrate from the selected frames.", description="Maximum number of frames to use to calibrate from the selected frames.",
value=100, value=100,
range=(0, 1000, 1), range=(0, 1000, 1),
invalidate=True,
), ),
desc.IntParam( desc.IntParam(
name="calibGridSize", name="calibGridSize",
@ -92,7 +84,6 @@ class CameraCalibration(desc.AVCommandLineNode):
description="Define the number of cells per edge.", description="Define the number of cells per edge.",
value=10, value=10,
range=(0, 50, 1), range=(0, 50, 1),
invalidate=True,
), ),
desc.IntParam( desc.IntParam(
name="minInputFrames", name="minInputFrames",
@ -100,7 +91,6 @@ class CameraCalibration(desc.AVCommandLineNode):
description="Minimum number of frames to limit the refinement loop.", description="Minimum number of frames to limit the refinement loop.",
value=10, value=10,
range=(0, 100, 1), range=(0, 100, 1),
invalidate=True,
), ),
desc.FloatParam( desc.FloatParam(
name="maxTotalAvgErr", name="maxTotalAvgErr",
@ -108,21 +98,18 @@ class CameraCalibration(desc.AVCommandLineNode):
description="Maximum total average error.", description="Maximum total average error.",
value=0.10000000000000001, value=0.10000000000000001,
range=(0.0, 1.0, 0.01), range=(0.0, 1.0, 0.01),
invalidate=True,
), ),
desc.File( desc.File(
name="debugRejectedImgFolder", name="debugRejectedImgFolder",
label="Debug Rejected Img Folder", label="Debug Rejected Img Folder",
description="Folder to export images that were deleted during the refinement loop.", description="Folder to export images that were deleted during the refinement loop.",
value="", value="",
invalidate=True,
), ),
desc.File( desc.File(
name="debugSelectedImgFolder", name="debugSelectedImgFolder",
label="Debug Selected Img Folder", label="Debug Selected Img Folder",
description="Folder to export debug images.", description="Folder to export debug images.",
value="", value="",
invalidate=True,
), ),
desc.ChoiceParam( desc.ChoiceParam(
name="verboseLevel", name="verboseLevel",
@ -131,7 +118,6 @@ class CameraCalibration(desc.AVCommandLineNode):
values=VERBOSE_LEVEL, values=VERBOSE_LEVEL,
value="info", value="info",
exclusive=True, exclusive=True,
invalidate=False,
), ),
] ]
@ -141,6 +127,5 @@ class CameraCalibration(desc.AVCommandLineNode):
label="Output", label="Output",
description="Output filename for intrinsic [and extrinsic] parameters.", description="Output filename for intrinsic [and extrinsic] parameters.",
value=desc.Node.internalFolder + "/cameraCalibration.cal", value=desc.Node.internalFolder + "/cameraCalibration.cal",
invalidate=False,
), ),
] ]

View file

@ -17,7 +17,6 @@ Viewpoint = [
label="ID", label="ID",
description="Image UID.", description="Image UID.",
value=-1, value=-1,
invalidate=True,
range=None, range=None,
), ),
desc.IntParam( desc.IntParam(
@ -25,7 +24,6 @@ Viewpoint = [
label="Pose ID", label="Pose ID",
description="Pose ID.", description="Pose ID.",
value=-1, value=-1,
invalidate=True,
range=None, range=None,
), ),
desc.File( desc.File(
@ -33,14 +31,12 @@ Viewpoint = [
label="Image Path", label="Image Path",
description="Image filepath.", description="Image filepath.",
value="", value="",
invalidate=True,
), ),
desc.IntParam( desc.IntParam(
name="intrinsicId", name="intrinsicId",
label="Intrinsic", label="Intrinsic",
description="Internal camera parameters.", description="Internal camera parameters.",
value=-1, value=-1,
invalidate=True,
range=None, range=None,
), ),
desc.IntParam( desc.IntParam(
@ -48,7 +44,6 @@ Viewpoint = [
label="Rig", label="Rig",
description="Rig parameters.", description="Rig parameters.",
value=-1, value=-1,
invalidate=True,
range=None, range=None,
), ),
desc.IntParam( desc.IntParam(
@ -56,7 +51,6 @@ Viewpoint = [
label="Rig Sub-Pose", label="Rig Sub-Pose",
description="Rig sub-pose parameters.", description="Rig sub-pose parameters.",
value=-1, value=-1,
invalidate=True,
range=None, range=None,
), ),
desc.StringParam( desc.StringParam(
@ -81,7 +75,6 @@ Intrinsic = [
label="ID", label="ID",
description="Intrinsic UID.", description="Intrinsic UID.",
value=-1, value=-1,
invalidate=True,
range=None, range=None,
), ),
desc.FloatParam( desc.FloatParam(
@ -92,7 +85,6 @@ Intrinsic = [
"So this value is used to limit the range of possible values in the optimization.\n" "So this value is used to limit the range of possible values in the optimization.\n"
"If this value is set to -1, it will not be used and the focal length will not be bounded.", "If this value is set to -1, it will not be used and the focal length will not be bounded.",
value=-1.0, value=-1.0,
invalidate=True,
range=None, range=None,
), ),
desc.FloatParam( desc.FloatParam(
@ -100,7 +92,6 @@ Intrinsic = [
label="Focal Length", label="Focal Length",
description="Known/calibrated focal length (in mm).", description="Known/calibrated focal length (in mm).",
value=1000.0, value=1000.0,
invalidate=True,
range=(0.0, 10000.0, 1.0), range=(0.0, 10000.0, 1.0),
), ),
desc.FloatParam( desc.FloatParam(
@ -108,7 +99,6 @@ Intrinsic = [
label="Pixel Ratio", label="Pixel Ratio",
description="Ratio between the pixel width and the pixel height.", description="Ratio between the pixel width and the pixel height.",
value=1.0, value=1.0,
invalidate=True,
range=(0.0, 10.0, 0.1), range=(0.0, 10.0, 0.1),
), ),
desc.BoolParam( desc.BoolParam(
@ -116,28 +106,24 @@ Intrinsic = [
label="Pixel Ratio Locked", label="Pixel Ratio Locked",
description="The pixel ratio value is locked for estimation.", description="The pixel ratio value is locked for estimation.",
value=True, value=True,
invalidate=True,
), ),
desc.BoolParam( desc.BoolParam(
name="scaleLocked", name="scaleLocked",
label="Focal length Locked", label="Focal length Locked",
description="The focal length is locked for estimation.", description="The focal length is locked for estimation.",
value=False, value=False,
invalidate=True,
), ),
desc.BoolParam( desc.BoolParam(
name="offsetLocked", name="offsetLocked",
label="Optical Center Locked", label="Optical Center Locked",
description="The optical center coordinates are locked for estimation.", description="The optical center coordinates are locked for estimation.",
value=False, value=False,
invalidate=True,
), ),
desc.BoolParam( desc.BoolParam(
name="distortionLocked", name="distortionLocked",
label="Distortion Locked", label="Distortion Locked",
description="The distortion parameters are locked for estimation.", description="The distortion parameters are locked for estimation.",
value=False, value=False,
invalidate=True,
), ),
desc.ChoiceParam( desc.ChoiceParam(
name="type", name="type",
@ -148,7 +134,6 @@ Intrinsic = [
value="pinhole", value="pinhole",
values=["pinhole", "equidistant"], values=["pinhole", "equidistant"],
exclusive=True, exclusive=True,
invalidate=True,
), ),
desc.ChoiceParam( desc.ChoiceParam(
name="distortionType", name="distortionType",
@ -163,14 +148,12 @@ Intrinsic = [
value="radialk3", value="radialk3",
values=["none", "radialk1", "radialk3", "radialk3pt", "brown", "fisheye4", "fisheye1"], values=["none", "radialk1", "radialk3", "radialk3pt", "brown", "fisheye4", "fisheye1"],
exclusive=True, exclusive=True,
invalidate=True,
), ),
desc.IntParam( desc.IntParam(
name="width", name="width",
label="Width", label="Width",
description="Image width.", description="Image width.",
value=0, value=0,
invalidate=True,
range=(0, 10000, 1), range=(0, 10000, 1),
), ),
desc.IntParam( desc.IntParam(
@ -178,7 +161,6 @@ Intrinsic = [
label="Height", label="Height",
description="Image height.", description="Image height.",
value=0, value=0,
invalidate=True,
range=(0, 10000, 1), range=(0, 10000, 1),
), ),
desc.FloatParam( desc.FloatParam(
@ -186,7 +168,6 @@ Intrinsic = [
label="Sensor Width", label="Sensor Width",
description="Sensor width (in mm).", description="Sensor width (in mm).",
value=36.0, value=36.0,
invalidate=True,
range=(0.0, 1000.0, 1.0), range=(0.0, 1000.0, 1.0),
), ),
desc.FloatParam( desc.FloatParam(
@ -194,7 +175,6 @@ Intrinsic = [
label="Sensor Height", label="Sensor Height",
description="Sensor height (in mm).", description="Sensor height (in mm).",
value=24.0, value=24.0,
invalidate=True,
range=(0.0, 1000.0, 1.0), range=(0.0, 1000.0, 1.0),
), ),
desc.StringParam( desc.StringParam(
@ -202,7 +182,6 @@ Intrinsic = [
label="Serial Number", label="Serial Number",
description="Device serial number (Camera UID and Lens UID combined).", description="Device serial number (Camera UID and Lens UID combined).",
value="", value="",
invalidate=True,
), ),
desc.GroupAttribute( desc.GroupAttribute(
name="principalPoint", name="principalPoint",
@ -214,7 +193,6 @@ Intrinsic = [
label="x", label="x",
description="", description="",
value=0.0, value=0.0,
invalidate=True,
range=(0.0, 10000.0, 1.0), range=(0.0, 10000.0, 1.0),
), ),
desc.FloatParam( desc.FloatParam(
@ -222,7 +200,6 @@ Intrinsic = [
label="y", label="y",
description="", description="",
value=0.0, value=0.0,
invalidate=True,
range=(0.0, 10000.0, 1.0), range=(0.0, 10000.0, 1.0),
), ),
], ],
@ -238,7 +215,6 @@ Intrinsic = [
values=["calibrated", "estimated", "unknown", "none"], values=["calibrated", "estimated", "unknown", "none"],
value="none", value="none",
exclusive=True, exclusive=True,
invalidate=True,
), ),
desc.ChoiceParam( desc.ChoiceParam(
name="distortionInitializationMode", name="distortionInitializationMode",
@ -251,7 +227,6 @@ Intrinsic = [
values=["calibrated", "estimated", "unknown", "none"], values=["calibrated", "estimated", "unknown", "none"],
value="none", value="none",
exclusive=True, exclusive=True,
invalidate=True,
), ),
desc.ListAttribute( desc.ListAttribute(
name="distortionParams", name="distortionParams",
@ -260,7 +235,6 @@ Intrinsic = [
label="", label="",
description="", description="",
value=0.0, value=0.0,
invalidate=True,
range=(-0.1, 0.1, 0.01), range=(-0.1, 0.1, 0.01),
), ),
label="Distortion Params", label="Distortion Params",
@ -276,7 +250,6 @@ Intrinsic = [
label="x", label="x",
description="", description="",
value=0.0, value=0.0,
invalidate=True,
range=(0.0, 10000.0, 1.0), range=(0.0, 10000.0, 1.0),
), ),
desc.FloatParam( desc.FloatParam(
@ -284,7 +257,6 @@ Intrinsic = [
label="y", label="y",
description="", description="",
value=0.0, value=0.0,
invalidate=True,
range=(0.0, 10000.0, 1.0), range=(0.0, 10000.0, 1.0),
), ),
], ],
@ -296,7 +268,6 @@ Intrinsic = [
label="", label="",
description="", description="",
value=0.0, value=0.0,
invalidate=True,
range=(-0.1, 0.1, 0.01), range=(-0.1, 0.1, 0.01),
), ),
label="Undistortion Params", label="Undistortion Params",
@ -307,7 +278,6 @@ Intrinsic = [
label="Locked", label="Locked",
description="If the camera has been calibrated, the internal camera parameters (intrinsics) can be locked. It should improve robustness and speed-up the reconstruction.", description="If the camera has been calibrated, the internal camera parameters (intrinsics) can be locked. It should improve robustness and speed-up the reconstruction.",
value=False, value=False,
invalidate=True,
), ),
] ]
@ -420,7 +390,6 @@ The needed metadata are:
label="LCP Generic Search", label="LCP Generic Search",
description="The lens name and camera maker are used to match the LCP database, but the camera model is ignored.", description="The lens name and camera maker are used to match the LCP database, but the camera model is ignored.",
value=True, value=True,
invalidate=True,
advanced=True, advanced=True,
), ),
desc.FloatParam( desc.FloatParam(
@ -457,7 +426,6 @@ The needed metadata are:
values=RAW_COLOR_INTERPRETATION, values=RAW_COLOR_INTERPRETATION,
value="DCPLinearProcessing" if os.environ.get("ALICEVISION_COLOR_PROFILE_DB", "") else "LibRawWhiteBalancing", value="DCPLinearProcessing" if os.environ.get("ALICEVISION_COLOR_PROFILE_DB", "") else "LibRawWhiteBalancing",
exclusive=True, exclusive=True,
invalidate=True,
), ),
desc.File( desc.File(
name="colorProfileDatabase", name="colorProfileDatabase",
@ -474,7 +442,6 @@ The needed metadata are:
"When disabled, if no color profile is found for some images, it will fallback to libRawWhiteBalancing for those images.", "When disabled, if no color profile is found for some images, it will fallback to libRawWhiteBalancing for those images.",
value=True, value=True,
enabled=lambda node: node.rawColorInterpretation.value.startswith("DCP"), enabled=lambda node: node.rawColorInterpretation.value.startswith("DCP"),
invalidate=True,
), ),
desc.ChoiceParam( desc.ChoiceParam(
name="viewIdMethod", name="viewIdMethod",
@ -510,7 +477,6 @@ The needed metadata are:
values=VERBOSE_LEVEL, values=VERBOSE_LEVEL,
value="info", value="info",
exclusive=True, exclusive=True,
invalidate=False,
), ),
] ]
@ -520,7 +486,6 @@ The needed metadata are:
label="SfMData", label="SfMData",
description="Output SfMData.", description="Output SfMData.",
value=desc.Node.internalFolder + "cameraInit.sfm", value=desc.Node.internalFolder + "cameraInit.sfm",
invalidate=False,
), ),
] ]

View file

@ -18,28 +18,24 @@ class CameraLocalization(desc.AVCommandLineNode):
label="SfMData", label="SfMData",
description="The SfMData file generated by AliceVision.", description="The SfMData file generated by AliceVision.",
value="", value="",
invalidate=True,
), ),
desc.File( desc.File(
name="mediafile", name="mediafile",
label="Media File", label="Media File",
description="The folder path or the filename for the media to track.", description="The folder path or the filename for the media to track.",
value="", value="",
invalidate=True,
), ),
desc.File( desc.File(
name="visualDebug", name="visualDebug",
label="Visual Debug Folder", label="Visual Debug Folder",
description="If a folder is provided, this enables visual debug and all the debugging information will be saved in that folder.", description="If a folder is provided, this enables visual debug and all the debugging information will be saved in that folder.",
value="", value="",
invalidate=True,
), ),
desc.File( desc.File(
name="descriptorPath", name="descriptorPath",
label="Descriptor Path", label="Descriptor Path",
description="Folder containing the descriptors for all the images (ie. the *.desc.).", description="Folder containing the descriptors for all the images (ie. the *.desc.).",
value="", value="",
invalidate=True,
), ),
desc.ChoiceParam( desc.ChoiceParam(
name="matchDescTypes", name="matchDescTypes",
@ -48,7 +44,6 @@ class CameraLocalization(desc.AVCommandLineNode):
values=DESCRIBER_TYPES, values=DESCRIBER_TYPES,
value=["dspsift"], value=["dspsift"],
exclusive=False, exclusive=False,
invalidate=True,
joinChar=",", joinChar=",",
), ),
desc.ChoiceParam( desc.ChoiceParam(
@ -58,7 +53,6 @@ class CameraLocalization(desc.AVCommandLineNode):
value="normal", value="normal",
values=["low", "medium", "normal", "high", "ultra"], values=["low", "medium", "normal", "high", "ultra"],
exclusive=True, exclusive=True,
invalidate=True,
), ),
desc.ChoiceParam( desc.ChoiceParam(
name="resectionEstimator", name="resectionEstimator",
@ -67,7 +61,6 @@ class CameraLocalization(desc.AVCommandLineNode):
value="acransac", value="acransac",
values=["acransac", "loransac"], values=["acransac", "loransac"],
exclusive=True, exclusive=True,
invalidate=True,
), ),
desc.ChoiceParam( desc.ChoiceParam(
name="matchingEstimator", name="matchingEstimator",
@ -76,21 +69,18 @@ class CameraLocalization(desc.AVCommandLineNode):
value="acransac", value="acransac",
values=["acransac", "loransac"], values=["acransac", "loransac"],
exclusive=True, exclusive=True,
invalidate=True,
), ),
desc.File( desc.File(
name="calibration", name="calibration",
label="Calibration", label="Calibration",
description="Calibration file.", description="Calibration file.",
value="", value="",
invalidate=True,
), ),
desc.BoolParam( desc.BoolParam(
name="refineIntrinsics", name="refineIntrinsics",
label="Refine Intrinsics", label="Refine Intrinsics",
description="Enable/Disable camera intrinsics refinement for each localized image.", description="Enable/Disable camera intrinsics refinement for each localized image.",
value=False, value=False,
invalidate=True,
), ),
desc.FloatParam( desc.FloatParam(
name="reprojectionError", name="reprojectionError",
@ -98,7 +88,6 @@ class CameraLocalization(desc.AVCommandLineNode):
description="Maximum reprojection error (in pixels) allowed for resectioning. If set to 0, it lets the ACRansac select an optimal value.", description="Maximum reprojection error (in pixels) allowed for resectioning. If set to 0, it lets the ACRansac select an optimal value.",
value=4.0, value=4.0,
range=(0.1, 50.0, 0.1), range=(0.1, 50.0, 0.1),
invalidate=True,
), ),
desc.IntParam( desc.IntParam(
name="nbImageMatch", name="nbImageMatch",
@ -106,7 +95,6 @@ class CameraLocalization(desc.AVCommandLineNode):
description="[voctree] Number of images to retrieve in database.", description="[voctree] Number of images to retrieve in database.",
value=4, value=4,
range=(1, 1000, 1), range=(1, 1000, 1),
invalidate=True,
), ),
desc.IntParam( desc.IntParam(
name="maxResults", name="maxResults",
@ -114,7 +102,6 @@ class CameraLocalization(desc.AVCommandLineNode):
description="[voctree] For algorithm AllResults, it stops the image matching when this number of matched images is reached. If 0 it is ignored.", description="[voctree] For algorithm AllResults, it stops the image matching when this number of matched images is reached. If 0 it is ignored.",
value=10, value=10,
range=(1, 100, 1), range=(1, 100, 1),
invalidate=True,
), ),
desc.IntParam( desc.IntParam(
name="commonviews", name="commonviews",
@ -122,21 +109,18 @@ class CameraLocalization(desc.AVCommandLineNode):
description="[voctree] Number of minimum images in which a point must be seen to be used in cluster tracking.", description="[voctree] Number of minimum images in which a point must be seen to be used in cluster tracking.",
value=3, value=3,
range=(2, 50, 1), range=(2, 50, 1),
invalidate=True,
), ),
desc.File( desc.File(
name="voctree", name="voctree",
label="Voctree", label="Voctree",
description="[voctree] Filename for the vocabulary tree.", description="[voctree] Filename for the vocabulary tree.",
value="${ALICEVISION_VOCTREE}", value="${ALICEVISION_VOCTREE}",
invalidate=True,
), ),
desc.File( desc.File(
name="voctreeWeights", name="voctreeWeights",
label="Voctree Weights", label="Voctree Weights",
description="[voctree] Filename for the vocabulary tree weights.", description="[voctree] Filename for the vocabulary tree weights.",
value="", value="",
invalidate=True,
), ),
desc.ChoiceParam( desc.ChoiceParam(
name="algorithm", name="algorithm",
@ -145,7 +129,6 @@ class CameraLocalization(desc.AVCommandLineNode):
value="AllResults", value="AllResults",
values=["FirstBest", "AllResults"], values=["FirstBest", "AllResults"],
exclusive=True, exclusive=True,
invalidate=True,
), ),
desc.FloatParam( desc.FloatParam(
name="matchingError", name="matchingError",
@ -153,7 +136,6 @@ class CameraLocalization(desc.AVCommandLineNode):
description="[voctree] Maximum matching error (in pixels) allowed for image matching with geometric verification. If set to 0, it lets the ACRansac select an optimal value.", description="[voctree] Maximum matching error (in pixels) allowed for image matching with geometric verification. If set to 0, it lets the ACRansac select an optimal value.",
value=4.0, value=4.0,
range=(0.0, 50.0, 1.0), range=(0.0, 50.0, 1.0),
invalidate=True,
), ),
desc.IntParam( desc.IntParam(
name="nbFrameBufferMatching", name="nbFrameBufferMatching",
@ -161,14 +143,12 @@ class CameraLocalization(desc.AVCommandLineNode):
description="[voctree] Number of previous frames of the sequence to use for matching (0 = Disable).", description="[voctree] Number of previous frames of the sequence to use for matching (0 = Disable).",
value=10, value=10,
range=(0, 100, 1), range=(0, 100, 1),
invalidate=True,
), ),
desc.BoolParam( desc.BoolParam(
name="robustMatching", name="robustMatching",
label="Robust Matching", label="Robust Matching",
description="[voctree] Enable/Disable the robust matching between query and database images, all putative matches will be considered.", description="[voctree] Enable/Disable the robust matching between query and database images, all putative matches will be considered.",
value=True, value=True,
invalidate=True,
), ),
desc.IntParam( desc.IntParam(
name="nNearestKeyFrames", name="nNearestKeyFrames",
@ -176,28 +156,24 @@ class CameraLocalization(desc.AVCommandLineNode):
description="[cctag] Number of images to retrieve in the database. Parameters specific for final (optional) bundle adjustment optimization of the sequence.", description="[cctag] Number of images to retrieve in the database. Parameters specific for final (optional) bundle adjustment optimization of the sequence.",
value=5, value=5,
range=(1, 100, 1), range=(1, 100, 1),
invalidate=True,
), ),
desc.StringParam( desc.StringParam(
name="globalBundle", name="globalBundle",
label="Global Bundle", label="Global Bundle",
description="[bundle adjustment] If --refineIntrinsics is not set, this option allows to run a final global bundle adjustment to refine the scene.", description="[bundle adjustment] If --refineIntrinsics is not set, this option allows to run a final global bundle adjustment to refine the scene.",
value="", value="",
invalidate=True,
), ),
desc.BoolParam( desc.BoolParam(
name="noDistortion", name="noDistortion",
label="No Distortion", label="No Distortion",
description="[bundle adjustment] It does not take into account distortion during the BA, it considers the distortion coefficients to all be equal to 0.", description="[bundle adjustment] It does not take into account distortion during the BA, it considers the distortion coefficients to all be equal to 0.",
value=False, value=False,
invalidate=True,
), ),
desc.BoolParam( desc.BoolParam(
name="noBArefineIntrinsics", name="noBArefineIntrinsics",
label="No BA Refine Intrinsics", label="No BA Refine Intrinsics",
description="[bundle adjustment] If set to true, does not refine intrinsics during BA.", description="[bundle adjustment] If set to true, does not refine intrinsics during BA.",
value=False, value=False,
invalidate=True,
), ),
desc.IntParam( desc.IntParam(
name="minPointVisibility", name="minPointVisibility",
@ -205,7 +181,6 @@ class CameraLocalization(desc.AVCommandLineNode):
description="[bundle adjustment] Minimum number of observations that a point must have in order to be considered for bundle adjustment.", description="[bundle adjustment] Minimum number of observations that a point must have in order to be considered for bundle adjustment.",
value=2, value=2,
range=(2, 50, 1), range=(2, 50, 1),
invalidate=True,
), ),
desc.ChoiceParam( desc.ChoiceParam(
name="verboseLevel", name="verboseLevel",
@ -214,7 +189,6 @@ class CameraLocalization(desc.AVCommandLineNode):
values=VERBOSE_LEVEL, values=VERBOSE_LEVEL,
value="info", value="info",
exclusive=True, exclusive=True,
invalidate=False,
), ),
] ]
@ -224,13 +198,11 @@ class CameraLocalization(desc.AVCommandLineNode):
label="Alembic", label="Alembic",
description="Filename for the SfMData export file (where camera poses will be stored).", description="Filename for the SfMData export file (where camera poses will be stored).",
value=desc.Node.internalFolder + "trackedCameras.abc", value=desc.Node.internalFolder + "trackedCameras.abc",
invalidate=False,
), ),
desc.File( desc.File(
name="outputJSON", name="outputJSON",
label="JSON File", label="JSON File",
description="Filename for the localization results as .json.", description="Filename for the localization results as .json.",
value=desc.Node.internalFolder + "trackedCameras.json", value=desc.Node.internalFolder + "trackedCameras.json",
invalidate=False,
), ),
] ]

View file

@ -18,7 +18,6 @@ class CameraRigCalibration(desc.AVCommandLineNode):
label="SfMData", label="SfMData",
description="Input SfMData file.", description="Input SfMData file.",
value="", value="",
invalidate=True,
), ),
desc.File( desc.File(
name="mediapath", name="mediapath",
@ -26,28 +25,24 @@ class CameraRigCalibration(desc.AVCommandLineNode):
description="The path to the video file, the folder of the image sequence or a text file\n" description="The path to the video file, the folder of the image sequence or a text file\n"
"(one image path per line) for each camera of the rig (eg. --mediapath /path/to/cam1.mov /path/to/cam2.mov).", "(one image path per line) for each camera of the rig (eg. --mediapath /path/to/cam1.mov /path/to/cam2.mov).",
value="", value="",
invalidate=True,
), ),
desc.File( desc.File(
name="cameraIntrinsics", name="cameraIntrinsics",
label="Camera Intrinsics", label="Camera Intrinsics",
description="The intrinsics calibration file for each camera of the rig (eg. --cameraIntrinsics /path/to/calib1.txt /path/to/calib2.txt).", description="The intrinsics calibration file for each camera of the rig (eg. --cameraIntrinsics /path/to/calib1.txt /path/to/calib2.txt).",
value="", value="",
invalidate=True,
), ),
desc.File( desc.File(
name="export", name="export",
label="Export File", label="Export File",
description="Filename for the alembic file containing the rig poses with the 3D points. It also saves a file for each camera named 'filename.cam##.abc'.", description="Filename for the alembic file containing the rig poses with the 3D points. It also saves a file for each camera named 'filename.cam##.abc'.",
value="trackedcameras.abc", value="trackedcameras.abc",
invalidate=True,
), ),
desc.File( desc.File(
name="descriptorPath", name="descriptorPath",
label="Descriptor Path", label="Descriptor Path",
description="Folder containing the .desc.", description="Folder containing the .desc.",
value="", value="",
invalidate=True,
), ),
desc.ChoiceParam( desc.ChoiceParam(
name="matchDescTypes", name="matchDescTypes",
@ -56,7 +51,6 @@ class CameraRigCalibration(desc.AVCommandLineNode):
values=DESCRIBER_TYPES, values=DESCRIBER_TYPES,
value=["dspsift"], value=["dspsift"],
exclusive=False, exclusive=False,
invalidate=True,
joinChar=",", joinChar=",",
), ),
desc.ChoiceParam( desc.ChoiceParam(
@ -66,7 +60,6 @@ class CameraRigCalibration(desc.AVCommandLineNode):
value="normal", value="normal",
values=["low", "medium", "normal", "high", "ultra"], values=["low", "medium", "normal", "high", "ultra"],
exclusive=True, exclusive=True,
invalidate=True,
), ),
desc.ChoiceParam( desc.ChoiceParam(
name="resectionEstimator", name="resectionEstimator",
@ -75,7 +68,6 @@ class CameraRigCalibration(desc.AVCommandLineNode):
value="acransac", value="acransac",
values=["acransac", "loransac"], values=["acransac", "loransac"],
exclusive=True, exclusive=True,
invalidate=True,
), ),
desc.ChoiceParam( desc.ChoiceParam(
name="matchingEstimator", name="matchingEstimator",
@ -84,14 +76,12 @@ class CameraRigCalibration(desc.AVCommandLineNode):
value="acransac", value="acransac",
values=["acransac", "loransac"], values=["acransac", "loransac"],
exclusive=True, exclusive=True,
invalidate=True,
), ),
desc.StringParam( desc.StringParam(
name="refineIntrinsics", name="refineIntrinsics",
label="Refine Intrinsics", label="Refine Intrinsics",
description="Enable/Disable camera intrinsics refinement for each localized image.", description="Enable/Disable camera intrinsics refinement for each localized image.",
value="", value="",
invalidate=True,
), ),
desc.FloatParam( desc.FloatParam(
name="reprojectionError", name="reprojectionError",
@ -100,7 +90,6 @@ class CameraRigCalibration(desc.AVCommandLineNode):
"If set to 0, it lets the ACRansac select an optimal value.", "If set to 0, it lets the ACRansac select an optimal value.",
value=4.0, value=4.0,
range=(0.0, 10.0, 0.1), range=(0.0, 10.0, 0.1),
invalidate=True,
), ),
desc.IntParam( desc.IntParam(
name="maxInputFrames", name="maxInputFrames",
@ -108,21 +97,18 @@ class CameraRigCalibration(desc.AVCommandLineNode):
description="Maximum number of frames to read in input. 0 means no limit.", description="Maximum number of frames to read in input. 0 means no limit.",
value=0, value=0,
range=(0, 1000, 1), range=(0, 1000, 1),
invalidate=True,
), ),
desc.File( desc.File(
name="voctree", name="voctree",
label="Voctree", label="Voctree",
description="[voctree] Filename for the vocabulary tree.", description="[voctree] Filename for the vocabulary tree.",
value="${ALICEVISION_VOCTREE}", value="${ALICEVISION_VOCTREE}",
invalidate=True,
), ),
desc.File( desc.File(
name="voctreeWeights", name="voctreeWeights",
label="Voctree Weights", label="Voctree Weights",
description="[voctree] Filename for the vocabulary tree weights.", description="[voctree] Filename for the vocabulary tree weights.",
value="", value="",
invalidate=True,
), ),
desc.ChoiceParam( desc.ChoiceParam(
name="algorithm", name="algorithm",
@ -131,7 +117,6 @@ class CameraRigCalibration(desc.AVCommandLineNode):
value="AllResults", value="AllResults",
values=["FirstBest", "AllResults"], values=["FirstBest", "AllResults"],
exclusive=True, exclusive=True,
invalidate=True,
), ),
desc.IntParam( desc.IntParam(
name="nbImageMatch", name="nbImageMatch",
@ -139,7 +124,6 @@ class CameraRigCalibration(desc.AVCommandLineNode):
description="[voctree] Number of images to retrieve in the database.", description="[voctree] Number of images to retrieve in the database.",
value=4, value=4,
range=(0, 50, 1), range=(0, 50, 1),
invalidate=True,
), ),
desc.IntParam( desc.IntParam(
name="maxResults", name="maxResults",
@ -147,7 +131,6 @@ class CameraRigCalibration(desc.AVCommandLineNode):
description="[voctree] For algorithm AllResults, it stops the image matching when this number of matched images is reached. If set to 0, it is ignored.", description="[voctree] For algorithm AllResults, it stops the image matching when this number of matched images is reached. If set to 0, it is ignored.",
value=10, value=10,
range=(0, 100, 1), range=(0, 100, 1),
invalidate=True,
), ),
desc.FloatParam( desc.FloatParam(
name="matchingError", name="matchingError",
@ -156,7 +139,6 @@ class CameraRigCalibration(desc.AVCommandLineNode):
"If set to 0, it lets the ACRansac select an optimal value.", "If set to 0, it lets the ACRansac select an optimal value.",
value=4.0, value=4.0,
range=(0.0, 10.0, 0.1), range=(0.0, 10.0, 0.1),
invalidate=True,
), ),
desc.IntParam( desc.IntParam(
name="nNearestKeyFrames", name="nNearestKeyFrames",
@ -164,7 +146,6 @@ class CameraRigCalibration(desc.AVCommandLineNode):
description="[cctag] Number of images to retrieve in database.", description="[cctag] Number of images to retrieve in database.",
value=5, value=5,
range=(0, 50, 1), range=(0, 50, 1),
invalidate=True,
), ),
desc.ChoiceParam( desc.ChoiceParam(
name="verboseLevel", name="verboseLevel",
@ -173,7 +154,6 @@ class CameraRigCalibration(desc.AVCommandLineNode):
values=VERBOSE_LEVEL, values=VERBOSE_LEVEL,
value="info", value="info",
exclusive=True, exclusive=True,
invalidate=False,
), ),
] ]
@ -183,6 +163,5 @@ class CameraRigCalibration(desc.AVCommandLineNode):
label="Output File", label="Output File",
description="The name of the file to store the calibration data in.", description="The name of the file to store the calibration data in.",
value=desc.Node.internalFolder + "cameraRigCalibration.rigCal", value=desc.Node.internalFolder + "cameraRigCalibration.rigCal",
invalidate=False,
), ),
] ]

View file

@ -18,35 +18,30 @@ class CameraRigLocalization(desc.AVCommandLineNode):
label="SfMData", label="SfMData",
description="The input SfMData file.", description="The input SfMData file.",
value="", value="",
invalidate=True,
), ),
desc.File( desc.File(
name="mediapath", name="mediapath",
label="Media Path", label="Media Path",
description="The path to the video file, the folder of the image sequence or a text file (one image path per line) for each camera of the rig (eg. --mediapath /path/to/cam1.mov /path/to/cam2.mov).", description="The path to the video file, the folder of the image sequence or a text file (one image path per line) for each camera of the rig (eg. --mediapath /path/to/cam1.mov /path/to/cam2.mov).",
value="", value="",
invalidate=True,
), ),
desc.File( desc.File(
name="calibration", name="calibration",
label="Rig Calibration File", label="Rig Calibration File",
description="The file containing the calibration data for the rig (subposes).", description="The file containing the calibration data for the rig (subposes).",
value="", value="",
invalidate=True,
), ),
desc.File( desc.File(
name="cameraIntrinsics", name="cameraIntrinsics",
label="Camera Intrinsics", label="Camera Intrinsics",
description="The intrinsics calibration file for each camera of the rig (eg. --cameraIntrinsics /path/to/calib1.txt /path/to/calib2.txt).", description="The intrinsics calibration file for each camera of the rig (eg. --cameraIntrinsics /path/to/calib1.txt /path/to/calib2.txt).",
value="", value="",
invalidate=True,
), ),
desc.File( desc.File(
name="descriptorPath", name="descriptorPath",
label="Descriptor Path", label="Descriptor Path",
description="Folder containing the .desc.", description="Folder containing the .desc.",
value="", value="",
invalidate=True,
), ),
desc.ChoiceParam( desc.ChoiceParam(
name="matchDescTypes", name="matchDescTypes",
@ -55,7 +50,6 @@ class CameraRigLocalization(desc.AVCommandLineNode):
values=DESCRIBER_TYPES, values=DESCRIBER_TYPES,
value=["dspsift"], value=["dspsift"],
exclusive=False, exclusive=False,
invalidate=True,
joinChar=",", joinChar=",",
), ),
desc.ChoiceParam( desc.ChoiceParam(
@ -65,7 +59,6 @@ class CameraRigLocalization(desc.AVCommandLineNode):
value="normal", value="normal",
values=["low", "medium", "normal", "high", "ultra"], values=["low", "medium", "normal", "high", "ultra"],
exclusive=True, exclusive=True,
invalidate=True,
), ),
desc.ChoiceParam( desc.ChoiceParam(
name="resectionEstimator", name="resectionEstimator",
@ -74,7 +67,6 @@ class CameraRigLocalization(desc.AVCommandLineNode):
value="acransac", value="acransac",
values=["acransac", "loransac"], values=["acransac", "loransac"],
exclusive=True, exclusive=True,
invalidate=True,
), ),
desc.ChoiceParam( desc.ChoiceParam(
name="matchingEstimator", name="matchingEstimator",
@ -83,14 +75,12 @@ class CameraRigLocalization(desc.AVCommandLineNode):
value="acransac", value="acransac",
values=["acransac", "loransac"], values=["acransac", "loransac"],
exclusive=True, exclusive=True,
invalidate=True,
), ),
desc.StringParam( desc.StringParam(
name="refineIntrinsics", name="refineIntrinsics",
label="Refine Intrinsics", label="Refine Intrinsics",
description="Enable/Disable camera intrinsics refinement for each localized image.", description="Enable/Disable camera intrinsics refinement for each localized image.",
value="", value="",
invalidate=True,
), ),
desc.FloatParam( desc.FloatParam(
name="reprojectionError", name="reprojectionError",
@ -99,14 +89,12 @@ class CameraRigLocalization(desc.AVCommandLineNode):
"If set to 0, it lets the ACRansac select an optimal value.", "If set to 0, it lets the ACRansac select an optimal value.",
value=4.0, value=4.0,
range=(0.0, 10.0, 0.1), range=(0.0, 10.0, 0.1),
invalidate=True,
), ),
desc.BoolParam( desc.BoolParam(
name="useLocalizeRigNaive", name="useLocalizeRigNaive",
label="Use Localize Rig Naive", label="Use Localize Rig Naive",
description="Enable/Disable the naive method for rig localization: naive method tries to localize each camera separately.", description="Enable/Disable the naive method for rig localization: naive method tries to localize each camera separately.",
value=False, value=False,
invalidate=True,
), ),
desc.FloatParam( desc.FloatParam(
name="angularThreshold", name="angularThreshold",
@ -114,21 +102,18 @@ class CameraRigLocalization(desc.AVCommandLineNode):
description="The maximum angular threshold in degrees between feature bearing vector and 3D point direction. Used only with the opengv method.", description="The maximum angular threshold in degrees between feature bearing vector and 3D point direction. Used only with the opengv method.",
value=0.1, value=0.1,
range=(0.0, 10.0, 0.01), range=(0.0, 10.0, 0.01),
invalidate=True,
), ),
desc.File( desc.File(
name="voctree", name="voctree",
label="Voctree", label="Voctree",
description="[voctree] Filename for the vocabulary tree.""", description="[voctree] Filename for the vocabulary tree.""",
value="${ALICEVISION_VOCTREE}", value="${ALICEVISION_VOCTREE}",
invalidate=True,
), ),
desc.File( desc.File(
name="voctreeWeights", name="voctreeWeights",
label="Voctree Weights", label="Voctree Weights",
description="[voctree] Filename for the vocabulary tree weights.", description="[voctree] Filename for the vocabulary tree weights.",
value="", value="",
invalidate=True,
), ),
desc.ChoiceParam( desc.ChoiceParam(
name="algorithm", name="algorithm",
@ -137,7 +122,6 @@ class CameraRigLocalization(desc.AVCommandLineNode):
value="AllResults", value="AllResults",
values=["FirstBest", "AllResults"], values=["FirstBest", "AllResults"],
exclusive=True, exclusive=True,
invalidate=True,
), ),
desc.IntParam( desc.IntParam(
name="nbImageMatch", name="nbImageMatch",
@ -145,7 +129,6 @@ class CameraRigLocalization(desc.AVCommandLineNode):
description="[voctree] Number of images to retrieve in the database.", description="[voctree] Number of images to retrieve in the database.",
value=4, value=4,
range=(0, 100, 1), range=(0, 100, 1),
invalidate=True,
), ),
desc.IntParam( desc.IntParam(
name="maxResults", name="maxResults",
@ -154,7 +137,6 @@ class CameraRigLocalization(desc.AVCommandLineNode):
"If set to 0, it is ignored.", "If set to 0, it is ignored.",
value=10, value=10,
range=(0, 100, 1), range=(0, 100, 1),
invalidate=True,
), ),
desc.FloatParam( desc.FloatParam(
name="matchingError", name="matchingError",
@ -163,7 +145,6 @@ class CameraRigLocalization(desc.AVCommandLineNode):
"If set to 0, it lets the ACRansac select an optimal value.", "If set to 0, it lets the ACRansac select an optimal value.",
value=4.0, value=4.0,
range=(0.0, 10.0, 0.1), range=(0.0, 10.0, 0.1),
invalidate=True,
), ),
desc.IntParam( desc.IntParam(
name="nNearestKeyFrames", name="nNearestKeyFrames",
@ -171,7 +152,6 @@ class CameraRigLocalization(desc.AVCommandLineNode):
description="[cctag] Number of images to retrieve in database.", description="[cctag] Number of images to retrieve in database.",
value=5, value=5,
range=(0, 50, 1), range=(0, 50, 1),
invalidate=True,
), ),
desc.ChoiceParam( desc.ChoiceParam(
name="verboseLevel", name="verboseLevel",
@ -180,7 +160,6 @@ class CameraRigLocalization(desc.AVCommandLineNode):
values=VERBOSE_LEVEL, values=VERBOSE_LEVEL,
value="info", value="info",
exclusive=True, exclusive=True,
invalidate=False,
), ),
] ]
@ -190,6 +169,5 @@ class CameraRigLocalization(desc.AVCommandLineNode):
label="Alembic", label="Alembic",
description="Filename for the SfMData export file (where camera poses will be stored).", description="Filename for the SfMData export file (where camera poses will be stored).",
value=desc.Node.internalFolder + "trackedcameras.abc", value=desc.Node.internalFolder + "trackedcameras.abc",
invalidate=False,
), ),
] ]

View file

@ -19,14 +19,12 @@ Estimate the camera intrinsics and extrinsincs on a set of checkerboard images.
label="Input SfMData", label="Input SfMData",
description="SfMData file.", description="SfMData file.",
value="", value="",
invalidate=True,
), ),
desc.File( desc.File(
name="checkerboards", name="checkerboards",
label="Checkerboards Folder", label="Checkerboards Folder",
description="Folder containing checkerboard JSON files.", description="Folder containing checkerboard JSON files.",
value="", value="",
invalidate=True,
), ),
desc.FloatParam( desc.FloatParam(
name="squareSize", name="squareSize",
@ -34,7 +32,6 @@ Estimate the camera intrinsics and extrinsincs on a set of checkerboard images.
description="Checkerboard square width in mm", description="Checkerboard square width in mm",
value=10., value=10.,
range=(0.1, 100., 0.1), range=(0.1, 100., 0.1),
invalidate=True,
), ),
desc.ChoiceParam( desc.ChoiceParam(
name="verboseLevel", name="verboseLevel",
@ -43,7 +40,6 @@ Estimate the camera intrinsics and extrinsincs on a set of checkerboard images.
values=VERBOSE_LEVEL, values=VERBOSE_LEVEL,
value="info", value="info",
exclusive=True, exclusive=True,
invalidate=False,
), ),
] ]
@ -53,6 +49,5 @@ Estimate the camera intrinsics and extrinsincs on a set of checkerboard images.
label="SfMData File", label="SfMData File",
description="Path to the output SfMData file.", description="Path to the output SfMData file.",
value=desc.Node.internalFolder + "sfmData.sfm", value=desc.Node.internalFolder + "sfmData.sfm",
invalidate=False,
) )
] ]

View file

@ -22,35 +22,30 @@ The detection method also supports nested calibration grids.
label="Input", label="Input",
description="Input SfMData file. Viewpoints must correspond to lens calibration grids.", description="Input SfMData file. Viewpoints must correspond to lens calibration grids.",
value="", value="",
invalidate=True,
), ),
desc.BoolParam( desc.BoolParam(
name="useNestedGrids", name="useNestedGrids",
label="Nested Calibration Grid", label="Nested Calibration Grid",
description="Enable if images contain nested calibration grids. These grids must be centered on the image center.", description="Enable if images contain nested calibration grids. These grids must be centered on the image center.",
value=False, value=False,
invalidate=True,
), ),
desc.BoolParam( desc.BoolParam(
name="doubleSize", name="doubleSize",
label="Double Size", label="Double Size",
description="Double the image size prior to processing.", description="Double the image size prior to processing.",
value=False, value=False,
invalidate=True,
), ),
desc.BoolParam( desc.BoolParam(
name="ignorePixelAspectRatio", name="ignorePixelAspectRatio",
label="Ignore Pixel Aspect Ratio", label="Ignore Pixel Aspect Ratio",
description="Ignore pixel aspect ratio for detection.", description="Ignore pixel aspect ratio for detection.",
value=False, value=False,
invalidate=True,
), ),
desc.BoolParam( desc.BoolParam(
name="exportDebugImages", name="exportDebugImages",
label="Export Debug Images", label="Export Debug Images",
description="Export debug images.", description="Export debug images.",
value=False, value=False,
invalidate=True,
), ),
desc.ChoiceParam( desc.ChoiceParam(
name="verboseLevel", name="verboseLevel",
@ -59,7 +54,6 @@ The detection method also supports nested calibration grids.
values=VERBOSE_LEVEL, values=VERBOSE_LEVEL,
value="info", value="info",
exclusive=True, exclusive=True,
invalidate=False,
), ),
] ]
@ -69,7 +63,6 @@ The detection method also supports nested calibration grids.
label="Folder", label="Folder",
description="Output folder.", description="Output folder.",
value=desc.Node.internalFolder, value=desc.Node.internalFolder,
invalidate=False,
), ),
desc.File( desc.File(
name="checkerLines", name="checkerLines",
@ -79,6 +72,5 @@ The detection method also supports nested calibration grids.
semantic="image", semantic="image",
value=desc.Node.internalFolder + "<VIEW_ID>.png", value=desc.Node.internalFolder + "<VIEW_ID>.png",
group="", # do not export on the command line group="", # do not export on the command line
invalidate=False,
), ),
] ]

View file

@ -28,7 +28,6 @@ If multiple color charts are submitted, only the first one will be taken in acco
label="Color Checker Data", label="Color Checker Data",
description="Position and colorimetric data of the color checker.", description="Position and colorimetric data of the color checker.",
value="", value="",
invalidate=True,
), ),
desc.File( desc.File(
name="input", name="input",
@ -36,7 +35,6 @@ If multiple color charts are submitted, only the first one will be taken in acco
description="Input SfMData file, image filenames or regex(es) on the image file path.\n" description="Input SfMData file, image filenames or regex(es) on the image file path.\n"
"Supported regex: '#' matches a single digit, '@' one or more digits, '?' one character and '*' zero or more.", "Supported regex: '#' matches a single digit, '@' one or more digits, '?' one character and '*' zero or more.",
value="", value="",
invalidate=True,
), ),
desc.ChoiceParam( desc.ChoiceParam(
name="extension", name="extension",
@ -45,7 +43,6 @@ If multiple color charts are submitted, only the first one will be taken in acco
value="exr", value="exr",
values=["exr", ""], values=["exr", ""],
exclusive=True, exclusive=True,
invalidate=True,
), ),
desc.ChoiceParam( desc.ChoiceParam(
name="storageDataType", name="storageDataType",
@ -58,7 +55,6 @@ If multiple color charts are submitted, only the first one will be taken in acco
values=EXR_STORAGE_DATA_TYPE, values=EXR_STORAGE_DATA_TYPE,
value="float", value="float",
exclusive=True, exclusive=True,
invalidate=True,
), ),
desc.ChoiceParam( desc.ChoiceParam(
name="verboseLevel", name="verboseLevel",
@ -67,7 +63,6 @@ If multiple color charts are submitted, only the first one will be taken in acco
values=VERBOSE_LEVEL, values=VERBOSE_LEVEL,
value="info", value="info",
exclusive=True, exclusive=True,
invalidate=False,
), ),
] ]
@ -77,7 +72,6 @@ If multiple color charts are submitted, only the first one will be taken in acco
label="SfMData", label="SfMData",
description="Output SfMData.", description="Output SfMData.",
value=lambda attr: (desc.Node.internalFolder + os.path.basename(attr.node.input.value)) if (os.path.splitext(attr.node.input.value)[1] in [".abc", ".sfm"]) else "", value=lambda attr: (desc.Node.internalFolder + os.path.basename(attr.node.input.value)) if (os.path.splitext(attr.node.input.value)[1] in [".abc", ".sfm"]) else "",
invalidate=False,
group="", # do not export on the command line group="", # do not export on the command line
), ),
desc.File( desc.File(
@ -85,6 +79,5 @@ If multiple color charts are submitted, only the first one will be taken in acco
label="Folder", label="Folder",
description="Output images folder.", description="Output images folder.",
value=desc.Node.internalFolder, value=desc.Node.internalFolder,
invalidate=False,
), ),
] ]

View file

@ -34,7 +34,6 @@ Dev notes:
description="SfMData file input, image filenames or regex(es) on the image file path.\n" description="SfMData file input, image filenames or regex(es) on the image file path.\n"
"Supported regex: '#' matches a single digit, '@' one or more digits, '?' one character and '*' zero or more.", "Supported regex: '#' matches a single digit, '@' one or more digits, '?' one character and '*' zero or more.",
value="", value="",
invalidate=True,
), ),
desc.IntParam( desc.IntParam(
name="maxCount", name="maxCount",
@ -42,7 +41,6 @@ Dev notes:
description="Maximum color charts count to detect in a single image.", description="Maximum color charts count to detect in a single image.",
value=1, value=1,
range=(1, 3, 1), range=(1, 3, 1),
invalidate=True,
advanced=True, advanced=True,
), ),
desc.BoolParam( desc.BoolParam(
@ -50,7 +48,6 @@ Dev notes:
label="Debug", label="Debug",
description="If checked, debug data will be generated.", description="If checked, debug data will be generated.",
value=False, value=False,
invalidate=True,
), ),
desc.ChoiceParam( desc.ChoiceParam(
name="verboseLevel", name="verboseLevel",
@ -59,7 +56,6 @@ Dev notes:
values=VERBOSE_LEVEL, values=VERBOSE_LEVEL,
value="info", value="info",
exclusive=True, exclusive=True,
invalidate=False,
), ),
] ]
@ -69,6 +65,5 @@ Dev notes:
label="Color Checker Data", label="Color Checker Data",
description="Output position and colorimetric data extracted from detected color checkers in the images.", description="Output position and colorimetric data extracted from detected color checkers in the images.",
value=desc.Node.internalFolder + "/ccheckers.json", value=desc.Node.internalFolder + "/ccheckers.json",
invalidate=False,
), ),
] ]

View file

@ -19,7 +19,6 @@ class ConvertDistortion(desc.AVCommandLineNode):
label="Input", label="Input",
description="Input SfMData file.", description="Input SfMData file.",
value="", value="",
invalidate=True,
), ),
desc.ChoiceParam( desc.ChoiceParam(
name="from", name="from",
@ -28,7 +27,6 @@ class ConvertDistortion(desc.AVCommandLineNode):
value="distortion", value="distortion",
values=["distortion", "undistortion"], values=["distortion", "undistortion"],
exclusive=True, exclusive=True,
invalidate=True,
), ),
desc.ChoiceParam( desc.ChoiceParam(
name="to", name="to",
@ -37,7 +35,6 @@ class ConvertDistortion(desc.AVCommandLineNode):
value="undistortion", value="undistortion",
values=["distortion", "undistortion"], values=["distortion", "undistortion"],
exclusive=True, exclusive=True,
invalidate=True,
), ),
desc.ChoiceParam( desc.ChoiceParam(
name="verboseLevel", name="verboseLevel",
@ -46,7 +43,6 @@ class ConvertDistortion(desc.AVCommandLineNode):
values=VERBOSE_LEVEL, values=VERBOSE_LEVEL,
value="info", value="info",
exclusive=True, exclusive=True,
invalidate=False,
), ),
] ]
@ -56,6 +52,5 @@ class ConvertDistortion(desc.AVCommandLineNode):
label="Output", label="Output",
description="Path to the output SfMData file.", description="Path to the output SfMData file.",
value=desc.Node.internalFolder + "sfm.abc", value=desc.Node.internalFolder + "sfm.abc",
invalidate=False,
), ),
] ]

View file

@ -16,7 +16,6 @@ class ConvertMesh(desc.AVCommandLineNode):
label="Input Mesh", label="Input Mesh",
description="Input mesh (*.obj, *.mesh, *.meshb, *.ply, *.off, *.stl).", description="Input mesh (*.obj, *.mesh, *.meshb, *.ply, *.off, *.stl).",
value="", value="",
invalidate=True,
), ),
desc.ChoiceParam( desc.ChoiceParam(
name="outputMeshFileType", name="outputMeshFileType",
@ -25,7 +24,6 @@ class ConvertMesh(desc.AVCommandLineNode):
value="obj", value="obj",
values=["gltf", "obj", "fbx", "stl"], values=["gltf", "obj", "fbx", "stl"],
exclusive=True, exclusive=True,
invalidate=True,
group="", group="",
), ),
desc.ChoiceParam( desc.ChoiceParam(
@ -35,7 +33,6 @@ class ConvertMesh(desc.AVCommandLineNode):
values=VERBOSE_LEVEL, values=VERBOSE_LEVEL,
value="info", value="info",
exclusive=True, exclusive=True,
invalidate=False,
), ),
] ]
@ -45,6 +42,5 @@ class ConvertMesh(desc.AVCommandLineNode):
label="Mesh", label="Mesh",
description="Output mesh (*.obj, *.mesh, *.meshb, *.ply, *.off, *.stl).", description="Output mesh (*.obj, *.mesh, *.meshb, *.ply, *.off, *.stl).",
value=desc.Node.internalFolder + "mesh." + "{outputMeshFileTypeValue}", value=desc.Node.internalFolder + "mesh." + "{outputMeshFileTypeValue}",
invalidate=False,
), ),
] ]

View file

@ -20,7 +20,6 @@ It can also be used to remove specific parts of from an SfM scene (like filter a
label="Input", label="Input",
description="Input SfMData file.", description="Input SfMData file.",
value="", value="",
invalidate=True,
), ),
desc.ChoiceParam( desc.ChoiceParam(
name="fileExt", name="fileExt",
@ -29,7 +28,6 @@ It can also be used to remove specific parts of from an SfM scene (like filter a
value="abc", value="abc",
values=["abc", "sfm", "json", "ply", "baf"], values=["abc", "sfm", "json", "ply", "baf"],
exclusive=True, exclusive=True,
invalidate=True,
group="", # exclude from command line group="", # exclude from command line
), ),
desc.ChoiceParam( desc.ChoiceParam(
@ -39,7 +37,6 @@ It can also be used to remove specific parts of from an SfM scene (like filter a
values=DESCRIBER_TYPES, values=DESCRIBER_TYPES,
value=["dspsift"], value=["dspsift"],
exclusive=False, exclusive=False,
invalidate=True,
joinChar=",", joinChar=",",
), ),
desc.ListAttribute( desc.ListAttribute(
@ -48,7 +45,6 @@ It can also be used to remove specific parts of from an SfM scene (like filter a
label="Image ID", label="Image ID",
description="UID or path of an image to add to the white list.", description="UID or path of an image to add to the white list.",
value="", value="",
invalidate=True,
), ),
name="imageWhiteList", name="imageWhiteList",
label="Image White List", label="Image White List",
@ -59,35 +55,30 @@ It can also be used to remove specific parts of from an SfM scene (like filter a
label="Views", label="Views",
description="Export views.", description="Export views.",
value=True, value=True,
invalidate=True,
), ),
desc.BoolParam( desc.BoolParam(
name="intrinsics", name="intrinsics",
label="Intrinsics", label="Intrinsics",
description="Export intrinsics.", description="Export intrinsics.",
value=True, value=True,
invalidate=True,
), ),
desc.BoolParam( desc.BoolParam(
name="extrinsics", name="extrinsics",
label="Extrinsics", label="Extrinsics",
description="Export extrinsics.", description="Export extrinsics.",
value=True, value=True,
invalidate=True,
), ),
desc.BoolParam( desc.BoolParam(
name="structure", name="structure",
label="Structure", label="Structure",
description="Export structure.", description="Export structure.",
value=True, value=True,
invalidate=True,
), ),
desc.BoolParam( desc.BoolParam(
name="observations", name="observations",
label="Observations", label="Observations",
description="Export observations.", description="Export observations.",
value=True, value=True,
invalidate=True,
), ),
desc.ChoiceParam( desc.ChoiceParam(
name="verboseLevel", name="verboseLevel",
@ -96,7 +87,6 @@ It can also be used to remove specific parts of from an SfM scene (like filter a
values=VERBOSE_LEVEL, values=VERBOSE_LEVEL,
value="info", value="info",
exclusive=True, exclusive=True,
invalidate=False,
), ),
] ]
@ -106,6 +96,5 @@ It can also be used to remove specific parts of from an SfM scene (like filter a
label="Output", label="Output",
description="Path to the output SfMData file.", description="Path to the output SfMData file.",
value=desc.Node.internalFolder + "sfm.{fileExtValue}", value=desc.Node.internalFolder + "sfm.{fileExtValue}",
invalidate=False,
), ),
] ]

View file

@ -28,7 +28,6 @@ Use a downscale factor of one (full-resolution) only if the quality of the input
label="SfMData", label="SfMData",
description="Input SfMData file.", description="Input SfMData file.",
value="", value="",
invalidate=True,
), ),
desc.File( desc.File(
name="imagesFolder", name="imagesFolder",
@ -36,7 +35,6 @@ Use a downscale factor of one (full-resolution) only if the quality of the input
description="Use images from a specific folder instead of those specified in the SfMData file.\n" description="Use images from a specific folder instead of those specified in the SfMData file.\n"
"Filename should be the image UID.", "Filename should be the image UID.",
value="", value="",
invalidate=True,
), ),
desc.ChoiceParam( desc.ChoiceParam(
name="downscale", name="downscale",
@ -48,7 +46,6 @@ Use a downscale factor of one (full-resolution) only if the quality of the input
value=2, value=2,
values=[1, 2, 4, 8, 16], values=[1, 2, 4, 8, 16],
exclusive=True, exclusive=True,
invalidate=True,
), ),
desc.FloatParam( desc.FloatParam(
name="minViewAngle", name="minViewAngle",
@ -56,7 +53,6 @@ Use a downscale factor of one (full-resolution) only if the quality of the input
description="Minimum angle between two views (select the neighbouring cameras, select depth planes from epipolar segment point).", description="Minimum angle between two views (select the neighbouring cameras, select depth planes from epipolar segment point).",
value=2.0, value=2.0,
range=(0.0, 10.0, 0.1), range=(0.0, 10.0, 0.1),
invalidate=True,
advanced=True, advanced=True,
), ),
desc.FloatParam( desc.FloatParam(
@ -65,7 +61,6 @@ Use a downscale factor of one (full-resolution) only if the quality of the input
description="Maximum angle between two views (select the neighbouring cameras, select depth planes from epipolar segment point).", description="Maximum angle between two views (select the neighbouring cameras, select depth planes from epipolar segment point).",
value=70.0, value=70.0,
range=(10.0, 120.0, 1.0), range=(10.0, 120.0, 1.0),
invalidate=True,
advanced=True, advanced=True,
), ),
desc.GroupAttribute( desc.GroupAttribute(
@ -80,7 +75,6 @@ Use a downscale factor of one (full-resolution) only if the quality of the input
description="Maximum tile buffer width.", description="Maximum tile buffer width.",
value=1024, value=1024,
range=(-1, 2000, 10), range=(-1, 2000, 10),
invalidate=True,
), ),
desc.IntParam( desc.IntParam(
name="tileBufferHeight", name="tileBufferHeight",
@ -88,7 +82,6 @@ Use a downscale factor of one (full-resolution) only if the quality of the input
description="Maximum tile buffer height.", description="Maximum tile buffer height.",
value=1024, value=1024,
range=(-1, 2000, 10), range=(-1, 2000, 10),
invalidate=True,
), ),
desc.IntParam( desc.IntParam(
name="tilePadding", name="tilePadding",
@ -96,7 +89,6 @@ Use a downscale factor of one (full-resolution) only if the quality of the input
description="Buffer padding for overlapping tiles.", description="Buffer padding for overlapping tiles.",
value=64, value=64,
range=(0, 500, 1), range=(0, 500, 1),
invalidate=True,
), ),
desc.BoolParam( desc.BoolParam(
name="autoAdjustSmallImage", name="autoAdjustSmallImage",
@ -104,7 +96,6 @@ Use a downscale factor of one (full-resolution) only if the quality of the input
description="Automatically adjust depth map parameters if images are smaller than one tile\n" description="Automatically adjust depth map parameters if images are smaller than one tile\n"
"(maxTCamsPerTile = maxTCams, adjust step if needed).", "(maxTCamsPerTile = maxTCams, adjust step if needed).",
value=True, value=True,
invalidate=True,
advanced=True, advanced=True,
), ),
], ],
@ -114,7 +105,6 @@ Use a downscale factor of one (full-resolution) only if the quality of the input
label="Choose Neighbour Cameras Per Tile", label="Choose Neighbour Cameras Per Tile",
description="Choose neighbour cameras per tile or globally to the image.", description="Choose neighbour cameras per tile or globally to the image.",
value=True, value=True,
invalidate=True,
advanced=True, advanced=True,
), ),
desc.IntParam( desc.IntParam(
@ -123,7 +113,6 @@ Use a downscale factor of one (full-resolution) only if the quality of the input
description="Maximum number of neighbour cameras per image.", description="Maximum number of neighbour cameras per image.",
value=10, value=10,
range=(1, 20, 1), range=(1, 20, 1),
invalidate=True,
), ),
desc.GroupAttribute( desc.GroupAttribute(
name="sgm", name="sgm",
@ -138,7 +127,6 @@ Use a downscale factor of one (full-resolution) only if the quality of the input
description="Downscale factor applied on source images for the SGM step (in addition to the global downscale).", description="Downscale factor applied on source images for the SGM step (in addition to the global downscale).",
value=2, value=2,
range=(-1, 10, 1), range=(-1, 10, 1),
invalidate=True,
), ),
desc.IntParam( desc.IntParam(
name="sgmStepXY", name="sgmStepXY",
@ -146,7 +134,6 @@ Use a downscale factor of one (full-resolution) only if the quality of the input
description="The step is used to compute the similarity volume for one pixel over N (in the XY image plane).", description="The step is used to compute the similarity volume for one pixel over N (in the XY image plane).",
value=2, value=2,
range=(-1, 10, 1), range=(-1, 10, 1),
invalidate=True,
), ),
desc.IntParam( desc.IntParam(
name="sgmStepZ", name="sgmStepZ",
@ -156,7 +143,6 @@ Use a downscale factor of one (full-resolution) only if the quality of the input
"This value will be adjusted in all case to fit in the max memory (sgmMaxDepths).", "This value will be adjusted in all case to fit in the max memory (sgmMaxDepths).",
value=-1, value=-1,
range=(-1, 10, 1), range=(-1, 10, 1),
invalidate=True,
), ),
desc.IntParam( desc.IntParam(
name="sgmMaxTCamsPerTile", name="sgmMaxTCamsPerTile",
@ -164,7 +150,6 @@ Use a downscale factor of one (full-resolution) only if the quality of the input
description="Maximum number of neighbour cameras used per tile.", description="Maximum number of neighbour cameras used per tile.",
value=4, value=4,
range=(1, 20, 1), range=(1, 20, 1),
invalidate=True,
), ),
desc.IntParam( desc.IntParam(
name="sgmWSH", name="sgmWSH",
@ -172,7 +157,6 @@ Use a downscale factor of one (full-resolution) only if the quality of the input
description="Half-size of the patch used to compute the similarity. Patch width is wsh*2+1.", description="Half-size of the patch used to compute the similarity. Patch width is wsh*2+1.",
value=4, value=4,
range=(1, 20, 1), range=(1, 20, 1),
invalidate=True,
advanced=True, advanced=True,
), ),
desc.BoolParam( desc.BoolParam(
@ -180,7 +164,6 @@ Use a downscale factor of one (full-resolution) only if the quality of the input
label="Use SfM Landmarks", label="Use SfM Landmarks",
description="Use landmarks from Structure-from-Motion as input seeds to define min/max depth ranges.", description="Use landmarks from Structure-from-Motion as input seeds to define min/max depth ranges.",
value=True, value=True,
invalidate=True,
advanced=True, advanced=True,
), ),
desc.FloatParam( desc.FloatParam(
@ -189,7 +172,6 @@ Use a downscale factor of one (full-resolution) only if the quality of the input
description="Inflate factor to add margins around SfM seeds.", description="Inflate factor to add margins around SfM seeds.",
value=0.2, value=0.2,
range=(0.0, 2.0, 0.1), range=(0.0, 2.0, 0.1),
invalidate=True,
advanced=True, advanced=True,
), ),
desc.FloatParam( desc.FloatParam(
@ -198,7 +180,6 @@ Use a downscale factor of one (full-resolution) only if the quality of the input
description="Inflate factor to add margins to the depth thickness.", description="Inflate factor to add margins to the depth thickness.",
value=0.0, value=0.0,
range=(0.0, 2.0, 0.1), range=(0.0, 2.0, 0.1),
invalidate=True,
advanced=True, advanced=True,
), ),
desc.FloatParam( desc.FloatParam(
@ -207,7 +188,6 @@ Use a downscale factor of one (full-resolution) only if the quality of the input
description="Maximum similarity threshold (between 0 and 1) used to filter out poorly supported depth values.", description="Maximum similarity threshold (between 0 and 1) used to filter out poorly supported depth values.",
value=1.0, value=1.0,
range=(0.0, 1.0, 0.01), range=(0.0, 1.0, 0.01),
invalidate=True,
advanced=True, advanced=True,
), ),
desc.FloatParam( desc.FloatParam(
@ -216,7 +196,6 @@ Use a downscale factor of one (full-resolution) only if the quality of the input
description="GammaC threshold used for similarity computation.", description="GammaC threshold used for similarity computation.",
value=5.5, value=5.5,
range=(0.0, 30.0, 0.5), range=(0.0, 30.0, 0.5),
invalidate=True,
advanced=True, advanced=True,
), ),
desc.FloatParam( desc.FloatParam(
@ -225,7 +204,6 @@ Use a downscale factor of one (full-resolution) only if the quality of the input
description="GammaP threshold used for similarity computation.", description="GammaP threshold used for similarity computation.",
value=8.0, value=8.0,
range=(0.0, 30.0, 0.5), range=(0.0, 30.0, 0.5),
invalidate=True,
advanced=True, advanced=True,
), ),
desc.FloatParam( desc.FloatParam(
@ -234,7 +212,6 @@ Use a downscale factor of one (full-resolution) only if the quality of the input
description="P1 parameter for SGM filtering.", description="P1 parameter for SGM filtering.",
value=10.0, value=10.0,
range=(0.0, 255.0, 0.5), range=(0.0, 255.0, 0.5),
invalidate=True,
advanced=True, advanced=True,
), ),
desc.FloatParam( desc.FloatParam(
@ -243,7 +220,6 @@ Use a downscale factor of one (full-resolution) only if the quality of the input
description="P2 weighting parameter for SGM filtering.", description="P2 weighting parameter for SGM filtering.",
value=100.0, value=100.0,
range=(-255.0, 255.0, 0.5), range=(-255.0, 255.0, 0.5),
invalidate=True,
advanced=True, advanced=True,
), ),
desc.IntParam( desc.IntParam(
@ -252,7 +228,6 @@ Use a downscale factor of one (full-resolution) only if the quality of the input
description="Maximum number of depths in the similarity volume.", description="Maximum number of depths in the similarity volume.",
value=1500, value=1500,
range=(1, 5000, 1), range=(1, 5000, 1),
invalidate=True,
advanced=True, advanced=True,
), ),
desc.StringParam( desc.StringParam(
@ -260,7 +235,6 @@ Use a downscale factor of one (full-resolution) only if the quality of the input
label="Filtering Axes", label="Filtering Axes",
description="Define axes for the filtering of the similarity volume.", description="Define axes for the filtering of the similarity volume.",
value="YX", value="YX",
invalidate=True,
advanced=True, advanced=True,
), ),
desc.BoolParam( desc.BoolParam(
@ -268,7 +242,6 @@ Use a downscale factor of one (full-resolution) only if the quality of the input
label="Depth List Per Tile", label="Depth List Per Tile",
description="Select the list of depth planes per tile or globally to the image.", description="Select the list of depth planes per tile or globally to the image.",
value=True, value=True,
invalidate=True,
advanced=True, advanced=True,
), ),
desc.BoolParam( desc.BoolParam(
@ -276,7 +249,6 @@ Use a downscale factor of one (full-resolution) only if the quality of the input
label="Consistent Scale", label="Consistent Scale",
description="Compare patch with consistent scale for similarity volume computation.", description="Compare patch with consistent scale for similarity volume computation.",
value=False, value=False,
invalidate=True,
), ),
], ],
), ),
@ -292,7 +264,6 @@ Use a downscale factor of one (full-resolution) only if the quality of the input
label="Enable", label="Enable",
description="Enable depth/similarity map refinement process.", description="Enable depth/similarity map refinement process.",
value=True, value=True,
invalidate=True,
), ),
desc.IntParam( desc.IntParam(
name="refineScale", name="refineScale",
@ -300,7 +271,6 @@ Use a downscale factor of one (full-resolution) only if the quality of the input
description="Downscale factor applied on source images for the Refine step (in addition to the global downscale).", description="Downscale factor applied on source images for the Refine step (in addition to the global downscale).",
value=1, value=1,
range=(-1, 10, 1), range=(-1, 10, 1),
invalidate=True,
enabled=lambda node: node.refine.refineEnabled.value, enabled=lambda node: node.refine.refineEnabled.value,
), ),
desc.IntParam( desc.IntParam(
@ -309,7 +279,6 @@ Use a downscale factor of one (full-resolution) only if the quality of the input
description="The step is used to compute the refine volume for one pixel over N (in the XY image plane).", description="The step is used to compute the refine volume for one pixel over N (in the XY image plane).",
value=1, value=1,
range=(-1, 10, 1), range=(-1, 10, 1),
invalidate=True,
enabled=lambda node: node.refine.refineEnabled.value, enabled=lambda node: node.refine.refineEnabled.value,
), ),
desc.IntParam( desc.IntParam(
@ -318,7 +287,6 @@ Use a downscale factor of one (full-resolution) only if the quality of the input
description="Maximum number of neighbour cameras used per tile.", description="Maximum number of neighbour cameras used per tile.",
value=4, value=4,
range=(1, 20, 1), range=(1, 20, 1),
invalidate=True,
enabled=lambda node: node.refine.refineEnabled.value, enabled=lambda node: node.refine.refineEnabled.value,
), ),
desc.IntParam( desc.IntParam(
@ -327,7 +295,6 @@ Use a downscale factor of one (full-resolution) only if the quality of the input
description="The number of subsamples used to extract the best depth from the refine volume (sliding gaussian window precision).", description="The number of subsamples used to extract the best depth from the refine volume (sliding gaussian window precision).",
value=10, value=10,
range=(1, 30, 1), range=(1, 30, 1),
invalidate=True,
advanced=True, advanced=True,
enabled=lambda node: node.refine.refineEnabled.value, enabled=lambda node: node.refine.refineEnabled.value,
), ),
@ -339,7 +306,6 @@ Use a downscale factor of one (full-resolution) only if the quality of the input
"for which we evaluate the similarity with a finer z sampling.", "for which we evaluate the similarity with a finer z sampling.",
value=15, value=15,
range=(1, 50, 1), range=(1, 50, 1),
invalidate=True,
advanced=True, advanced=True,
enabled=lambda node: node.refine.refineEnabled.value, enabled=lambda node: node.refine.refineEnabled.value,
), ),
@ -349,7 +315,6 @@ Use a downscale factor of one (full-resolution) only if the quality of the input
description="Half-size of the patch used to compute the similarity. Patch width is wsh*2+1.", description="Half-size of the patch used to compute the similarity. Patch width is wsh*2+1.",
value=3, value=3,
range=(1, 20, 1), range=(1, 20, 1),
invalidate=True,
advanced=True, advanced=True,
enabled=lambda node: node.refine.refineEnabled.value, enabled=lambda node: node.refine.refineEnabled.value,
), ),
@ -359,7 +324,6 @@ Use a downscale factor of one (full-resolution) only if the quality of the input
description="Sigma (2*sigma^2) of the Gaussian filter used to extract the best depth from the refine volume.", description="Sigma (2*sigma^2) of the Gaussian filter used to extract the best depth from the refine volume.",
value=15.0, value=15.0,
range=(0.0, 30.0, 0.5), range=(0.0, 30.0, 0.5),
invalidate=True,
advanced=True, advanced=True,
enabled=lambda node: node.refine.refineEnabled.value, enabled=lambda node: node.refine.refineEnabled.value,
), ),
@ -369,7 +333,6 @@ Use a downscale factor of one (full-resolution) only if the quality of the input
description="GammaC threshold used for similarity computation.", description="GammaC threshold used for similarity computation.",
value=15.5, value=15.5,
range=(0.0, 30.0, 0.5), range=(0.0, 30.0, 0.5),
invalidate=True,
advanced=True, advanced=True,
enabled=lambda node: node.refine.refineEnabled.value, enabled=lambda node: node.refine.refineEnabled.value,
), ),
@ -379,7 +342,6 @@ Use a downscale factor of one (full-resolution) only if the quality of the input
description="GammaP threshold used for similarity computation.", description="GammaP threshold used for similarity computation.",
value=8.0, value=8.0,
range=(0.0, 30.0, 0.5), range=(0.0, 30.0, 0.5),
invalidate=True,
advanced=True, advanced=True,
enabled=lambda node: node.refine.refineEnabled.value, enabled=lambda node: node.refine.refineEnabled.value,
), ),
@ -388,7 +350,6 @@ Use a downscale factor of one (full-resolution) only if the quality of the input
label="Interpolate Middle Depth", label="Interpolate Middle Depth",
description="Enable middle depth bilinear interpolation.", description="Enable middle depth bilinear interpolation.",
value=False, value=False,
invalidate=True,
enabled=lambda node: node.refine.refineEnabled.value, enabled=lambda node: node.refine.refineEnabled.value,
), ),
desc.BoolParam( desc.BoolParam(
@ -396,7 +357,6 @@ Use a downscale factor of one (full-resolution) only if the quality of the input
label="Consistent Scale", label="Consistent Scale",
description="Compare patch with consistent scale for similarity volume computation.", description="Compare patch with consistent scale for similarity volume computation.",
value=False, value=False,
invalidate=True,
enabled=lambda node: node.refine.refineEnabled.value, enabled=lambda node: node.refine.refineEnabled.value,
), ),
], ],
@ -412,7 +372,6 @@ Use a downscale factor of one (full-resolution) only if the quality of the input
label="Enable", label="Enable",
description="Enable depth/similarity map post-process color optimization.", description="Enable depth/similarity map post-process color optimization.",
value=True, value=True,
invalidate=True,
), ),
desc.IntParam( desc.IntParam(
name="colorOptimizationNbIterations", name="colorOptimizationNbIterations",
@ -420,7 +379,6 @@ Use a downscale factor of one (full-resolution) only if the quality of the input
description="Number of iterations for the optimization.", description="Number of iterations for the optimization.",
value=100, value=100,
range=(1, 500, 10), range=(1, 500, 10),
invalidate=True,
advanced=True, advanced=True,
enabled=lambda node: node.colorOptimization.colorOptimizationEnabled.value, enabled=lambda node: node.colorOptimization.colorOptimizationEnabled.value,
), ),
@ -438,7 +396,6 @@ Use a downscale factor of one (full-resolution) only if the quality of the input
label="Enable For SGM", label="Enable For SGM",
description="Enable custom patch pattern for similarity volume computation at the SGM step.", description="Enable custom patch pattern for similarity volume computation at the SGM step.",
value=False, value=False,
invalidate=True,
advanced=True, advanced=True,
), ),
desc.BoolParam( desc.BoolParam(
@ -446,7 +403,6 @@ Use a downscale factor of one (full-resolution) only if the quality of the input
label="Enable For Refine", label="Enable For Refine",
description="Enable custom patch pattern for similarity volume computation at the Refine step.", description="Enable custom patch pattern for similarity volume computation at the Refine step.",
value=False, value=False,
invalidate=True,
advanced=True, advanced=True,
), ),
desc.ListAttribute( desc.ListAttribute(
@ -469,7 +425,6 @@ Use a downscale factor of one (full-resolution) only if the quality of the input
value="full", value="full",
values=["full", "circle"], values=["full", "circle"],
exclusive=True, exclusive=True,
invalidate=True,
), ),
desc.FloatParam( desc.FloatParam(
name="customPatchPatternSubpartRadius", name="customPatchPatternSubpartRadius",
@ -477,7 +432,6 @@ Use a downscale factor of one (full-resolution) only if the quality of the input
description="Patch pattern subpart half-width or circle radius.", description="Patch pattern subpart half-width or circle radius.",
value=2.5, value=2.5,
range=(0.5, 30.0, 0.1), range=(0.5, 30.0, 0.1),
invalidate=True,
), ),
desc.IntParam( desc.IntParam(
name="customPatchPatternSubpartNbCoords", name="customPatchPatternSubpartNbCoords",
@ -485,7 +439,6 @@ Use a downscale factor of one (full-resolution) only if the quality of the input
description="Patch pattern subpart number of coordinates (for circle or ignore).", description="Patch pattern subpart number of coordinates (for circle or ignore).",
value=12, value=12,
range=(3, 24, 1), range=(3, 24, 1),
invalidate=True,
), ),
desc.IntParam( desc.IntParam(
name="customPatchPatternSubpartLevel", name="customPatchPatternSubpartLevel",
@ -493,7 +446,6 @@ Use a downscale factor of one (full-resolution) only if the quality of the input
description="Patch pattern subpart image level.", description="Patch pattern subpart image level.",
value=0, value=0,
range=(0, 2, 1), range=(0, 2, 1),
invalidate=True,
), ),
desc.FloatParam( desc.FloatParam(
name="customPatchPatternSubpartWeight", name="customPatchPatternSubpartWeight",
@ -501,7 +453,6 @@ Use a downscale factor of one (full-resolution) only if the quality of the input
description="Patch pattern subpart weight.", description="Patch pattern subpart weight.",
value=1.0, value=1.0,
range=(0.0, 1.0, 0.1), range=(0.0, 1.0, 0.1),
invalidate=True,
), ),
], ],
), ),
@ -511,7 +462,6 @@ Use a downscale factor of one (full-resolution) only if the quality of the input
label="Group Subparts Per Level", label="Group Subparts Per Level",
description="Group all subparts with the same image level.", description="Group all subparts with the same image level.",
value=False, value=False,
invalidate=True,
advanced=True, advanced=True,
enabled=lambda node: (node.customPatchPattern.sgmUseCustomPatchPattern.value or node.customPatchPattern.refineUseCustomPatchPattern.value), enabled=lambda node: (node.customPatchPattern.sgmUseCustomPatchPattern.value or node.customPatchPattern.refineUseCustomPatchPattern.value),
), ),
@ -530,7 +480,6 @@ Use a downscale factor of one (full-resolution) only if the quality of the input
label="Export Depth Maps", label="Export Depth Maps",
description="Export intermediate depth/similarity maps from the SGM and Refine steps.", description="Export intermediate depth/similarity maps from the SGM and Refine steps.",
value=False, value=False,
invalidate=True,
advanced=True, advanced=True,
), ),
desc.BoolParam( desc.BoolParam(
@ -538,7 +487,6 @@ Use a downscale factor of one (full-resolution) only if the quality of the input
label="Export Normal Maps", label="Export Normal Maps",
description="Export intermediate normal maps from the SGM and Refine steps.", description="Export intermediate normal maps from the SGM and Refine steps.",
value=False, value=False,
invalidate=True,
advanced=True, advanced=True,
), ),
desc.BoolParam( desc.BoolParam(
@ -546,7 +494,6 @@ Use a downscale factor of one (full-resolution) only if the quality of the input
label="Export Volumes", label="Export Volumes",
description="Export intermediate full similarity volumes from the SGM and Refine steps.", description="Export intermediate full similarity volumes from the SGM and Refine steps.",
value=False, value=False,
invalidate=True,
advanced=True, advanced=True,
), ),
desc.BoolParam( desc.BoolParam(
@ -554,7 +501,6 @@ Use a downscale factor of one (full-resolution) only if the quality of the input
label="Export Cross Volumes", label="Export Cross Volumes",
description="Export intermediate similarity cross volumes from the SGM and Refine steps.", description="Export intermediate similarity cross volumes from the SGM and Refine steps.",
value=False, value=False,
invalidate=True,
advanced=True, advanced=True,
), ),
desc.BoolParam( desc.BoolParam(
@ -562,7 +508,6 @@ Use a downscale factor of one (full-resolution) only if the quality of the input
label="Export Cut Volumes", label="Export Cut Volumes",
description="Export intermediate similarity topographic cut volumes from the SGM and Refine steps.", description="Export intermediate similarity topographic cut volumes from the SGM and Refine steps.",
value=False, value=False,
invalidate=True,
advanced=True, advanced=True,
), ),
desc.BoolParam( desc.BoolParam(
@ -570,7 +515,6 @@ Use a downscale factor of one (full-resolution) only if the quality of the input
label="Export 9 Points", label="Export 9 Points",
description="Export intermediate volumes 9 points from the SGM and Refine steps in CSV files.", description="Export intermediate volumes 9 points from the SGM and Refine steps in CSV files.",
value=False, value=False,
invalidate=True,
advanced=True, advanced=True,
), ),
desc.BoolParam( desc.BoolParam(
@ -578,7 +522,6 @@ Use a downscale factor of one (full-resolution) only if the quality of the input
label="Export Tile Pattern", label="Export Tile Pattern",
description="Export the bounding boxes of tiles volumes as meshes. This allows to visualize the depth map search areas.", description="Export the bounding boxes of tiles volumes as meshes. This allows to visualize the depth map search areas.",
value=False, value=False,
invalidate=True,
advanced=True, advanced=True,
), ),
], ],
@ -599,7 +542,6 @@ Use a downscale factor of one (full-resolution) only if the quality of the input
values=VERBOSE_LEVEL, values=VERBOSE_LEVEL,
value="info", value="info",
exclusive=True, exclusive=True,
invalidate=False,
), ),
] ]
@ -609,7 +551,6 @@ Use a downscale factor of one (full-resolution) only if the quality of the input
label="Folder", label="Folder",
description="Output folder for generated depth maps.", description="Output folder for generated depth maps.",
value=desc.Node.internalFolder, value=desc.Node.internalFolder,
invalidate=False,
), ),
# these attributes are only here to describe more accurately the output of the node # these attributes are only here to describe more accurately the output of the node
# by specifying that it generates 2 sequences of images # by specifying that it generates 2 sequences of images
@ -620,7 +561,6 @@ Use a downscale factor of one (full-resolution) only if the quality of the input
description="Generated depth maps.", description="Generated depth maps.",
semantic="image", semantic="image",
value=desc.Node.internalFolder + "<VIEW_ID>_depthMap.exr", value=desc.Node.internalFolder + "<VIEW_ID>_depthMap.exr",
invalidate=False,
group="", # do not export on the command line group="", # do not export on the command line
), ),
desc.File( desc.File(
@ -629,7 +569,6 @@ Use a downscale factor of one (full-resolution) only if the quality of the input
description="Generated sim maps.", description="Generated sim maps.",
semantic="image", semantic="image",
value=desc.Node.internalFolder + "<VIEW_ID>_simMap.exr", value=desc.Node.internalFolder + "<VIEW_ID>_simMap.exr",
invalidate=False,
group="", # do not export on the command line group="", # do not export on the command line
), ),
desc.File( desc.File(
@ -637,7 +576,6 @@ Use a downscale factor of one (full-resolution) only if the quality of the input
label="Tile Pattern", label="Tile Pattern",
description="Debug: Tile pattern.", description="Debug: Tile pattern.",
value=desc.Node.internalFolder + "<VIEW_ID>_tilePattern.obj", value=desc.Node.internalFolder + "<VIEW_ID>_tilePattern.obj",
invalidate=False,
group="", # do not export on the command line group="", # do not export on the command line
enabled=lambda node: node.intermediateResults.exportTilePattern.value, enabled=lambda node: node.intermediateResults.exportTilePattern.value,
), ),
@ -647,7 +585,6 @@ Use a downscale factor of one (full-resolution) only if the quality of the input
description="Debug: Depth maps SGM", description="Debug: Depth maps SGM",
semantic="image", semantic="image",
value=desc.Node.internalFolder + "<VIEW_ID>_depthMap_sgm.exr", value=desc.Node.internalFolder + "<VIEW_ID>_depthMap_sgm.exr",
invalidate=False,
group="", # do not export on the command line group="", # do not export on the command line
enabled=lambda node: node.intermediateResults.exportIntermediateDepthSimMaps.value, enabled=lambda node: node.intermediateResults.exportIntermediateDepthSimMaps.value,
), ),
@ -657,7 +594,6 @@ Use a downscale factor of one (full-resolution) only if the quality of the input
description="Debug: Depth maps SGM upscaled.", description="Debug: Depth maps SGM upscaled.",
semantic="image", semantic="image",
value=desc.Node.internalFolder + "<VIEW_ID>_depthMap_sgmUpscaled.exr", value=desc.Node.internalFolder + "<VIEW_ID>_depthMap_sgmUpscaled.exr",
invalidate=False,
group="", # do not export on the command line group="", # do not export on the command line
enabled=lambda node: node.intermediateResults.exportIntermediateDepthSimMaps.value, enabled=lambda node: node.intermediateResults.exportIntermediateDepthSimMaps.value,
), ),
@ -667,7 +603,6 @@ Use a downscale factor of one (full-resolution) only if the quality of the input
description="Debug: Depth maps after refinement", description="Debug: Depth maps after refinement",
semantic="image", semantic="image",
value=desc.Node.internalFolder + "<VIEW_ID>_depthMap_refinedFused.exr", value=desc.Node.internalFolder + "<VIEW_ID>_depthMap_refinedFused.exr",
invalidate=False,
group="", # do not export on the command line group="", # do not export on the command line
enabled=lambda node: node.intermediateResults.exportIntermediateDepthSimMaps.value, enabled=lambda node: node.intermediateResults.exportIntermediateDepthSimMaps.value,
), ),

View file

@ -23,14 +23,12 @@ This allows to filter unstable points before starting the fusion of all depth ma
label="SfMData", label="SfMData",
description="SfMData file.", description="SfMData file.",
value="", value="",
invalidate=True,
), ),
desc.File( desc.File(
name="depthMapsFolder", name="depthMapsFolder",
label="Depth Maps Folder", label="Depth Maps Folder",
description="Input depth maps folder.", description="Input depth maps folder.",
value="", value="",
invalidate=True,
), ),
desc.FloatParam( desc.FloatParam(
name="minViewAngle", name="minViewAngle",
@ -38,7 +36,6 @@ This allows to filter unstable points before starting the fusion of all depth ma
description="Minimum angle between two views.", description="Minimum angle between two views.",
value=2.0, value=2.0,
range=(0.0, 10.0, 0.1), range=(0.0, 10.0, 0.1),
invalidate=True,
advanced=True, advanced=True,
), ),
desc.FloatParam( desc.FloatParam(
@ -47,7 +44,6 @@ This allows to filter unstable points before starting the fusion of all depth ma
description="Maximum angle between two views.", description="Maximum angle between two views.",
value=70.0, value=70.0,
range=(10.0, 120.0, 1.0), range=(10.0, 120.0, 1.0),
invalidate=True,
advanced=True, advanced=True,
), ),
desc.IntParam( desc.IntParam(
@ -56,7 +52,6 @@ This allows to filter unstable points before starting the fusion of all depth ma
description="Number of nearest cameras used for filtering.", description="Number of nearest cameras used for filtering.",
value=10, value=10,
range=(0, 20, 1), range=(0, 20, 1),
invalidate=True,
advanced=True, advanced=True,
), ),
desc.IntParam( desc.IntParam(
@ -65,7 +60,6 @@ This allows to filter unstable points before starting the fusion of all depth ma
description="Minimum number of consistent cameras.", description="Minimum number of consistent cameras.",
value=3, value=3,
range=(0, 10, 1), range=(0, 10, 1),
invalidate=True,
), ),
desc.IntParam( desc.IntParam(
name="minNumOfConsistentCamsWithLowSimilarity", name="minNumOfConsistentCamsWithLowSimilarity",
@ -73,7 +67,6 @@ This allows to filter unstable points before starting the fusion of all depth ma
description="Minimum number of consistent cameras for pixels with weak similarity value.", description="Minimum number of consistent cameras for pixels with weak similarity value.",
value=4, value=4,
range=(0, 10, 1), range=(0, 10, 1),
invalidate=True,
), ),
desc.FloatParam( desc.FloatParam(
name="pixToleranceFactor", name="pixToleranceFactor",
@ -81,7 +74,6 @@ This allows to filter unstable points before starting the fusion of all depth ma
description="Filtering tolerance size factor, in pixels.", description="Filtering tolerance size factor, in pixels.",
value=2.0, value=2.0,
range=(0.001, 10.0, 0.1), range=(0.001, 10.0, 0.1),
invalidate=True,
advanced=True, advanced=True,
), ),
desc.IntParam( desc.IntParam(
@ -90,7 +82,6 @@ This allows to filter unstable points before starting the fusion of all depth ma
description="Filtering size in pixels.", description="Filtering size in pixels.",
value=0, value=0,
range=(0, 10, 1), range=(0, 10, 1),
invalidate=True,
advanced=True, advanced=True,
), ),
desc.IntParam( desc.IntParam(
@ -99,7 +90,6 @@ This allows to filter unstable points before starting the fusion of all depth ma
description="Filtering size in pixels for low similarity.", description="Filtering size in pixels for low similarity.",
value=0, value=0,
range=(0, 10, 1), range=(0, 10, 1),
invalidate=True,
advanced=True, advanced=True,
), ),
desc.BoolParam( desc.BoolParam(
@ -107,7 +97,6 @@ This allows to filter unstable points before starting the fusion of all depth ma
label="Compute Normal Maps", label="Compute Normal Maps",
description="Compute normal maps for each depth map.", description="Compute normal maps for each depth map.",
value=False, value=False,
invalidate=True,
advanced=True, advanced=True,
), ),
desc.ChoiceParam( desc.ChoiceParam(
@ -117,7 +106,6 @@ This allows to filter unstable points before starting the fusion of all depth ma
values=VERBOSE_LEVEL, values=VERBOSE_LEVEL,
value="info", value="info",
exclusive=True, exclusive=True,
invalidate=False,
), ),
] ]
@ -127,7 +115,6 @@ This allows to filter unstable points before starting the fusion of all depth ma
label="Filtered Depth Maps Folder", label="Filtered Depth Maps Folder",
description="Output folder for generated depth maps.", description="Output folder for generated depth maps.",
value=desc.Node.internalFolder, value=desc.Node.internalFolder,
invalidate=False,
), ),
# these attributes are only here to describe more accurately the output of the node # these attributes are only here to describe more accurately the output of the node
# by specifying that it generates 2 sequences of images # by specifying that it generates 2 sequences of images
@ -138,7 +125,6 @@ This allows to filter unstable points before starting the fusion of all depth ma
description="Filtered depth maps.", description="Filtered depth maps.",
semantic="image", semantic="image",
value=desc.Node.internalFolder + "<VIEW_ID>_depthMap.exr", value=desc.Node.internalFolder + "<VIEW_ID>_depthMap.exr",
invalidate=False,
group="", # do not export on the command line group="", # do not export on the command line
), ),
desc.File( desc.File(
@ -147,7 +133,6 @@ This allows to filter unstable points before starting the fusion of all depth ma
description="Filtered sim maps.", description="Filtered sim maps.",
semantic="image", semantic="image",
value=desc.Node.internalFolder + "<VIEW_ID>_simMap.exr", value=desc.Node.internalFolder + "<VIEW_ID>_simMap.exr",
invalidate=False,
group="", # do not export on the command line group="", # do not export on the command line
), ),
desc.File( desc.File(
@ -156,7 +141,6 @@ This allows to filter unstable points before starting the fusion of all depth ma
description="Normal maps.", description="Normal maps.",
semantic="image", semantic="image",
value=desc.Node.internalFolder + "<VIEW_ID>_normalMap.exr", value=desc.Node.internalFolder + "<VIEW_ID>_normalMap.exr",
invalidate=False,
enabled=lambda node: node.computeNormalMaps.value, enabled=lambda node: node.computeNormalMaps.value,
group="", # do not export on the command line group="", # do not export on the command line
), ),

View file

@ -19,14 +19,12 @@ Calibration of a camera/lens couple distortion using a full screen checkerboard.
label="Input SfMData", label="Input SfMData",
description="SfMData file.", description="SfMData file.",
value="", value="",
invalidate=True,
), ),
desc.File( desc.File(
name="checkerboards", name="checkerboards",
label="Checkerboards Folder", label="Checkerboards Folder",
description="Folder containing checkerboard JSON files.", description="Folder containing checkerboard JSON files.",
value="", value="",
invalidate=True,
), ),
desc.ChoiceParam( desc.ChoiceParam(
name="undistortionModelName", name="undistortionModelName",
@ -35,21 +33,18 @@ Calibration of a camera/lens couple distortion using a full screen checkerboard.
value="3deanamorphic4", value="3deanamorphic4",
values=["3deanamorphic4", "3declassicld", "3deradial4"], values=["3deanamorphic4", "3declassicld", "3deradial4"],
exclusive=True, exclusive=True,
invalidate=True,
), ),
desc.BoolParam( desc.BoolParam(
name="handleSqueeze", name="handleSqueeze",
label="Handle Squeeze", label="Handle Squeeze",
description="Estimate squeeze.", description="Estimate squeeze.",
value=True, value=True,
invalidate=True,
), ),
desc.BoolParam( desc.BoolParam(
name="isDesqueezed", name="isDesqueezed",
label="Is Desqueezed", label="Is Desqueezed",
description="True if the input image is already desqueezed.", description="True if the input image is already desqueezed.",
value=False, value=False,
invalidate=True,
), ),
desc.ChoiceParam( desc.ChoiceParam(
name="verboseLevel", name="verboseLevel",
@ -58,7 +53,6 @@ Calibration of a camera/lens couple distortion using a full screen checkerboard.
values=VERBOSE_LEVEL, values=VERBOSE_LEVEL,
value="info", value="info",
exclusive=True, exclusive=True,
invalidate=False,
), ),
] ]
@ -68,6 +62,5 @@ Calibration of a camera/lens couple distortion using a full screen checkerboard.
label="SfMData File", label="SfMData File",
description="Path to the output SfMData file.", description="Path to the output SfMData file.",
value=desc.Node.internalFolder + "sfmData.sfm", value=desc.Node.internalFolder + "sfmData.sfm",
invalidate=False,
), ),
] ]

View file

@ -20,7 +20,6 @@ Based on the input image filenames, it will recognize the input video sequence t
label="Input SfMData", label="Input SfMData",
description="SfMData file containing a complete SfM.", description="SfMData file containing a complete SfM.",
value="", value="",
invalidate=True,
), ),
desc.File( desc.File(
name="sfmDataFilter", name="sfmDataFilter",
@ -28,7 +27,6 @@ Based on the input image filenames, it will recognize the input video sequence t
description="Filter out cameras from the export if they are part of this SfMData.\n" description="Filter out cameras from the export if they are part of this SfMData.\n"
"If empty, export all cameras.", "If empty, export all cameras.",
value="", value="",
invalidate=True,
), ),
desc.File( desc.File(
name="viewFilter", name="viewFilter",
@ -36,7 +34,6 @@ Based on the input image filenames, it will recognize the input video sequence t
description="Select the cameras to export using an expression based on the image filepath.\n" description="Select the cameras to export using an expression based on the image filepath.\n"
"If empty, export all cameras.", "If empty, export all cameras.",
value="", value="",
invalidate=True,
), ),
desc.BoolParam( desc.BoolParam(
name="exportSTMaps", name="exportSTMaps",
@ -44,14 +41,12 @@ Based on the input image filenames, it will recognize the input video sequence t
description="Export ST maps. Motion (x, y) is encoded in the image channels to correct the lens distortion.\n" description="Export ST maps. Motion (x, y) is encoded in the image channels to correct the lens distortion.\n"
"It represents the absolute pixel positions of an image normalized between 0 and 1.", "It represents the absolute pixel positions of an image normalized between 0 and 1.",
value=True, value=True,
invalidate=True,
), ),
desc.BoolParam( desc.BoolParam(
name="exportUndistortedImages", name="exportUndistortedImages",
label="Export Undistorted Images", label="Export Undistorted Images",
description="Export undistorted images.", description="Export undistorted images.",
value=False, value=False,
invalidate=True,
), ),
desc.ChoiceParam( desc.ChoiceParam(
name="undistortedImageType", name="undistortedImageType",
@ -60,7 +55,6 @@ Based on the input image filenames, it will recognize the input video sequence t
value="exr", value="exr",
values=["jpg", "png", "tif", "exr"], values=["jpg", "png", "tif", "exr"],
exclusive=True, exclusive=True,
invalidate=True,
enabled=lambda node: node.exportUndistortedImages.value, enabled=lambda node: node.exportUndistortedImages.value,
), ),
desc.BoolParam( desc.BoolParam(
@ -69,14 +63,12 @@ Based on the input image filenames, it will recognize the input video sequence t
description="Export full ROD.", description="Export full ROD.",
value=False, value=False,
enabled=lambda node: node.exportUndistortedImages.value and node.undistortedImageType.value == "exr", enabled=lambda node: node.exportUndistortedImages.value and node.undistortedImageType.value == "exr",
invalidate=True,
), ),
desc.BoolParam( desc.BoolParam(
name="correctPrincipalPoint", name="correctPrincipalPoint",
label="Correct Principal Point", label="Correct Principal Point",
description="Correct principal point.", description="Correct principal point.",
value=False, value=False,
invalidate=True,
), ),
desc.ChoiceParam( desc.ChoiceParam(
name="verboseLevel", name="verboseLevel",
@ -85,7 +77,6 @@ Based on the input image filenames, it will recognize the input video sequence t
values=VERBOSE_LEVEL, values=VERBOSE_LEVEL,
value="info", value="info",
exclusive=True, exclusive=True,
invalidate=False,
), ),
] ]
@ -95,7 +86,6 @@ Based on the input image filenames, it will recognize the input video sequence t
label="Folder", label="Folder",
description="Output folder with animated camera and undistorted images.", description="Output folder with animated camera and undistorted images.",
value=desc.Node.internalFolder, value=desc.Node.internalFolder,
invalidate=False,
), ),
desc.File( desc.File(
name="outputCamera", name="outputCamera",
@ -103,7 +93,6 @@ Based on the input image filenames, it will recognize the input video sequence t
description="Output filename for the animated camera in Alembic format.", description="Output filename for the animated camera in Alembic format.",
value=desc.Node.internalFolder + "camera.abc", value=desc.Node.internalFolder + "camera.abc",
group="", # exclude from command line group="", # exclude from command line
invalidate=False,
), ),
desc.File( desc.File(
name="outputUndistorted", name="outputUndistorted",
@ -111,7 +100,6 @@ Based on the input image filenames, it will recognize the input video sequence t
description="Output undistorted folder.", description="Output undistorted folder.",
value=desc.Node.internalFolder + "undistort/", value=desc.Node.internalFolder + "undistort/",
group="", # exclude from command line group="", # exclude from command line
invalidate=False,
), ),
desc.File( desc.File(
name="outputImages", name="outputImages",
@ -121,6 +109,5 @@ Based on the input image filenames, it will recognize the input video sequence t
semantic="image", semantic="image",
group="", # exclude from command line group="", # exclude from command line
enabled=lambda node: node.exportUndistortedImages.value, enabled=lambda node: node.exportUndistortedImages.value,
invalidate=False,
), ),
] ]

View file

@ -17,7 +17,6 @@ class ExportColoredPointCloud(desc.AVCommandLineNode):
label="Input SfMData", label="Input SfMData",
description="SfMData file containing a complete SfM.", description="SfMData file containing a complete SfM.",
value="", value="",
invalidate=True,
), ),
desc.ChoiceParam( desc.ChoiceParam(
name="verboseLevel", name="verboseLevel",
@ -26,7 +25,6 @@ class ExportColoredPointCloud(desc.AVCommandLineNode):
values=VERBOSE_LEVEL, values=VERBOSE_LEVEL,
value="info", value="info",
exclusive=True, exclusive=True,
invalidate=False,
), ),
] ]
@ -36,6 +34,5 @@ class ExportColoredPointCloud(desc.AVCommandLineNode):
label="Point Cloud Filepath", label="Point Cloud Filepath",
description="Output point cloud with visibilities as SfMData file.", description="Output point cloud with visibilities as SfMData file.",
value=desc.Node.internalFolder + "pointCloud.abc", value=desc.Node.internalFolder + "pointCloud.abc",
invalidate=False,
), ),
] ]

View file

@ -18,7 +18,6 @@ It also allows to export an undistorted image of the lens grids for validation.
label="Input SfMData", label="Input SfMData",
description="Input SfMData file.", description="Input SfMData file.",
value="", value="",
invalidate=True,
), ),
desc.BoolParam( desc.BoolParam(
name="exportNukeNode", name="exportNukeNode",
@ -26,21 +25,18 @@ It also allows to export an undistorted image of the lens grids for validation.
description="Export Nuke LensDistortion node as nuke file.\n" description="Export Nuke LensDistortion node as nuke file.\n"
"Only supports 3DEqualizer lens models.", "Only supports 3DEqualizer lens models.",
value=True, value=True,
invalidate=True,
), ),
desc.BoolParam( desc.BoolParam(
name="exportLensGridsUndistorted", name="exportLensGridsUndistorted",
label="Export Lens Grids Undistorted", label="Export Lens Grids Undistorted",
description="Export the lens grids undistorted for validation.", description="Export the lens grids undistorted for validation.",
value=True, value=True,
invalidate=True,
), ),
desc.BoolParam( desc.BoolParam(
name="exportSTMaps", name="exportSTMaps",
label="Export STMaps", label="Export STMaps",
description="Export STMaps for distortion and undistortion.", description="Export STMaps for distortion and undistortion.",
value=True, value=True,
invalidate=True,
), ),
desc.ChoiceParam( desc.ChoiceParam(
name="verboseLevel", name="verboseLevel",
@ -49,7 +45,6 @@ It also allows to export an undistorted image of the lens grids for validation.
values=VERBOSE_LEVEL, values=VERBOSE_LEVEL,
value="info", value="info",
exclusive=True, exclusive=True,
invalidate=False,
), ),
] ]
@ -59,7 +54,6 @@ It also allows to export an undistorted image of the lens grids for validation.
label="Folder", label="Folder",
description="Output folder.", description="Output folder.",
value=desc.Node.internalFolder, value=desc.Node.internalFolder,
invalidate=False,
), ),
desc.File( desc.File(
name="distortionNukeNode", name="distortionNukeNode",
@ -67,7 +61,6 @@ It also allows to export an undistorted image of the lens grids for validation.
description="Calibrated distortion ST map.", description="Calibrated distortion ST map.",
value=desc.Node.internalFolder + "nukeLensDistortion_<INTRINSIC_ID>.nk", value=desc.Node.internalFolder + "nukeLensDistortion_<INTRINSIC_ID>.nk",
group="", # do not export on the command line group="", # do not export on the command line
invalidate=False,
enabled=lambda node: node.exportNukeNode.value, enabled=lambda node: node.exportNukeNode.value,
), ),
desc.File( desc.File(
@ -77,7 +70,6 @@ It also allows to export an undistorted image of the lens grids for validation.
semantic="image", semantic="image",
value=desc.Node.internalFolder + "lensgrid_<VIEW_ID>_undistort.exr", value=desc.Node.internalFolder + "lensgrid_<VIEW_ID>_undistort.exr",
group="", # do not export on the command line group="", # do not export on the command line
invalidate=False,
enabled=lambda node: node.exportLensGridsUndistorted.value, enabled=lambda node: node.exportLensGridsUndistorted.value,
), ),
desc.File( desc.File(
@ -87,7 +79,6 @@ It also allows to export an undistorted image of the lens grids for validation.
semantic="image", semantic="image",
value=desc.Node.internalFolder + "stmap_<INTRINSIC_ID>_distort.exr", value=desc.Node.internalFolder + "stmap_<INTRINSIC_ID>_distort.exr",
group="", # do not export on the command line group="", # do not export on the command line
invalidate=False,
enabled=lambda node: node.exportSTMaps.value, enabled=lambda node: node.exportSTMaps.value,
), ),
desc.File( desc.File(
@ -97,7 +88,6 @@ It also allows to export an undistorted image of the lens grids for validation.
semantic="image", semantic="image",
value=desc.Node.internalFolder + "stmap_<INTRINSIC_ID>_undistort.exr", value=desc.Node.internalFolder + "stmap_<INTRINSIC_ID>_undistort.exr",
group="", # do not export on the command line group="", # do not export on the command line
invalidate=False,
enabled=lambda node: node.exportSTMaps.value, enabled=lambda node: node.exportSTMaps.value,
), ),
] ]

View file

@ -18,7 +18,6 @@ class ExportMatches(desc.AVCommandLineNode):
label="Input", label="Input",
description="SfMData file.", description="SfMData file.",
value="", value="",
invalidate=True,
), ),
desc.ChoiceParam( desc.ChoiceParam(
name="describerTypes", name="describerTypes",
@ -27,7 +26,6 @@ class ExportMatches(desc.AVCommandLineNode):
values=DESCRIBER_TYPES, values=DESCRIBER_TYPES,
value=["dspsift"], value=["dspsift"],
exclusive=False, exclusive=False,
invalidate=True,
joinChar=",", joinChar=",",
), ),
desc.ListAttribute( desc.ListAttribute(
@ -36,7 +34,6 @@ class ExportMatches(desc.AVCommandLineNode):
label="Features Folder", label="Features Folder",
description="Folder containing some extracted features and descriptors.", description="Folder containing some extracted features and descriptors.",
value="", value="",
invalidate=True,
), ),
name="featuresFolders", name="featuresFolders",
label="Features Folders", label="Features Folders",
@ -48,7 +45,6 @@ class ExportMatches(desc.AVCommandLineNode):
label="Matches Folder", label="Matches Folder",
description="Folder containing some computed matches.", description="Folder containing some computed matches.",
value="", value="",
invalidate=True,
), ),
name="matchesFolders", name="matchesFolders",
label="Matches Folders", label="Matches Folders",
@ -61,7 +57,6 @@ class ExportMatches(desc.AVCommandLineNode):
values=VERBOSE_LEVEL, values=VERBOSE_LEVEL,
value="info", value="info",
exclusive=True, exclusive=True,
invalidate=False,
), ),
] ]
@ -71,6 +66,5 @@ class ExportMatches(desc.AVCommandLineNode):
label="Folder", label="Folder",
description="Output path for the features and descriptors files (*.feat, *.desc).", description="Output path for the features and descriptors files (*.feat, *.desc).",
value=desc.Node.internalFolder, value=desc.Node.internalFolder,
invalidate=False,
), ),
] ]

View file

@ -21,7 +21,6 @@ MeshroomMaya contains a user interface to browse all cameras.
label="Input SfMData", label="Input SfMData",
description="Input SfMData file.", description="Input SfMData file.",
value="", value="",
invalidate=True,
), ),
desc.ChoiceParam( desc.ChoiceParam(
name="verboseLevel", name="verboseLevel",
@ -30,7 +29,6 @@ MeshroomMaya contains a user interface to browse all cameras.
values=VERBOSE_LEVEL, values=VERBOSE_LEVEL,
value="info", value="info",
exclusive=True, exclusive=True,
invalidate=False,
), ),
] ]
@ -40,6 +38,5 @@ MeshroomMaya contains a user interface to browse all cameras.
label="Folder", label="Folder",
description="Folder for MeshroomMaya outputs: undistorted images and thumbnails.", description="Folder for MeshroomMaya outputs: undistorted images and thumbnails.",
value=desc.Node.internalFolder, value=desc.Node.internalFolder,
invalidate=False,
), ),
] ]

View file

@ -37,14 +37,12 @@ It is robust to motion-blur, depth-of-field, occlusion. Be careful to have enoug
label="SfMData", label="SfMData",
description="Input SfMData file.", description="Input SfMData file.",
value="", value="",
invalidate=True,
), ),
desc.File( desc.File(
name="masksFolder", name="masksFolder",
label="Masks Folder", label="Masks Folder",
description="Use masks to filter features. Filename should be the same or the image UID.", description="Use masks to filter features. Filename should be the same or the image UID.",
value="", value="",
invalidate=True,
), ),
desc.ChoiceParam( desc.ChoiceParam(
name="maskExtension", name="maskExtension",
@ -53,14 +51,12 @@ It is robust to motion-blur, depth-of-field, occlusion. Be careful to have enoug
value="png", value="png",
values=["png", "exr", "jpg"], values=["png", "exr", "jpg"],
exclusive=True, exclusive=True,
invalidate=True,
), ),
desc.BoolParam( desc.BoolParam(
name="maskInvert", name="maskInvert",
label="Invert Masks", label="Invert Masks",
description="Invert mask values.", description="Invert mask values.",
value=False, value=False,
invalidate=True,
), ),
desc.ChoiceParam( desc.ChoiceParam(
name="describerTypes", name="describerTypes",
@ -69,7 +65,6 @@ It is robust to motion-blur, depth-of-field, occlusion. Be careful to have enoug
values=DESCRIBER_TYPES, values=DESCRIBER_TYPES,
value=["dspsift"], value=["dspsift"],
exclusive=False, exclusive=False,
invalidate=True,
joinChar=",", joinChar=",",
), ),
desc.ChoiceParam( desc.ChoiceParam(
@ -80,7 +75,6 @@ It is robust to motion-blur, depth-of-field, occlusion. Be careful to have enoug
value="normal", value="normal",
values=["low", "medium", "normal", "high", "ultra", "custom"], values=["low", "medium", "normal", "high", "ultra", "custom"],
exclusive=True, exclusive=True,
invalidate=True,
group=lambda node: 'allParams' if node.describerPreset.value != 'custom' else None, group=lambda node: 'allParams' if node.describerPreset.value != 'custom' else None,
), ),
desc.IntParam( desc.IntParam(
@ -89,7 +83,6 @@ It is robust to motion-blur, depth-of-field, occlusion. Be careful to have enoug
description="Maximum number of features extracted (0 means default value based on Describer Density).", description="Maximum number of features extracted (0 means default value based on Describer Density).",
value=0, value=0,
range=(0, 100000, 1000), range=(0, 100000, 1000),
invalidate=True,
advanced=True, advanced=True,
enabled=lambda node: (node.describerPreset.value == "custom"), enabled=lambda node: (node.describerPreset.value == "custom"),
), ),
@ -100,7 +93,6 @@ It is robust to motion-blur, depth-of-field, occlusion. Be careful to have enoug
value="normal", value="normal",
values=["low", "medium", "normal", "high", "ultra"], values=["low", "medium", "normal", "high", "ultra"],
exclusive=True, exclusive=True,
invalidate=True,
), ),
desc.ChoiceParam( desc.ChoiceParam(
name="contrastFiltering", name="contrastFiltering",
@ -117,7 +109,6 @@ It is robust to motion-blur, depth-of-field, occlusion. Be careful to have enoug
values=["Static", "AdaptiveToMedianVariance", "NoFiltering", "GridSortOctaves", "GridSort", "GridSortScaleSteps", "GridSortOctaveSteps", "NonExtremaFiltering"], values=["Static", "AdaptiveToMedianVariance", "NoFiltering", "GridSortOctaves", "GridSort", "GridSortScaleSteps", "GridSortOctaveSteps", "NonExtremaFiltering"],
exclusive=True, exclusive=True,
advanced=True, advanced=True,
invalidate=True,
), ),
desc.FloatParam( desc.FloatParam(
name="relativePeakThreshold", name="relativePeakThreshold",
@ -126,7 +117,6 @@ It is robust to motion-blur, depth-of-field, occlusion. Be careful to have enoug
value=0.01, value=0.01,
range=(0.01, 1.0, 0.001), range=(0.01, 1.0, 0.001),
advanced=True, advanced=True,
invalidate=True,
enabled=lambda node: (node.contrastFiltering.value == "AdaptiveToMedianVariance"), enabled=lambda node: (node.contrastFiltering.value == "AdaptiveToMedianVariance"),
), ),
desc.BoolParam( desc.BoolParam(
@ -135,7 +125,6 @@ It is robust to motion-blur, depth-of-field, occlusion. Be careful to have enoug
description="Enable grid filtering. Highly recommended to ensure usable number of features.", description="Enable grid filtering. Highly recommended to ensure usable number of features.",
value=True, value=True,
advanced=True, advanced=True,
invalidate=True,
), ),
desc.ChoiceParam( desc.ChoiceParam(
name="workingColorSpace", name="workingColorSpace",
@ -144,14 +133,12 @@ It is robust to motion-blur, depth-of-field, occlusion. Be careful to have enoug
values=COLORSPACES, values=COLORSPACES,
value="sRGB", value="sRGB",
exclusive=True, exclusive=True,
invalidate=True,
), ),
desc.BoolParam( desc.BoolParam(
name="forceCpuExtraction", name="forceCpuExtraction",
label="Force CPU Extraction", label="Force CPU Extraction",
description="Use only CPU feature extraction.", description="Use only CPU feature extraction.",
value=True, value=True,
invalidate=False,
advanced=True, advanced=True,
), ),
desc.IntParam( desc.IntParam(
@ -170,7 +157,6 @@ It is robust to motion-blur, depth-of-field, occlusion. Be careful to have enoug
values=VERBOSE_LEVEL, values=VERBOSE_LEVEL,
value="info", value="info",
exclusive=True, exclusive=True,
invalidate=False,
), ),
] ]
@ -180,6 +166,5 @@ It is robust to motion-blur, depth-of-field, occlusion. Be careful to have enoug
label="Features Folder", label="Features Folder",
description="Output path for the features and descriptors files (*.feat, *.desc).", description="Output path for the features and descriptors files (*.feat, *.desc).",
value=desc.Node.internalFolder, value=desc.Node.internalFolder,
invalidate=False,
), ),
] ]

View file

@ -39,7 +39,6 @@ then it checks the number of features that validates this model and iterate thro
label="SfMData", label="SfMData",
description="Input SfMData file.", description="Input SfMData file.",
value="", value="",
invalidate=True,
), ),
desc.ListAttribute( desc.ListAttribute(
elementDesc=desc.File( elementDesc=desc.File(
@ -47,7 +46,6 @@ then it checks the number of features that validates this model and iterate thro
label="Features Folder", label="Features Folder",
description="Folder containing some extracted features and descriptors.", description="Folder containing some extracted features and descriptors.",
value="", value="",
invalidate=True,
), ),
name="featuresFolders", name="featuresFolders",
label="Features Folders", label="Features Folders",
@ -58,7 +56,6 @@ then it checks the number of features that validates this model and iterate thro
label="Image Pairs", label="Image Pairs",
description="Path to a file which contains the list of image pairs to match.", description="Path to a file which contains the list of image pairs to match.",
value="", value="",
invalidate=True,
), ),
desc.ChoiceParam( desc.ChoiceParam(
name="describerTypes", name="describerTypes",
@ -67,7 +64,6 @@ then it checks the number of features that validates this model and iterate thro
values=DESCRIBER_TYPES, values=DESCRIBER_TYPES,
value=["dspsift"], value=["dspsift"],
exclusive=False, exclusive=False,
invalidate=True,
joinChar=",", joinChar=",",
), ),
desc.ChoiceParam( desc.ChoiceParam(
@ -83,7 +79,6 @@ then it checks the number of features that validates this model and iterate thro
value="ANN_L2", value="ANN_L2",
values=["BRUTE_FORCE_L2", "ANN_L2", "CASCADE_HASHING_L2", "FAST_CASCADE_HASHING_L2", "BRUTE_FORCE_HAMMING"], values=["BRUTE_FORCE_L2", "ANN_L2", "CASCADE_HASHING_L2", "FAST_CASCADE_HASHING_L2", "BRUTE_FORCE_HAMMING"],
exclusive=True, exclusive=True,
invalidate=True,
advanced=True, advanced=True,
), ),
desc.ChoiceParam( desc.ChoiceParam(
@ -95,7 +90,6 @@ then it checks the number of features that validates this model and iterate thro
value="acransac", value="acransac",
values=["acransac", "loransac"], values=["acransac", "loransac"],
exclusive=True, exclusive=True,
invalidate=True,
advanced=True, advanced=True,
), ),
desc.ChoiceParam( desc.ChoiceParam(
@ -111,7 +105,6 @@ then it checks the number of features that validates this model and iterate thro
value="fundamental_matrix", value="fundamental_matrix",
values=["fundamental_matrix", "fundamental_with_distortion", "essential_matrix", "homography_matrix", "homography_growing", "no_filtering"], values=["fundamental_matrix", "fundamental_with_distortion", "essential_matrix", "homography_matrix", "homography_growing", "no_filtering"],
exclusive=True, exclusive=True,
invalidate=True,
advanced=True, advanced=True,
), ),
desc.FloatParam( desc.FloatParam(
@ -120,7 +113,6 @@ then it checks the number of features that validates this model and iterate thro
description="Distance ratio to discard non meaningful matches.", description="Distance ratio to discard non meaningful matches.",
value=0.8, value=0.8,
range=(0.0, 1.0, 0.01), range=(0.0, 1.0, 0.01),
invalidate=True,
advanced=True, advanced=True,
), ),
desc.IntParam( desc.IntParam(
@ -129,7 +121,6 @@ then it checks the number of features that validates this model and iterate thro
description="Maximum number of iterations allowed in the Ransac step.", description="Maximum number of iterations allowed in the Ransac step.",
value=50000, value=50000,
range=(1, 100000, 1), range=(1, 100000, 1),
invalidate=True,
advanced=True, advanced=True,
), ),
desc.FloatParam( desc.FloatParam(
@ -140,7 +131,6 @@ then it checks the number of features that validates this model and iterate thro
"(if ACRansac, it will analyze the input data to select the optimal value).", "(if ACRansac, it will analyze the input data to select the optimal value).",
value=0.0, value=0.0,
range=(0.0, 10.0, 0.1), range=(0.0, 10.0, 0.1),
invalidate=True,
advanced=True, advanced=True,
), ),
desc.FloatParam( desc.FloatParam(
@ -150,7 +140,6 @@ then it checks the number of features that validates this model and iterate thro
"If set to 0 it lets the ACRansac select an optimal value.", "If set to 0 it lets the ACRansac select an optimal value.",
value=5.0, value=5.0,
range=(0.0, 100.0, 1.0), range=(0.0, 100.0, 1.0),
invalidate=True,
advanced=True, advanced=True,
), ),
desc.FloatParam( desc.FloatParam(
@ -161,7 +150,6 @@ then it checks the number of features that validates this model and iterate thro
"Useful for filtering the background during acquisition with a turntable and a static camera.", "Useful for filtering the background during acquisition with a turntable and a static camera.",
value=-1.0, value=-1.0,
range=(0.0, 10.0, 1.0), range=(0.0, 10.0, 1.0),
invalidate=True,
), ),
desc.IntParam( desc.IntParam(
name="maxMatches", name="maxMatches",
@ -169,7 +157,6 @@ then it checks the number of features that validates this model and iterate thro
description="Maximum number of matches to keep.", description="Maximum number of matches to keep.",
value=0, value=0,
range=(0, 10000, 1), range=(0, 10000, 1),
invalidate=True,
advanced=True, advanced=True,
), ),
desc.BoolParam( desc.BoolParam(
@ -177,7 +164,6 @@ then it checks the number of features that validates this model and iterate thro
label="Save Putative Matches", label="Save Putative Matches",
description="Save putative matches.", description="Save putative matches.",
value=False, value=False,
invalidate=True,
advanced=True, advanced=True,
), ),
desc.BoolParam( desc.BoolParam(
@ -185,14 +171,12 @@ then it checks the number of features that validates this model and iterate thro
label="Cross Matching", label="Cross Matching",
description="Ensure that the matching process is symmetric (same matches for I->J than for J->I).", description="Ensure that the matching process is symmetric (same matches for I->J than for J->I).",
value=False, value=False,
invalidate=True,
), ),
desc.BoolParam( desc.BoolParam(
name="guidedMatching", name="guidedMatching",
label="Guided Matching", label="Guided Matching",
description="Use the found model to improve the pairwise correspondences.", description="Use the found model to improve the pairwise correspondences.",
value=False, value=False,
invalidate=True,
), ),
desc.BoolParam( desc.BoolParam(
name="matchFromKnownCameraPoses", name="matchFromKnownCameraPoses",
@ -200,7 +184,6 @@ then it checks the number of features that validates this model and iterate thro
description="Enable the usage of geometric information from known camera poses to guide the feature matching.\n" description="Enable the usage of geometric information from known camera poses to guide the feature matching.\n"
"If some cameras have unknown poses (so there is no geometric prior), the standard feature matching will be performed.", "If some cameras have unknown poses (so there is no geometric prior), the standard feature matching will be performed.",
value=False, value=False,
invalidate=True,
), ),
desc.BoolParam( desc.BoolParam(
name="exportDebugFiles", name="exportDebugFiles",
@ -217,7 +200,6 @@ then it checks the number of features that validates this model and iterate thro
values=VERBOSE_LEVEL, values=VERBOSE_LEVEL,
value="info", value="info",
exclusive=True, exclusive=True,
invalidate=False,
), ),
] ]
outputs = [ outputs = [
@ -226,6 +208,5 @@ then it checks the number of features that validates this model and iterate thro
label="Matches Folder", label="Matches Folder",
description="Path to a folder in which the computed matches are stored.", description="Path to a folder in which the computed matches are stored.",
value=desc.Node.internalFolder, value=desc.Node.internalFolder,
invalidate=False,
), ),
] ]

View file

@ -21,7 +21,6 @@ Compare feature/descriptor matching repeatability on some dataset with known hom
label="Input Folder", label="Input Folder",
description="Input folder with evaluation datasets.", description="Input folder with evaluation datasets.",
value="", value="",
invalidate=True,
), ),
desc.ChoiceParam( desc.ChoiceParam(
name="describerTypes", name="describerTypes",
@ -30,7 +29,6 @@ Compare feature/descriptor matching repeatability on some dataset with known hom
values=DESCRIBER_TYPES, values=DESCRIBER_TYPES,
value=["sift"], value=["sift"],
exclusive=False, exclusive=False,
invalidate=True,
joinChar=",", joinChar=",",
), ),
desc.ChoiceParam( desc.ChoiceParam(
@ -41,7 +39,6 @@ Compare feature/descriptor matching repeatability on some dataset with known hom
value="normal", value="normal",
values=["low", "medium", "normal", "high", "ultra"], values=["low", "medium", "normal", "high", "ultra"],
exclusive=True, exclusive=True,
invalidate=True,
), ),
desc.ChoiceParam( desc.ChoiceParam(
name="describerQuality", name="describerQuality",
@ -50,7 +47,6 @@ Compare feature/descriptor matching repeatability on some dataset with known hom
value="normal", value="normal",
values=["low", "medium", "normal", "high", "ultra"], values=["low", "medium", "normal", "high", "ultra"],
exclusive=True, exclusive=True,
invalidate=True,
), ),
desc.ChoiceParam( desc.ChoiceParam(
name="contrastFiltering", name="contrastFiltering",
@ -67,7 +63,6 @@ Compare feature/descriptor matching repeatability on some dataset with known hom
values=["Static", "AdaptiveToMedianVariance", "NoFiltering", "GridSortOctaves", "GridSort", "GridSortScaleSteps", "GridSortOctaveSteps", "NonExtremaFiltering"], values=["Static", "AdaptiveToMedianVariance", "NoFiltering", "GridSortOctaves", "GridSort", "GridSortScaleSteps", "GridSortOctaveSteps", "NonExtremaFiltering"],
exclusive=True, exclusive=True,
advanced=True, advanced=True,
invalidate=True,
), ),
desc.FloatParam( desc.FloatParam(
name="relativePeakThreshold", name="relativePeakThreshold",
@ -76,7 +71,6 @@ Compare feature/descriptor matching repeatability on some dataset with known hom
value=0.01, value=0.01,
range=(0.01, 1.0, 0.001), range=(0.01, 1.0, 0.001),
advanced=True, advanced=True,
invalidate=True,
enabled=lambda node: (node.contrastFiltering.value == "AdaptiveToMedianVariance"), enabled=lambda node: (node.contrastFiltering.value == "AdaptiveToMedianVariance"),
), ),
desc.BoolParam( desc.BoolParam(
@ -85,7 +79,6 @@ Compare feature/descriptor matching repeatability on some dataset with known hom
description="Enable grid filtering. Highly recommended to ensure a usable number of features.", description="Enable grid filtering. Highly recommended to ensure a usable number of features.",
value=True, value=True,
advanced=True, advanced=True,
invalidate=True,
), ),
desc.BoolParam( desc.BoolParam(
name="forceCpuExtraction", name="forceCpuExtraction",
@ -102,7 +95,6 @@ Compare feature/descriptor matching repeatability on some dataset with known hom
value=0, value=0,
range=(0, 10000, 1), range=(0, 10000, 1),
group="", group="",
invalidate=True,
), ),
desc.StringParam( desc.StringParam(
name="comments", name="comments",
@ -119,7 +111,6 @@ Compare feature/descriptor matching repeatability on some dataset with known hom
values=VERBOSE_LEVEL, values=VERBOSE_LEVEL,
value="info", value="info",
exclusive=True, exclusive=True,
invalidate=False,
), ),
] ]
@ -129,6 +120,5 @@ Compare feature/descriptor matching repeatability on some dataset with known hom
label="Folder", label="Folder",
description="Output path for the features and descriptors files (*.feat, *.desc).", description="Output path for the features and descriptors files (*.feat, *.desc).",
value=desc.Node.internalFolder, value=desc.Node.internalFolder,
invalidate=False,
), ),
] ]

View file

@ -23,7 +23,6 @@ It is known to be faster but less robust to challenging datasets than the Increm
label="SfMData", label="SfMData",
description="Input SfMData file.", description="Input SfMData file.",
value="", value="",
invalidate=True,
), ),
desc.ListAttribute( desc.ListAttribute(
elementDesc=desc.File( elementDesc=desc.File(
@ -31,7 +30,6 @@ It is known to be faster but less robust to challenging datasets than the Increm
label="Features Folder", label="Features Folder",
description="Folder containing some extracted features.", description="Folder containing some extracted features.",
value="", value="",
invalidate=True,
), ),
name="featuresFolders", name="featuresFolders",
label="Features Folders", label="Features Folders",
@ -43,7 +41,6 @@ It is known to be faster but less robust to challenging datasets than the Increm
label="Matches Folder", label="Matches Folder",
description="Folder containing some computed matches.", description="Folder containing some computed matches.",
value="", value="",
invalidate=True,
), ),
name="matchesFolders", name="matchesFolders",
label="Matches Folders", label="Matches Folders",
@ -56,7 +53,6 @@ It is known to be faster but less robust to challenging datasets than the Increm
values=DESCRIBER_TYPES, values=DESCRIBER_TYPES,
value=["dspsift"], value=["dspsift"],
exclusive=False, exclusive=False,
invalidate=True,
joinChar=",", joinChar=",",
), ),
desc.ChoiceParam( desc.ChoiceParam(
@ -68,7 +64,6 @@ It is known to be faster but less robust to challenging datasets than the Increm
values=["L1_minimization", "L2_minimization"], values=["L1_minimization", "L2_minimization"],
value="L2_minimization", value="L2_minimization",
exclusive=True, exclusive=True,
invalidate=True,
), ),
desc.ChoiceParam( desc.ChoiceParam(
name="translationAveraging", name="translationAveraging",
@ -80,7 +75,6 @@ It is known to be faster but less robust to challenging datasets than the Increm
values=["L1_minimization", "L2_minimization", "L1_soft_minimization"], values=["L1_minimization", "L2_minimization", "L1_soft_minimization"],
value="L1_soft_minimization", value="L1_soft_minimization",
exclusive=True, exclusive=True,
invalidate=True,
), ),
desc.BoolParam( desc.BoolParam(
name="lockAllIntrinsics", name="lockAllIntrinsics",
@ -89,7 +83,6 @@ It is known to be faster but less robust to challenging datasets than the Increm
"principal point, distortion if any) constant during the reconstruction.\n" "principal point, distortion if any) constant during the reconstruction.\n"
"This may be helpful if the input cameras are already fully calibrated.", "This may be helpful if the input cameras are already fully calibrated.",
value=False, value=False,
invalidate=True,
), ),
desc.ChoiceParam( desc.ChoiceParam(
name="verboseLevel", name="verboseLevel",
@ -98,7 +91,6 @@ It is known to be faster but less robust to challenging datasets than the Increm
values=VERBOSE_LEVEL, values=VERBOSE_LEVEL,
value="info", value="info",
exclusive=True, exclusive=True,
invalidate=False,
), ),
] ]
@ -108,20 +100,17 @@ It is known to be faster but less robust to challenging datasets than the Increm
label="SfMData", label="SfMData",
description="Path to the output SfMData file.", description="Path to the output SfMData file.",
value=desc.Node.internalFolder + "sfm.abc", value=desc.Node.internalFolder + "sfm.abc",
invalidate=False,
), ),
desc.File( desc.File(
name="outputViewsAndPoses", name="outputViewsAndPoses",
label="Output Poses", label="Output Poses",
description="Path to the output SfMData file with cameras (views and poses).", description="Path to the output SfMData file with cameras (views and poses).",
value=desc.Node.internalFolder + "cameras.sfm", value=desc.Node.internalFolder + "cameras.sfm",
invalidate=False,
), ),
desc.File( desc.File(
name="extraInfoFolder", name="extraInfoFolder",
label="Folder", label="Folder",
description="Folder for intermediate reconstruction files and additional reconstruction information files.", description="Folder for intermediate reconstruction files and additional reconstruction information files.",
value=desc.Node.internalFolder, value=desc.Node.internalFolder,
invalidate=False,
), ),
] ]

View file

@ -19,7 +19,6 @@ class ImageMasking(desc.AVCommandLineNode):
label="SfMData", label="SfMData",
description="Input SfMData file.", description="Input SfMData file.",
value="", value="",
invalidate=True,
), ),
desc.ChoiceParam( desc.ChoiceParam(
name="algorithm", name="algorithm",
@ -28,7 +27,6 @@ class ImageMasking(desc.AVCommandLineNode):
value="HSV", value="HSV",
values=["HSV", "AutoGrayscaleThreshold"], values=["HSV", "AutoGrayscaleThreshold"],
exclusive=True, exclusive=True,
invalidate=True,
), ),
desc.GroupAttribute( desc.GroupAttribute(
name="hsv", name="hsv",
@ -48,7 +46,6 @@ class ImageMasking(desc.AVCommandLineNode):
semantic="color/hue", semantic="color/hue",
value=0.33, value=0.33,
range=(0.0, 1.0, 0.01), range=(0.0, 1.0, 0.01),
invalidate=True,
), ),
desc.FloatParam( desc.FloatParam(
name="hsvHueRange", name="hsvHueRange",
@ -56,7 +53,6 @@ class ImageMasking(desc.AVCommandLineNode):
description="Tolerance around the hue value to isolate.", description="Tolerance around the hue value to isolate.",
value=0.1, value=0.1,
range=(0.0, 1.0, 0.01), range=(0.0, 1.0, 0.01),
invalidate=True,
), ),
desc.FloatParam( desc.FloatParam(
name="hsvMinSaturation", name="hsvMinSaturation",
@ -64,7 +60,6 @@ class ImageMasking(desc.AVCommandLineNode):
description="Hue is meaningless if saturation is low. Do not mask pixels below this threshold.", description="Hue is meaningless if saturation is low. Do not mask pixels below this threshold.",
value=0.3, value=0.3,
range=(0.0, 1.0, 0.01), range=(0.0, 1.0, 0.01),
invalidate=True,
), ),
desc.FloatParam( desc.FloatParam(
name="hsvMaxSaturation", name="hsvMaxSaturation",
@ -72,7 +67,6 @@ class ImageMasking(desc.AVCommandLineNode):
description="Do not mask pixels above this threshold. It might be useful to mask white/black pixels.", description="Do not mask pixels above this threshold. It might be useful to mask white/black pixels.",
value=1.0, value=1.0,
range=(0.0, 1.0, 0.01), range=(0.0, 1.0, 0.01),
invalidate=True,
), ),
desc.FloatParam( desc.FloatParam(
name="hsvMinValue", name="hsvMinValue",
@ -80,7 +74,6 @@ class ImageMasking(desc.AVCommandLineNode):
description="Hue is meaningless if the value is low. Do not mask pixels below this threshold.", description="Hue is meaningless if the value is low. Do not mask pixels below this threshold.",
value=0.3, value=0.3,
range=(0.0, 1.0, 0.01), range=(0.0, 1.0, 0.01),
invalidate=True,
), ),
desc.FloatParam( desc.FloatParam(
name="hsvMaxValue", name="hsvMaxValue",
@ -88,7 +81,6 @@ class ImageMasking(desc.AVCommandLineNode):
description="Do not mask pixels above this threshold. It might be useful to mask white/black pixels.", description="Do not mask pixels above this threshold. It might be useful to mask white/black pixels.",
value=1.0, value=1.0,
range=(0.0, 1.0, 0.01), range=(0.0, 1.0, 0.01),
invalidate=True,
), ),
], ],
), ),
@ -98,7 +90,6 @@ class ImageMasking(desc.AVCommandLineNode):
description="If selected, the selected area is ignored.\n" description="If selected, the selected area is ignored.\n"
"If not, only the selected area is considered.", "If not, only the selected area is considered.",
value=True, value=True,
invalidate=True,
), ),
desc.IntParam( desc.IntParam(
name="growRadius", name="growRadius",
@ -107,7 +98,6 @@ class ImageMasking(desc.AVCommandLineNode):
"It might be used to fill the holes: then use shrinkRadius to restore the initial coutours.", "It might be used to fill the holes: then use shrinkRadius to restore the initial coutours.",
value=0, value=0,
range=(0, 50, 1), range=(0, 50, 1),
invalidate=True,
), ),
desc.IntParam( desc.IntParam(
name="shrinkRadius", name="shrinkRadius",
@ -115,21 +105,18 @@ class ImageMasking(desc.AVCommandLineNode):
description="Shrink the selected area.", description="Shrink the selected area.",
value=0, value=0,
range=(0, 50, 1), range=(0, 50, 1),
invalidate=True,
), ),
desc.File( desc.File(
name="depthMapFolder", name="depthMapFolder",
label="Depth Mask Folder", label="Depth Mask Folder",
description="Depth mask folder.", description="Depth mask folder.",
value="", value="",
invalidate=True,
), ),
desc.StringParam( desc.StringParam(
name="depthMapExp", name="depthMapExp",
label="Depth Mask Expression", label="Depth Mask Expression",
description="Depth mask expression, like '{inputFolder}/{stem}-depth.{ext}'.", description="Depth mask expression, like '{inputFolder}/{stem}-depth.{ext}'.",
value="", value="",
invalidate=True,
), ),
desc.ChoiceParam( desc.ChoiceParam(
name="verboseLevel", name="verboseLevel",
@ -138,7 +125,6 @@ class ImageMasking(desc.AVCommandLineNode):
values=VERBOSE_LEVEL, values=VERBOSE_LEVEL,
value="info", value="info",
exclusive=True, exclusive=True,
invalidate=False,
), ),
] ]
@ -148,6 +134,5 @@ class ImageMasking(desc.AVCommandLineNode):
label="Output", label="Output",
description="Output folder.", description="Output folder.",
value=desc.Node.internalFolder, value=desc.Node.internalFolder,
invalidate=False,
), ),
] ]

View file

@ -40,7 +40,6 @@ If images have known poses, use frustum intersection else use VocabularuTree.
label="SfMData", label="SfMData",
description="Input SfMData file.", description="Input SfMData file.",
value="", value="",
invalidate=True,
), ),
desc.ListAttribute( desc.ListAttribute(
elementDesc=desc.File( elementDesc=desc.File(
@ -48,7 +47,6 @@ If images have known poses, use frustum intersection else use VocabularuTree.
label="Features Folder", label="Features Folder",
description="Folder containing some extracted features and descriptors.", description="Folder containing some extracted features and descriptors.",
value="", value="",
invalidate=True,
), ),
name="featuresFolders", name="featuresFolders",
label="Features Folders", label="Features Folders",
@ -69,7 +67,6 @@ If images have known poses, use frustum intersection else use VocabularuTree.
value="SequentialAndVocabularyTree", value="SequentialAndVocabularyTree",
values=["VocabularyTree", "Sequential", "SequentialAndVocabularyTree", "Exhaustive", "Frustum", "FrustumOrVocabularyTree"], values=["VocabularyTree", "Sequential", "SequentialAndVocabularyTree", "Exhaustive", "Frustum", "FrustumOrVocabularyTree"],
exclusive=True, exclusive=True,
invalidate=True,
), ),
desc.File( desc.File(
name="tree", name="tree",
@ -85,7 +82,6 @@ If images have known poses, use frustum intersection else use VocabularuTree.
description="Input name for the weight file.\n" description="Input name for the weight file.\n"
"If not provided, the weights will be computed on the database built with the provided set.", "If not provided, the weights will be computed on the database built with the provided set.",
value="", value="",
invalidate=True,
advanced=True, advanced=True,
enabled=lambda node: "VocabularyTree" in node.method.value, enabled=lambda node: "VocabularyTree" in node.method.value,
), ),
@ -96,7 +92,6 @@ If images have known poses, use frustum intersection else use VocabularuTree.
"If we have less features than this threshold, we will compute all matching combinations.", "If we have less features than this threshold, we will compute all matching combinations.",
value=200, value=200,
range=(0, 500, 1), range=(0, 500, 1),
invalidate=True,
advanced=True, advanced=True,
enabled=lambda node: "VocabularyTree" in node.method.value, enabled=lambda node: "VocabularyTree" in node.method.value,
), ),
@ -106,7 +101,6 @@ If images have known poses, use frustum intersection else use VocabularuTree.
description="Limit the number of descriptors you load per image. 0 means no limit.", description="Limit the number of descriptors you load per image. 0 means no limit.",
value=500, value=500,
range=(0, 100000, 1), range=(0, 100000, 1),
invalidate=True,
advanced=True, advanced=True,
enabled=lambda node: "VocabularyTree" in node.method.value, enabled=lambda node: "VocabularyTree" in node.method.value,
), ),
@ -116,7 +110,6 @@ If images have known poses, use frustum intersection else use VocabularuTree.
description="The number of matches to retrieve for each image. (If 0, it will retrieve all the matches).", description="The number of matches to retrieve for each image. (If 0, it will retrieve all the matches).",
value=40, value=40,
range=(0, 1000, 1), range=(0, 1000, 1),
invalidate=True,
advanced=True, advanced=True,
enabled=lambda node: "VocabularyTree" in node.method.value, enabled=lambda node: "VocabularyTree" in node.method.value,
), ),
@ -126,7 +119,6 @@ If images have known poses, use frustum intersection else use VocabularuTree.
description="The number of neighbors to retrieve for each image. (If 0, it will retrieve all the neighbors).", description="The number of neighbors to retrieve for each image. (If 0, it will retrieve all the neighbors).",
value=5, value=5,
range=(0, 1000, 1), range=(0, 1000, 1),
invalidate=True,
advanced=True, advanced=True,
enabled=lambda node: "Sequential" in node.method.value, enabled=lambda node: "Sequential" in node.method.value,
), ),
@ -137,7 +129,6 @@ If images have known poses, use frustum intersection else use VocabularuTree.
values=VERBOSE_LEVEL, values=VERBOSE_LEVEL,
value="info", value="info",
exclusive=True, exclusive=True,
invalidate=False,
), ),
] ]
@ -147,6 +138,5 @@ If images have known poses, use frustum intersection else use VocabularuTree.
label="Image Pairs", label="Image Pairs",
description="Filepath to the output file with the list of selected image pairs.", description="Filepath to the output file with the list of selected image pairs.",
value=desc.Node.internalFolder + "imageMatches.txt", value=desc.Node.internalFolder + "imageMatches.txt",
invalidate=False,
), ),
] ]

View file

@ -25,14 +25,12 @@ Thanks to this node, the FeatureMatching node will only compute the matches betw
label="Input A", label="Input A",
description="First input SfMData file.", description="First input SfMData file.",
value="", value="",
invalidate=True,
), ),
desc.File( desc.File(
name="inputB", name="inputB",
label="Input B", label="Input B",
description="Second input SfMData file.", description="Second input SfMData file.",
value="", value="",
invalidate=True,
), ),
desc.ListAttribute( desc.ListAttribute(
elementDesc=desc.File( elementDesc=desc.File(
@ -40,7 +38,6 @@ Thanks to this node, the FeatureMatching node will only compute the matches betw
label="Features Folder", label="Features Folder",
description="Folder containing some extracted features and descriptors.", description="Folder containing some extracted features and descriptors.",
value="", value="",
invalidate=True,
), ),
name="featuresFolders", name="featuresFolders",
label="Features Folders", label="Features Folders",
@ -60,7 +57,6 @@ Thanks to this node, the FeatureMatching node will only compute the matches betw
value="SequentialAndVocabularyTree", value="SequentialAndVocabularyTree",
values=["VocabularyTree", "SequentialAndVocabularyTree", "Exhaustive", "Frustum"], values=["VocabularyTree", "SequentialAndVocabularyTree", "Exhaustive", "Frustum"],
exclusive=True, exclusive=True,
invalidate=True,
), ),
desc.File( desc.File(
name="tree", name="tree",
@ -76,7 +72,6 @@ Thanks to this node, the FeatureMatching node will only compute the matches betw
description="Input name for the weight file.\n" description="Input name for the weight file.\n"
"If not provided, the weights will be computed on the database built with the provided set.", "If not provided, the weights will be computed on the database built with the provided set.",
value="", value="",
invalidate=True,
advanced=True, advanced=True,
enabled=lambda node: "VocabularyTree" in node.method.value, enabled=lambda node: "VocabularyTree" in node.method.value,
), ),
@ -90,7 +85,6 @@ Thanks to this node, the FeatureMatching node will only compute the matches betw
value="a/a+a/b", value="a/a+a/b",
values=["a/a+a/b","a/ab", "a/b"], values=["a/a+a/b","a/ab", "a/b"],
exclusive=True, exclusive=True,
invalidate=True,
), ),
desc.IntParam( desc.IntParam(
name="minNbImages", name="minNbImages",
@ -99,7 +93,6 @@ Thanks to this node, the FeatureMatching node will only compute the matches betw
"If we have less features than this threshold, we will compute all the matching combinations.", "If we have less features than this threshold, we will compute all the matching combinations.",
value=200, value=200,
range=(0, 500, 1), range=(0, 500, 1),
invalidate=True,
advanced=True, advanced=True,
enabled=lambda node: "VocabularyTree" in node.method.value, enabled=lambda node: "VocabularyTree" in node.method.value,
), ),
@ -109,7 +102,6 @@ Thanks to this node, the FeatureMatching node will only compute the matches betw
description="Limit the number of descriptors you load per image. 0 means no limit.", description="Limit the number of descriptors you load per image. 0 means no limit.",
value=500, value=500,
range=(0, 100000, 1), range=(0, 100000, 1),
invalidate=True,
advanced=True, advanced=True,
enabled=lambda node: "VocabularyTree" in node.method.value, enabled=lambda node: "VocabularyTree" in node.method.value,
), ),
@ -119,7 +111,6 @@ Thanks to this node, the FeatureMatching node will only compute the matches betw
description="The number of matches to retrieve for each image. (If 0, it will retrieve all the matches).", description="The number of matches to retrieve for each image. (If 0, it will retrieve all the matches).",
value=40, value=40,
range=(0, 1000, 1), range=(0, 1000, 1),
invalidate=True,
advanced=True, advanced=True,
enabled=lambda node: "VocabularyTree" in node.method.value, enabled=lambda node: "VocabularyTree" in node.method.value,
), ),
@ -129,7 +120,6 @@ Thanks to this node, the FeatureMatching node will only compute the matches betw
description="The number of neighbors to retrieve for each image. (If 0, it will retrieve all the neighbors).", description="The number of neighbors to retrieve for each image. (If 0, it will retrieve all the neighbors).",
value=5, value=5,
range=(0, 1000, 1), range=(0, 1000, 1),
invalidate=True,
advanced=True, advanced=True,
enabled=lambda node: "Sequential" in node.method.value, enabled=lambda node: "Sequential" in node.method.value,
), ),
@ -140,7 +130,6 @@ Thanks to this node, the FeatureMatching node will only compute the matches betw
values=VERBOSE_LEVEL, values=VERBOSE_LEVEL,
value="info", value="info",
exclusive=True, exclusive=True,
invalidate=False,
), ),
] ]
@ -150,13 +139,11 @@ Thanks to this node, the FeatureMatching node will only compute the matches betw
label="List File", label="List File",
description="Filepath to the output file with the list of selected image pairs.", description="Filepath to the output file with the list of selected image pairs.",
value=desc.Node.internalFolder + "imageMatches.txt", value=desc.Node.internalFolder + "imageMatches.txt",
invalidate=False,
), ),
desc.File( desc.File(
name="outputCombinedSfM", name="outputCombinedSfM",
label="Combined SfM", label="Combined SfM",
description="Path for the combined SfMData file.", description="Path for the combined SfMData file.",
value=desc.Node.internalFolder + "combineSfM.sfm", value=desc.Node.internalFolder + "combineSfM.sfm",
invalidate=False,
), ),
] ]

View file

@ -52,7 +52,6 @@ Convert or apply filtering to the input images.
" - '?' matches one character.\n" " - '?' matches one character.\n"
" - '*' matches zero character or more.", " - '*' matches zero character or more.",
value="", value="",
invalidate=True,
), ),
desc.ListAttribute( desc.ListAttribute(
elementDesc=desc.File( elementDesc=desc.File(
@ -60,7 +59,6 @@ Convert or apply filtering to the input images.
label="Input Folder", label="Input Folder",
description="Folder containing images.", description="Folder containing images.",
value="", value="",
invalidate=True,
), ),
name="inputFolders", name="inputFolders",
label="Input Images Folders", label="Input Images Folders",
@ -72,7 +70,6 @@ Convert or apply filtering to the input images.
label="Metadata Folder", label="Metadata Folder",
description="Specific folder containing images with metadata.", description="Specific folder containing images with metadata.",
value="", value="",
invalidate=True,
), ),
name="metadataFolders", name="metadataFolders",
label="Input Metadata Folders", label="Input Metadata Folders",
@ -86,49 +83,42 @@ Convert or apply filtering to the input images.
value="", value="",
values=["", "exr", "jpg", "tiff", "png"], values=["", "exr", "jpg", "tiff", "png"],
exclusive=True, exclusive=True,
invalidate=True,
), ),
desc.BoolParam( desc.BoolParam(
name="reconstructedViewsOnly", name="reconstructedViewsOnly",
label="Only Reconstructed Views", label="Only Reconstructed Views",
description="Only process reconstructed views.", description="Only process reconstructed views.",
value=False, value=False,
invalidate=True,
), ),
desc.BoolParam( desc.BoolParam(
name="keepImageFilename", name="keepImageFilename",
label="Keep Image Name", label="Keep Image Name",
description="Keep the original image name instead of the view name.", description="Keep the original image name instead of the view name.",
value=False, value=False,
invalidate=True,
), ),
desc.BoolParam( desc.BoolParam(
name="reorient", name="reorient",
label="Automatic Reorientation", label="Automatic Reorientation",
description="Automatic image reorientation.", description="Automatic image reorientation.",
value=False, value=False,
invalidate=True,
), ),
desc.BoolParam( desc.BoolParam(
name="fixNonFinite", name="fixNonFinite",
label="Fix Non-Finite", label="Fix Non-Finite",
description="Fix non-finite pixels based on neighboring pixels average.", description="Fix non-finite pixels based on neighboring pixels average.",
value=False, value=False,
invalidate=True,
), ),
desc.BoolParam( desc.BoolParam(
name="exposureCompensation", name="exposureCompensation",
label="Exposure Compensation", label="Exposure Compensation",
description="Exposure compensation (only valid for SfMData).", description="Exposure compensation (only valid for SfMData).",
value=False, value=False,
invalidate=True,
), ),
desc.BoolParam( desc.BoolParam(
name="rawAutoBright", name="rawAutoBright",
label="RAW Auto Bright", label="RAW Auto Bright",
description="Enable automatic exposure adjustment for RAW images.", description="Enable automatic exposure adjustment for RAW images.",
value=False, value=False,
invalidate=True,
), ),
desc.FloatParam( desc.FloatParam(
name="rawExposureAdjust", name="rawExposureAdjust",
@ -136,7 +126,6 @@ Convert or apply filtering to the input images.
description="Manual exposure adjustment in fstops for RAW images.", description="Manual exposure adjustment in fstops for RAW images.",
value=0.0, value=0.0,
range=(-2.0, 3.0, 0.125), range=(-2.0, 3.0, 0.125),
invalidate=True,
), ),
desc.GroupAttribute( desc.GroupAttribute(
name="lensCorrection", name="lensCorrection",
@ -149,14 +138,12 @@ Convert or apply filtering to the input images.
label="Enable", label="Enable",
description="Enable lens correction.", description="Enable lens correction.",
value=False, value=False,
invalidate=True,
), ),
desc.BoolParam( desc.BoolParam(
name="geometry", name="geometry",
label="Geometry", label="Geometry",
description="Geometry correction if a model is available in the SfMData.", description="Geometry correction if a model is available in the SfMData.",
value=False, value=False,
invalidate=True,
enabled=lambda node: node.lensCorrection.lensCorrectionEnabled.value, enabled=lambda node: node.lensCorrection.lensCorrectionEnabled.value,
), ),
desc.BoolParam( desc.BoolParam(
@ -164,7 +151,6 @@ Convert or apply filtering to the input images.
label="Vignetting", label="Vignetting",
description="Vignetting correction if the model parameters are available in the metadata.", description="Vignetting correction if the model parameters are available in the metadata.",
value=False, value=False,
invalidate=True,
enabled=lambda node: node.lensCorrection.lensCorrectionEnabled.value, enabled=lambda node: node.lensCorrection.lensCorrectionEnabled.value,
), ),
desc.BoolParam( desc.BoolParam(
@ -172,7 +158,6 @@ Convert or apply filtering to the input images.
label="Chromatic Aberration", label="Chromatic Aberration",
description="Chromatic aberration (fringing) correction if the model parameters are available in the metadata.", description="Chromatic aberration (fringing) correction if the model parameters are available in the metadata.",
value=False, value=False,
invalidate=True,
enabled=lambda node: node.lensCorrection.lensCorrectionEnabled.value, enabled=lambda node: node.lensCorrection.lensCorrectionEnabled.value,
), ),
], ],
@ -183,7 +168,6 @@ Convert or apply filtering to the input images.
description="Scale factor.", description="Scale factor.",
value=1.0, value=1.0,
range=(0.0, 1.0, 0.01), range=(0.0, 1.0, 0.01),
invalidate=True,
), ),
desc.IntParam( desc.IntParam(
name="maxWidth", name="maxWidth",
@ -191,7 +175,6 @@ Convert or apply filtering to the input images.
description="Maximum width of the output images (0: ignored).", description="Maximum width of the output images (0: ignored).",
value=0, value=0,
range=(0, 10000, 1), range=(0, 10000, 1),
invalidate=True,
), ),
desc.IntParam( desc.IntParam(
name="maxHeight", name="maxHeight",
@ -199,7 +182,6 @@ Convert or apply filtering to the input images.
description="Maximum height of the output images (0: ignored).", description="Maximum height of the output images (0: ignored).",
value=0, value=0,
range=(0, 10000, 1), range=(0, 10000, 1),
invalidate=True,
), ),
desc.FloatParam( desc.FloatParam(
name="contrast", name="contrast",
@ -207,7 +189,6 @@ Convert or apply filtering to the input images.
description="Contrast.", description="Contrast.",
value=1.0, value=1.0,
range=(0.0, 100.0, 0.1), range=(0.0, 100.0, 0.1),
invalidate=True,
), ),
desc.IntParam( desc.IntParam(
name="medianFilter", name="medianFilter",
@ -215,7 +196,6 @@ Convert or apply filtering to the input images.
description="Median filter.", description="Median filter.",
value=0, value=0,
range=(0, 10, 1), range=(0, 10, 1),
invalidate=True,
), ),
desc.BoolParam( desc.BoolParam(
name="fillHoles", name="fillHoles",
@ -223,7 +203,6 @@ Convert or apply filtering to the input images.
description="Fill holes based on the alpha channel.\n" description="Fill holes based on the alpha channel.\n"
"Note: It will enable 'fixNonFinite', as it is required for the image pyramid construction used to fill holes.", "Note: It will enable 'fixNonFinite', as it is required for the image pyramid construction used to fill holes.",
value=False, value=False,
invalidate=True,
), ),
desc.GroupAttribute( desc.GroupAttribute(
name="sharpenFilter", name="sharpenFilter",
@ -236,7 +215,6 @@ Convert or apply filtering to the input images.
label="Enable", label="Enable",
description="Use sharpen filter.", description="Use sharpen filter.",
value=False, value=False,
invalidate=True,
), ),
desc.IntParam( desc.IntParam(
name="width", name="width",
@ -244,7 +222,6 @@ Convert or apply filtering to the input images.
description="Sharpening width.", description="Sharpening width.",
value=3, value=3,
range=(1, 9, 2), range=(1, 9, 2),
invalidate=True,
enabled=lambda node: node.sharpenFilter.sharpenFilterEnabled.value, enabled=lambda node: node.sharpenFilter.sharpenFilterEnabled.value,
), ),
desc.FloatParam( desc.FloatParam(
@ -253,7 +230,6 @@ Convert or apply filtering to the input images.
description="Sharpening contrast.", description="Sharpening contrast.",
value=1.0, value=1.0,
range=(0.0, 100.0, 0.1), range=(0.0, 100.0, 0.1),
invalidate=True,
enabled=lambda node: node.sharpenFilter.sharpenFilterEnabled.value, enabled=lambda node: node.sharpenFilter.sharpenFilterEnabled.value,
), ),
desc.FloatParam( desc.FloatParam(
@ -262,7 +238,6 @@ Convert or apply filtering to the input images.
description="Sharpening threshold.", description="Sharpening threshold.",
value=0.0, value=0.0,
range=(0.0, 1.0, 0.01), range=(0.0, 1.0, 0.01),
invalidate=True,
enabled=lambda node: node.sharpenFilter.sharpenFilterEnabled.value, enabled=lambda node: node.sharpenFilter.sharpenFilterEnabled.value,
), ),
], ],
@ -278,7 +253,6 @@ Convert or apply filtering to the input images.
label="Enable", label="Enable",
description="Use bilateral filter.", description="Use bilateral filter.",
value=False, value=False,
invalidate=True,
), ),
desc.IntParam( desc.IntParam(
name="bilateralFilterDistance", name="bilateralFilterDistance",
@ -287,7 +261,6 @@ Convert or apply filtering to the input images.
"Could be very slow for large filters, so it is recommended to use 5.", "Could be very slow for large filters, so it is recommended to use 5.",
value=0, value=0,
range=(0, 9, 1), range=(0, 9, 1),
invalidate=True,
enabled=lambda node: node.bilateralFilter.bilateralFilterEnabled.value, enabled=lambda node: node.bilateralFilter.bilateralFilterEnabled.value,
), ),
desc.FloatParam( desc.FloatParam(
@ -296,7 +269,6 @@ Convert or apply filtering to the input images.
description="Bilateral filter sigma in the coordinate space.", description="Bilateral filter sigma in the coordinate space.",
value=0.0, value=0.0,
range=(0.0, 150.0, 0.01), range=(0.0, 150.0, 0.01),
invalidate=True,
enabled=lambda node: node.bilateralFilter.bilateralFilterEnabled.value, enabled=lambda node: node.bilateralFilter.bilateralFilterEnabled.value,
), ),
desc.FloatParam( desc.FloatParam(
@ -305,7 +277,6 @@ Convert or apply filtering to the input images.
description="Bilateral filter sigma in the color space.", description="Bilateral filter sigma in the color space.",
value=0.0, value=0.0,
range=(0.0, 150.0, 0.01), range=(0.0, 150.0, 0.01),
invalidate=True,
enabled=lambda node: node.bilateralFilter.bilateralFilterEnabled.value, enabled=lambda node: node.bilateralFilter.bilateralFilterEnabled.value,
), ),
], ],
@ -321,7 +292,6 @@ Convert or apply filtering to the input images.
label="Enable", label="Enable",
description="Use Contrast Limited Adaptive Histogram Equalization (CLAHE) filter.", description="Use Contrast Limited Adaptive Histogram Equalization (CLAHE) filter.",
value=False, value=False,
invalidate=True,
), ),
desc.FloatParam( desc.FloatParam(
name="claheClipLimit", name="claheClipLimit",
@ -329,7 +299,6 @@ Convert or apply filtering to the input images.
description="Threshold for contrast limiting.", description="Threshold for contrast limiting.",
value=4.0, value=4.0,
range=(0.0, 8.0, 1.0), range=(0.0, 8.0, 1.0),
invalidate=True,
enabled=lambda node: node.claheFilter.claheEnabled.value, enabled=lambda node: node.claheFilter.claheEnabled.value,
), ),
desc.IntParam( desc.IntParam(
@ -339,7 +308,6 @@ Convert or apply filtering to the input images.
"Input image will be divided into equally sized rectangular tiles.", "Input image will be divided into equally sized rectangular tiles.",
value=8, value=8,
range=(4, 64, 4), range=(4, 64, 4),
invalidate=True,
enabled=lambda node: node.claheFilter.claheEnabled.value, enabled=lambda node: node.claheFilter.claheEnabled.value,
), ),
], ],
@ -355,7 +323,6 @@ Convert or apply filtering to the input images.
label="Enable", label="Enable",
description="Add noise.", description="Add noise.",
value=False, value=False,
invalidate=True,
), ),
desc.ChoiceParam( desc.ChoiceParam(
name="noiseMethod", name="noiseMethod",
@ -367,7 +334,6 @@ Convert or apply filtering to the input images.
value="uniform", value="uniform",
values=["uniform", "gaussian", "salt"], values=["uniform", "gaussian", "salt"],
exclusive=True, exclusive=True,
invalidate=True,
enabled=lambda node: node.noiseFilter.noiseEnabled.value, enabled=lambda node: node.noiseFilter.noiseEnabled.value,
), ),
desc.FloatParam( desc.FloatParam(
@ -379,7 +345,6 @@ Convert or apply filtering to the input images.
" - salt: the value of the specified portion of pixels.", " - salt: the value of the specified portion of pixels.",
value=0.0, value=0.0,
range=(0.0, 1.0, 0.0001), range=(0.0, 1.0, 0.0001),
invalidate=True,
enabled=lambda node: node.noiseFilter.noiseEnabled.value, enabled=lambda node: node.noiseFilter.noiseEnabled.value,
), ),
desc.FloatParam( desc.FloatParam(
@ -391,7 +356,6 @@ Convert or apply filtering to the input images.
" - salt: the portion of pixels to set to a specified value.", " - salt: the portion of pixels to set to a specified value.",
value=1.0, value=1.0,
range=(0.0, 1.0, 0.0001), range=(0.0, 1.0, 0.0001),
invalidate=True,
enabled=lambda node: node.noiseFilter.noiseEnabled.value, enabled=lambda node: node.noiseFilter.noiseEnabled.value,
), ),
desc.BoolParam( desc.BoolParam(
@ -400,7 +364,6 @@ Convert or apply filtering to the input images.
description="If selected, a single noise value will be applied to all channels.\n" description="If selected, a single noise value will be applied to all channels.\n"
"Otherwise, a separate noise value will be computed for each channel.", "Otherwise, a separate noise value will be computed for each channel.",
value=True, value=True,
invalidate=True,
enabled=lambda node: node.noiseFilter.noiseEnabled.value, enabled=lambda node: node.noiseFilter.noiseEnabled.value,
), ),
], ],
@ -417,7 +380,6 @@ Convert or apply filtering to the input images.
label="Enable", label="Enable",
description="Use Non-Local Mean Denoising from OpenCV to denoise images.", description="Use Non-Local Mean Denoising from OpenCV to denoise images.",
value=False, value=False,
invalidate=True,
), ),
desc.FloatParam( desc.FloatParam(
name="nlmFilterH", name="nlmFilterH",
@ -427,7 +389,6 @@ Convert or apply filtering to the input images.
"smaller H value preserves details but also preserves some noise.", "smaller H value preserves details but also preserves some noise.",
value=5.0, value=5.0,
range=(1.0, 1000.0, 0.01), range=(1.0, 1000.0, 0.01),
invalidate=True,
enabled=lambda node: node.nlmFilter.nlmFilterEnabled.value, enabled=lambda node: node.nlmFilter.nlmFilterEnabled.value,
), ),
desc.FloatParam( desc.FloatParam(
@ -438,7 +399,6 @@ Convert or apply filtering to the input images.
"smaller HColor value preserves details but also preserves some noise.", "smaller HColor value preserves details but also preserves some noise.",
value=10.0, value=10.0,
range=(0.0, 1000.0, 0.01), range=(0.0, 1000.0, 0.01),
invalidate=True,
enabled=lambda node: node.nlmFilter.nlmFilterEnabled.value, enabled=lambda node: node.nlmFilter.nlmFilterEnabled.value,
), ),
desc.IntParam( desc.IntParam(
@ -447,7 +407,6 @@ Convert or apply filtering to the input images.
description="Size in pixels of the template patch that is used to compute weights. Should be odd.", description="Size in pixels of the template patch that is used to compute weights. Should be odd.",
value=7, value=7,
range=(1, 101, 2), range=(1, 101, 2),
invalidate=True,
enabled=lambda node: node.nlmFilter.nlmFilterEnabled.value, enabled=lambda node: node.nlmFilter.nlmFilterEnabled.value,
), ),
desc.IntParam( desc.IntParam(
@ -457,7 +416,6 @@ Convert or apply filtering to the input images.
"Should be odd. Affect performance linearly: greater searchWindowsSize - greater denoising time.", "Should be odd. Affect performance linearly: greater searchWindowsSize - greater denoising time.",
value=21, value=21,
range=(1, 1001, 2), range=(1, 1001, 2),
invalidate=True,
enabled=lambda node: node.nlmFilter.nlmFilterEnabled.value, enabled=lambda node: node.nlmFilter.nlmFilterEnabled.value,
), ),
], ],
@ -473,7 +431,6 @@ Convert or apply filtering to the input images.
label="Enable", label="Enable",
description="Apply pixel aspect ratio.", description="Apply pixel aspect ratio.",
value=False, value=False,
invalidate=True,
), ),
desc.BoolParam( desc.BoolParam(
name="parRowDecimation", name="parRowDecimation",
@ -481,7 +438,6 @@ Convert or apply filtering to the input images.
description="If selected, reduce image height by decimating the number of rows.\n" description="If selected, reduce image height by decimating the number of rows.\n"
"Otherwise, increase width by upsampling image columns.", "Otherwise, increase width by upsampling image columns.",
value=False, value=False,
invalidate=True,
enabled=lambda node: node.parFilter.parEnabled.value, enabled=lambda node: node.parFilter.parEnabled.value,
), ),
], ],
@ -493,7 +449,6 @@ Convert or apply filtering to the input images.
value="rgba", value="rgba",
values=["rgba", "rgb", "grayscale"], values=["rgba", "rgb", "grayscale"],
exclusive=True, exclusive=True,
invalidate=True,
), ),
desc.ChoiceParam( desc.ChoiceParam(
name="inputColorSpace", name="inputColorSpace",
@ -502,7 +457,6 @@ Convert or apply filtering to the input images.
values=COLORSPACES, values=COLORSPACES,
value="AUTO", value="AUTO",
exclusive=True, exclusive=True,
invalidate=True,
), ),
desc.ChoiceParam( desc.ChoiceParam(
name="outputColorSpace", name="outputColorSpace",
@ -511,7 +465,6 @@ Convert or apply filtering to the input images.
values=COLORSPACES, values=COLORSPACES,
value="AUTO", value="AUTO",
exclusive=True, exclusive=True,
invalidate=True,
), ),
desc.ChoiceParam( desc.ChoiceParam(
name="workingColorSpace", name="workingColorSpace",
@ -520,7 +473,6 @@ Convert or apply filtering to the input images.
values=COLORSPACES, values=COLORSPACES,
value="Linear", value="Linear",
exclusive=True, exclusive=True,
invalidate=True,
enabled=lambda node: not node.applyDcpMetadata.value, enabled=lambda node: not node.applyDcpMetadata.value,
), ),
desc.ChoiceParam( desc.ChoiceParam(
@ -530,14 +482,12 @@ Convert or apply filtering to the input images.
values=RAW_COLOR_INTERPRETATION, values=RAW_COLOR_INTERPRETATION,
value="DCPLinearProcessing" if os.environ.get("ALICEVISION_COLOR_PROFILE_DB", "") else "LibRawWhiteBalancing", value="DCPLinearProcessing" if os.environ.get("ALICEVISION_COLOR_PROFILE_DB", "") else "LibRawWhiteBalancing",
exclusive=True, exclusive=True,
invalidate=True,
), ),
desc.BoolParam( desc.BoolParam(
name="applyDcpMetadata", name="applyDcpMetadata",
label="Apply DCP Metadata", label="Apply DCP Metadata",
description="If the image contains some DCP metadata, then generate a DCP profile from them and apply it to the image content.", description="If the image contains some DCP metadata, then generate a DCP profile from them and apply it to the image content.",
value=False, value=False,
invalidate=True,
), ),
desc.File( desc.File(
name="colorProfileDatabase", name="colorProfileDatabase",
@ -552,7 +502,6 @@ Convert or apply filtering to the input images.
label="Error On Missing DCP Color Profile", label="Error On Missing DCP Color Profile",
description="If a color profile database is specified but no color profile is found for at least one image, then an error is thrown.", description="If a color profile database is specified but no color profile is found for at least one image, then an error is thrown.",
value=True, value=True,
invalidate=True,
enabled=lambda node: (node.rawColorInterpretation.value == "DCPLinearProcessing") or (node.rawColorInterpretation.value == "DCPMetadata"), enabled=lambda node: (node.rawColorInterpretation.value == "DCPLinearProcessing") or (node.rawColorInterpretation.value == "DCPMetadata"),
), ),
desc.BoolParam( desc.BoolParam(
@ -560,7 +509,6 @@ Convert or apply filtering to the input images.
label="Use DCP Color Matrix Only", label="Use DCP Color Matrix Only",
description="Use only the Color Matrix information from the DCP and ignore the Forward Matrix.", description="Use only the Color Matrix information from the DCP and ignore the Forward Matrix.",
value=True, value=True,
invalidate=True,
enabled=lambda node: (node.rawColorInterpretation.value == "DCPLinearProcessing") or (node.rawColorInterpretation.value == "DCPMetadata"), enabled=lambda node: (node.rawColorInterpretation.value == "DCPLinearProcessing") or (node.rawColorInterpretation.value == "DCPMetadata"),
), ),
desc.BoolParam( desc.BoolParam(
@ -568,7 +516,6 @@ Convert or apply filtering to the input images.
label="WB After Demosaicing", label="WB After Demosaicing",
description="Do White Balance after demosaicing, just before DCP profile application.", description="Do White Balance after demosaicing, just before DCP profile application.",
value=False, value=False,
invalidate=True,
enabled=lambda node: (node.rawColorInterpretation.value == "DCPLinearProcessing") or (node.rawColorInterpretation.value == "DCPMetadata"), enabled=lambda node: (node.rawColorInterpretation.value == "DCPLinearProcessing") or (node.rawColorInterpretation.value == "DCPMetadata"),
), ),
desc.ChoiceParam( desc.ChoiceParam(
@ -578,7 +525,6 @@ Convert or apply filtering to the input images.
value="AHD", value="AHD",
values=["linear", "VNG", "PPG", "AHD", "DCB", "AHD-Mod", "AFD", "VCD", "Mixed", "LMMSE", "AMaZE", "DHT", "AAHD", "none"], values=["linear", "VNG", "PPG", "AHD", "DCB", "AHD-Mod", "AFD", "VCD", "Mixed", "LMMSE", "AMaZE", "DHT", "AAHD", "none"],
exclusive=True, exclusive=True,
invalidate=True,
), ),
desc.ChoiceParam( desc.ChoiceParam(
name="highlightMode", name="highlightMode",
@ -591,7 +537,6 @@ Convert or apply filtering to the input images.
value=0, value=0,
values=[0, 1, 2, 3, 4, 5, 6, 7, 8, 9], values=[0, 1, 2, 3, 4, 5, 6, 7, 8, 9],
exclusive=True, exclusive=True,
invalidate=True,
), ),
desc.FloatParam( desc.FloatParam(
name="correlatedColorTemperature", name="correlatedColorTemperature",
@ -600,7 +545,6 @@ Convert or apply filtering to the input images.
"A negative or null value indicates that the metadata information will be used.", "A negative or null value indicates that the metadata information will be used.",
value=-1.0, value=-1.0,
range=(-1.0, 10000.0, 1.0), range=(-1.0, 10000.0, 1.0),
invalidate=True,
), ),
desc.File( desc.File(
name="lensCorrectionProfileInfo", name="lensCorrectionProfileInfo",
@ -614,7 +558,6 @@ Convert or apply filtering to the input images.
label="LCP Generic Search", label="LCP Generic Search",
description="The lens name and camera maker are used to match the LCP database, but the camera model is ignored.", description="The lens name and camera maker are used to match the LCP database, but the camera model is ignored.",
value=True, value=True,
invalidate=True,
advanced=True, advanced=True,
), ),
desc.ChoiceParam( desc.ChoiceParam(
@ -628,7 +571,6 @@ Convert or apply filtering to the input images.
values=EXR_STORAGE_DATA_TYPE, values=EXR_STORAGE_DATA_TYPE,
value="float", value="float",
exclusive=True, exclusive=True,
invalidate=True,
), ),
desc.ChoiceParam( desc.ChoiceParam(
name="exrCompressionMethod", name="exrCompressionMethod",
@ -637,7 +579,6 @@ Convert or apply filtering to the input images.
value="auto", value="auto",
values=["none", "auto", "rle", "zip", "zips", "piz", "pxr24", "b44", "b44a", "dwaa", "dwab"], values=["none", "auto", "rle", "zip", "zips", "piz", "pxr24", "b44", "b44a", "dwaa", "dwab"],
exclusive=True, exclusive=True,
invalidate=True,
), ),
desc.IntParam( desc.IntParam(
name="exrCompressionLevel", name="exrCompressionLevel",
@ -647,7 +588,6 @@ Convert or apply filtering to the input images.
"A value of 0 will be ignored, and the default value for the selected method will be used.", "A value of 0 will be ignored, and the default value for the selected method will be used.",
value=0, value=0,
range=(0, 500, 1), range=(0, 500, 1),
invalidate=True,
enabled=lambda node: node.exrCompressionMethod.value in ["dwaa", "dwab", "zip", "zips"], enabled=lambda node: node.exrCompressionMethod.value in ["dwaa", "dwab", "zip", "zips"],
), ),
desc.BoolParam( desc.BoolParam(
@ -655,7 +595,6 @@ Convert or apply filtering to the input images.
label="JPEG Compress", label="JPEG Compress",
description="Enable JPEG compression.", description="Enable JPEG compression.",
value=True, value=True,
invalidate=True,
), ),
desc.IntParam( desc.IntParam(
name="jpegQuality", name="jpegQuality",
@ -663,7 +602,6 @@ Convert or apply filtering to the input images.
description="JPEG images quality after compression.", description="JPEG images quality after compression.",
value=90, value=90,
range=(0, 100, 1), range=(0, 100, 1),
invalidate=True,
enabled=lambda node: node.jpegCompress.value, enabled=lambda node: node.jpegCompress.value,
), ),
desc.ChoiceParam( desc.ChoiceParam(
@ -673,7 +611,6 @@ Convert or apply filtering to the input images.
values=VERBOSE_LEVEL, values=VERBOSE_LEVEL,
value="info", value="info",
exclusive=True, exclusive=True,
invalidate=False,
), ),
] ]
@ -683,7 +620,6 @@ Convert or apply filtering to the input images.
label="SfMData", label="SfMData",
description="Output SfMData file.", description="Output SfMData file.",
value=lambda attr: (desc.Node.internalFolder + os.path.basename(attr.node.input.value)) if (os.path.splitext(attr.node.input.value)[1] in [".abc", ".sfm"]) else "", value=lambda attr: (desc.Node.internalFolder + os.path.basename(attr.node.input.value)) if (os.path.splitext(attr.node.input.value)[1] in [".abc", ".sfm"]) else "",
invalidate=False,
group="", # do not export on the command line group="", # do not export on the command line
), ),
desc.File( desc.File(
@ -691,7 +627,6 @@ Convert or apply filtering to the input images.
label="Folder", label="Folder",
description="Output images folder.", description="Output images folder.",
value=desc.Node.internalFolder, value=desc.Node.internalFolder,
invalidate=False,
), ),
desc.File( desc.File(
name="outputImages", name="outputImages",
@ -700,6 +635,5 @@ Convert or apply filtering to the input images.
semantic="image", semantic="image",
value=outputImagesValueFunct, value=outputImagesValueFunct,
group="", # do not export on the command line group="", # do not export on the command line
invalidate=False,
), ),
] ]

View file

@ -22,14 +22,12 @@ Generate a mask with segmented labels for each pixel.
label="Input", label="Input",
description="SfMData file input.", description="SfMData file input.",
value="", value="",
invalidate=True,
), ),
desc.File( desc.File(
name="modelPath", name="modelPath",
label="Segmentation Model", label="Segmentation Model",
description="Weights file for the internal model.", description="Weights file for the internal model.",
value="${ALICEVISION_SEMANTIC_SEGMENTATION_MODEL}", value="${ALICEVISION_SEMANTIC_SEGMENTATION_MODEL}",
invalidate=True,
), ),
desc.ChoiceParam( desc.ChoiceParam(
name="validClasses", name="validClasses",
@ -49,14 +47,12 @@ Generate a mask with segmented labels for each pixel.
"train", "tvmonitor" "train", "tvmonitor"
], ],
exclusive=False, exclusive=False,
invalidate=True,
), ),
desc.BoolParam( desc.BoolParam(
name="maskInvert", name="maskInvert",
label="Invert Masks", label="Invert Masks",
description="Invert mask values. If selected, the pixels corresponding to the mask will be set to 0 instead of 255.", description="Invert mask values. If selected, the pixels corresponding to the mask will be set to 0 instead of 255.",
value=False, value=False,
invalidate=True,
), ),
desc.BoolParam( desc.BoolParam(
name="useGpu", name="useGpu",
@ -70,7 +66,6 @@ Generate a mask with segmented labels for each pixel.
label="Keep Filename", label="Keep Filename",
description="Keep Input Filename", description="Keep Input Filename",
value=False, value=False,
invalidate=True,
), ),
desc.ChoiceParam( desc.ChoiceParam(
name="verboseLevel", name="verboseLevel",
@ -79,7 +74,6 @@ Generate a mask with segmented labels for each pixel.
values=VERBOSE_LEVEL, values=VERBOSE_LEVEL,
value="info", value="info",
exclusive=True, exclusive=True,
invalidate=False,
), ),
] ]
@ -89,7 +83,6 @@ Generate a mask with segmented labels for each pixel.
label="Masks Folder", label="Masks Folder",
description="Output path for the masks.", description="Output path for the masks.",
value=desc.Node.internalFolder, value=desc.Node.internalFolder,
invalidate=False,
), ),
desc.File( desc.File(
name="masks", name="masks",
@ -98,6 +91,5 @@ Generate a mask with segmented labels for each pixel.
semantic="image", semantic="image",
value=lambda attr: desc.Node.internalFolder + "<VIEW_ID>.exr" if not attr.node.keepFilename.value else desc.Node.internalFolder + "<FILESTEM>.exr", value=lambda attr: desc.Node.internalFolder + "<VIEW_ID>.exr" if not attr.node.keepFilename.value else desc.Node.internalFolder + "<FILESTEM>.exr",
group="", group="",
invalidate=False,
), ),
] ]

View file

@ -20,7 +20,6 @@ Import an E57 file and generate an SfMData.
label="E57 File", label="E57 File",
description="Path to an E57 file.", description="Path to an E57 file.",
value="", value="",
invalidate=True,
), ),
name="input", name="input",
label="Input Files", label="Input Files",
@ -32,7 +31,6 @@ Import an E57 file and generate an SfMData.
description="Ensure each point has no neighbour closer than maxDensity meters.", description="Ensure each point has no neighbour closer than maxDensity meters.",
value=0.01, value=0.01,
range=(0.0, 0.2, 0.001), range=(0.0, 0.2, 0.001),
invalidate=True,
), ),
desc.FloatParam( desc.FloatParam(
name="minIntensity", name="minIntensity",
@ -40,7 +38,6 @@ Import an E57 file and generate an SfMData.
description="Ensure no point has an intensity lower than this value.", description="Ensure no point has an intensity lower than this value.",
value=0.03, value=0.03,
range=(0.0, 1.0, 0.01), range=(0.0, 1.0, 0.01),
invalidate=True,
), ),
desc.IntParam( desc.IntParam(
name="maxPointsPerBlock", name="maxPointsPerBlock",
@ -48,7 +45,6 @@ Import an E57 file and generate an SfMData.
description="Limit the number of points per computation region (For memory usage, 0 means no limit).", description="Limit the number of points per computation region (For memory usage, 0 means no limit).",
value=5000000, value=5000000,
range=(0, 10000000, 100000), range=(0, 10000000, 100000),
invalidate=True,
), ),
desc.ChoiceParam( desc.ChoiceParam(
name="verboseLevel", name="verboseLevel",
@ -57,7 +53,6 @@ Import an E57 file and generate an SfMData.
values=VERBOSE_LEVEL, values=VERBOSE_LEVEL,
value="info", value="info",
exclusive=True, exclusive=True,
invalidate=False,
), ),
] ]
@ -67,6 +62,5 @@ Import an E57 file and generate an SfMData.
label="Output", label="Output",
description="Path to the output JSON file.", description="Path to the output JSON file.",
value=desc.Node.internalFolder + "inputset.json", value=desc.Node.internalFolder + "inputset.json",
invalidate=False,
), ),
] ]

View file

@ -18,14 +18,12 @@ class ImportKnownPoses(desc.AVCommandLineNode):
label="SfMData", label="SfMData",
description="Input SfMData file.", description="Input SfMData file.",
value="", value="",
invalidate=True,
), ),
desc.File( desc.File(
name="knownPosesData", name="knownPosesData",
label="Known Poses Data", label="Known Poses Data",
description="Known poses data in the JSON or XMP format.", description="Known poses data in the JSON or XMP format.",
value="", value="",
invalidate=True,
), ),
desc.ChoiceParam( desc.ChoiceParam(
name="verboseLevel", name="verboseLevel",
@ -34,7 +32,6 @@ class ImportKnownPoses(desc.AVCommandLineNode):
values=VERBOSE_LEVEL, values=VERBOSE_LEVEL,
value="info", value="info",
exclusive=True, exclusive=True,
invalidate=False,
), ),
] ]
@ -44,7 +41,6 @@ class ImportKnownPoses(desc.AVCommandLineNode):
label="Output", label="Output",
description="Path to the output SfMData file.", description="Path to the output SfMData file.",
value=desc.Node.internalFolder + "/sfmData.abc", value=desc.Node.internalFolder + "/sfmData.abc",
invalidate=False,
), ),
] ]

View file

@ -73,7 +73,6 @@ You can extract frames at regular interval by configuring only the min/maxFrameS
label="Input Path", label="Input Path",
description="Input path.", description="Input path.",
value="", value="",
invalidate=True,
), ),
name="inputPaths", name="inputPaths",
label="Input Paths", label="Input Paths",
@ -85,7 +84,6 @@ You can extract frames at regular interval by configuring only the min/maxFrameS
label="Brand", label="Brand",
description="Camera brand.", description="Camera brand.",
value="", value="",
invalidate=True,
), ),
name="brands", name="brands",
label="Brands", label="Brands",
@ -97,7 +95,6 @@ You can extract frames at regular interval by configuring only the min/maxFrameS
label="Model", label="Model",
description="Camera model.", description="Camera model.",
value="", value="",
invalidate=True,
), ),
name="models", name="models",
label="Models", label="Models",
@ -110,7 +107,6 @@ You can extract frames at regular interval by configuring only the min/maxFrameS
description="Focal in mm (will be used if not 0).", description="Focal in mm (will be used if not 0).",
value=0.0, value=0.0,
range=(0.0, 500.0, 1.0), range=(0.0, 500.0, 1.0),
invalidate=True,
), ),
name="mmFocals", name="mmFocals",
label="Focals", label="Focals",
@ -121,7 +117,6 @@ You can extract frames at regular interval by configuring only the min/maxFrameS
label="Sensor Database", label="Sensor Database",
description="Camera sensor width database path.", description="Camera sensor width database path.",
value="${ALICEVISION_SENSOR_DB}", value="${ALICEVISION_SENSOR_DB}",
invalidate=True,
), ),
desc.ListAttribute( desc.ListAttribute(
elementDesc=desc.File( elementDesc=desc.File(
@ -129,7 +124,6 @@ You can extract frames at regular interval by configuring only the min/maxFrameS
label="Masks Path", label="Masks Path",
description="Directory containing masks to apply to the frames.", description="Directory containing masks to apply to the frames.",
value="", value="",
invalidate=True,
), ),
name="maskPaths", name="maskPaths",
label="Masks", label="Masks",
@ -150,7 +144,6 @@ You can extract frames at regular interval by configuring only the min/maxFrameS
label="Use Smart Keyframe Selection", label="Use Smart Keyframe Selection",
description="Use the smart keyframe selection.", description="Use the smart keyframe selection.",
value=True, value=True,
invalidate=True,
), ),
desc.GroupAttribute( desc.GroupAttribute(
name="regularSelection", name="regularSelection",
@ -166,7 +159,6 @@ You can extract frames at regular interval by configuring only the min/maxFrameS
description="Minimum number of frames between two keyframes.", description="Minimum number of frames between two keyframes.",
value=12, value=12,
range=(1, 1000, 1), range=(1, 1000, 1),
invalidate=True,
enabled=lambda node: node.regularSelection.enabled, enabled=lambda node: node.regularSelection.enabled,
), ),
desc.IntParam( desc.IntParam(
@ -175,7 +167,6 @@ You can extract frames at regular interval by configuring only the min/maxFrameS
description="Maximum number of frames between two keyframes. Ignored if equal to 0.", description="Maximum number of frames between two keyframes. Ignored if equal to 0.",
value=0, value=0,
range=(0, 1000, 1), range=(0, 1000, 1),
invalidate=True,
enabled=lambda node: node.regularSelection.enabled, enabled=lambda node: node.regularSelection.enabled,
), ),
desc.IntParam( desc.IntParam(
@ -186,7 +177,6 @@ You can extract frames at regular interval by configuring only the min/maxFrameS
"might cause the selection to stop before reaching the end of the input sequence(s).", "might cause the selection to stop before reaching the end of the input sequence(s).",
value=0, value=0,
range=(0, 10000, 1), range=(0, 10000, 1),
invalidate=True,
enabled=lambda node: node.regularSelection.enabled, enabled=lambda node: node.regularSelection.enabled,
), ),
], ],
@ -205,7 +195,6 @@ You can extract frames at regular interval by configuring only the min/maxFrameS
description="The percentage of pixels in the frame that need to have moved since the last keyframe to be considered for the selection.", description="The percentage of pixels in the frame that need to have moved since the last keyframe to be considered for the selection.",
value=10.0, value=10.0,
range=(0.0, 100.0, 1.0), range=(0.0, 100.0, 1.0),
invalidate=True,
enabled=lambda node: node.smartSelection.enabled, enabled=lambda node: node.smartSelection.enabled,
), ),
desc.IntParam( desc.IntParam(
@ -214,7 +203,6 @@ You can extract frames at regular interval by configuring only the min/maxFrameS
description="Minimum number of frames selected to be keyframes.", description="Minimum number of frames selected to be keyframes.",
value=40, value=40,
range=(1, 100, 1), range=(1, 100, 1),
invalidate=True,
enabled=lambda node: node.smartSelection.enabled, enabled=lambda node: node.smartSelection.enabled,
), ),
desc.IntParam( desc.IntParam(
@ -223,7 +211,6 @@ You can extract frames at regular interval by configuring only the min/maxFrameS
description="Maximum number of frames selected to be keyframes.", description="Maximum number of frames selected to be keyframes.",
value=2000, value=2000,
range=(1, 10000, 1), range=(1, 10000, 1),
invalidate=True,
enabled=lambda node: node.smartSelection.enabled, enabled=lambda node: node.smartSelection.enabled,
), ),
desc.IntParam( desc.IntParam(
@ -233,7 +220,6 @@ You can extract frames at regular interval by configuring only the min/maxFrameS
"Aspect ratio will be preserved. No rescale will be performed if equal to 0.", "Aspect ratio will be preserved. No rescale will be performed if equal to 0.",
value=720, value=720,
range=(0, 4000, 1), range=(0, 4000, 1),
invalidate=True,
enabled=lambda node: node.smartSelection.enabled, enabled=lambda node: node.smartSelection.enabled,
advanced=True, advanced=True,
), ),
@ -244,7 +230,6 @@ You can extract frames at regular interval by configuring only the min/maxFrameS
"Aspect ratio will be preserved. No rescale will be performed if equal to 0.", "Aspect ratio will be preserved. No rescale will be performed if equal to 0.",
value=720, value=720,
range=(0, 4000, 1), range=(0, 4000, 1),
invalidate=True,
enabled=lambda node: node.smartSelection.enabled, enabled=lambda node: node.smartSelection.enabled,
advanced=True, advanced=True,
), ),
@ -254,7 +239,6 @@ You can extract frames at regular interval by configuring only the min/maxFrameS
description="The size, in pixels, of the sliding window used to evaluate a frame's sharpness.", description="The size, in pixels, of the sliding window used to evaluate a frame's sharpness.",
value=200, value=200,
range=(1, 10000, 1), range=(1, 10000, 1),
invalidate=True,
enabled=lambda node: node.smartSelection.enabled, enabled=lambda node: node.smartSelection.enabled,
advanced=True, advanced=True,
), ),
@ -264,7 +248,6 @@ You can extract frames at regular interval by configuring only the min/maxFrameS
description="The size, in pixels, of the cells within a frame in which the optical flow scores is evaluated.", description="The size, in pixels, of the cells within a frame in which the optical flow scores is evaluated.",
value=90, value=90,
range=(10, 2000, 1), range=(10, 2000, 1),
invalidate=True,
enabled=lambda node: node.smartSelection.enabled, enabled=lambda node: node.smartSelection.enabled,
advanced=True, advanced=True,
), ),
@ -292,7 +275,6 @@ You can extract frames at regular interval by configuring only the min/maxFrameS
"option enabled instead of [00015.exr, 00294.exr, 00825.exr].", "option enabled instead of [00015.exr, 00294.exr, 00825.exr].",
value=False, value=False,
enabled=lambda node: node.outputExtension.value != "none", enabled=lambda node: node.outputExtension.value != "none",
invalidate=True,
), ),
desc.ChoiceParam( desc.ChoiceParam(
name="outputExtension", name="outputExtension",
@ -305,7 +287,6 @@ You can extract frames at regular interval by configuring only the min/maxFrameS
exclusive=True, exclusive=True,
validValue=lambda node: not (any(ext in input.value.lower() for ext in videoExts for input in node.inputPaths.value) and node.outputExtension.value == "none"), validValue=lambda node: not (any(ext in input.value.lower() for ext in videoExts for input in node.inputPaths.value) and node.outputExtension.value == "none"),
errorMessage="A video input has been provided. The output extension should be different from 'none'.", errorMessage="A video input has been provided. The output extension should be different from 'none'.",
invalidate=True,
), ),
desc.ChoiceParam( desc.ChoiceParam(
name="storageDataType", name="storageDataType",
@ -318,7 +299,6 @@ You can extract frames at regular interval by configuring only the min/maxFrameS
values=EXR_STORAGE_DATA_TYPE, values=EXR_STORAGE_DATA_TYPE,
value="float", value="float",
exclusive=True, exclusive=True,
invalidate=True,
enabled=lambda node: node.outputExtension.value == "exr", enabled=lambda node: node.outputExtension.value == "exr",
advanced=True, advanced=True,
), ),
@ -342,14 +322,12 @@ You can extract frames at regular interval by configuring only the min/maxFrameS
label="Export Scores To CSV", label="Export Scores To CSV",
description="Export the computed sharpness and optical flow scores to a CSV file.", description="Export the computed sharpness and optical flow scores to a CSV file.",
value=False, value=False,
invalidate=True,
), ),
desc.StringParam( desc.StringParam(
name="csvFilename", name="csvFilename",
label="CSV Filename", label="CSV Filename",
description="Name of the CSV file to export. It will be written in the node's output folder.", description="Name of the CSV file to export. It will be written in the node's output folder.",
value="scores.csv", value="scores.csv",
invalidate=True,
enabled=lambda node: node.debugOptions.debugScores.exportScores.value, enabled=lambda node: node.debugOptions.debugScores.exportScores.value,
), ),
desc.BoolParam( desc.BoolParam(
@ -357,7 +335,6 @@ You can extract frames at regular interval by configuring only the min/maxFrameS
label="Export Selected Frames", label="Export Selected Frames",
description="Add a column in the CSV file containing 1s for frames that were selected and 0s for those that were not.", description="Add a column in the CSV file containing 1s for frames that were selected and 0s for those that were not.",
value=False, value=False,
invalidate=True,
enabled=lambda node: node.debugOptions.debugScores.exportScores.value, enabled=lambda node: node.debugOptions.debugScores.exportScores.value,
), ),
], ],
@ -374,7 +351,6 @@ You can extract frames at regular interval by configuring only the min/maxFrameS
label="Visualise Optical Flow", label="Visualise Optical Flow",
description="Export each frame's optical flow HSV visualisation as PNG images.", description="Export each frame's optical flow HSV visualisation as PNG images.",
value=False, value=False,
invalidate=True,
enabled=lambda node: node.debugOptions.opticalFlowVisualisation.enabled, enabled=lambda node: node.debugOptions.opticalFlowVisualisation.enabled,
), ),
desc.BoolParam( desc.BoolParam(
@ -383,7 +359,6 @@ You can extract frames at regular interval by configuring only the min/maxFrameS
description="Export each frame's optical flow HSV visualisation as PNG images, but do not perform any score computation or frame selection.\n" description="Export each frame's optical flow HSV visualisation as PNG images, but do not perform any score computation or frame selection.\n"
"If this option is selected, all the other options will be ignored.", "If this option is selected, all the other options will be ignored.",
value=False, value=False,
invalidate=True,
enabled=lambda node: node.debugOptions.opticalFlowVisualisation.enabled, enabled=lambda node: node.debugOptions.opticalFlowVisualisation.enabled,
), ),
], ],
@ -393,7 +368,6 @@ You can extract frames at regular interval by configuring only the min/maxFrameS
label="Skip Sharpness Computation", label="Skip Sharpness Computation",
description="Skip the sharpness score computation. A fixed score of 1.0 will be applied by default to all the frames.", description="Skip the sharpness score computation. A fixed score of 1.0 will be applied by default to all the frames.",
value=False, value=False,
invalidate=True,
enabled=lambda node: node.debugOptions.enabled, enabled=lambda node: node.debugOptions.enabled,
), ),
desc.BoolParam( desc.BoolParam(
@ -401,7 +375,6 @@ You can extract frames at regular interval by configuring only the min/maxFrameS
label="Skip Frame Selection", label="Skip Frame Selection",
description="Compute the sharpness and optical flow scores, but do not proceed to the frame selection.", description="Compute the sharpness and optical flow scores, but do not proceed to the frame selection.",
value=False, value=False,
invalidate=True,
enabled=lambda node: node.debugOptions.enabled, enabled=lambda node: node.debugOptions.enabled,
), ),
], ],
@ -413,7 +386,6 @@ You can extract frames at regular interval by configuring only the min/maxFrameS
values=VERBOSE_LEVEL, values=VERBOSE_LEVEL,
value="info", value="info",
exclusive=True, exclusive=True,
invalidate=False,
), ),
] ]
@ -423,14 +395,12 @@ You can extract frames at regular interval by configuring only the min/maxFrameS
label="Folder", label="Folder",
description="Output keyframes folder for extracted frames.", description="Output keyframes folder for extracted frames.",
value=desc.Node.internalFolder, value=desc.Node.internalFolder,
invalidate=False,
), ),
desc.File( desc.File(
name="outputSfMDataKeyframes", name="outputSfMDataKeyframes",
label="Keyframes SfMData", label="Keyframes SfMData",
description="Output SfMData file containing all the selected keyframes.", description="Output SfMData file containing all the selected keyframes.",
value=desc.Node.internalFolder + "keyframes.sfm", value=desc.Node.internalFolder + "keyframes.sfm",
invalidate=False,
), ),
desc.File( desc.File(
name="outputSfMDataFrames", name="outputSfMDataFrames",
@ -438,7 +408,6 @@ You can extract frames at regular interval by configuring only the min/maxFrameS
description="Output SfMData file containing all the frames that were not selected as keyframes.\n" description="Output SfMData file containing all the frames that were not selected as keyframes.\n"
"If the input contains videos, this file will not be written since all the frames that were not selected do not actually exist on disk.", "If the input contains videos, this file will not be written since all the frames that were not selected do not actually exist on disk.",
value=desc.Node.internalFolder + "frames.sfm", value=desc.Node.internalFolder + "frames.sfm",
invalidate=False,
), ),
] ]

View file

@ -44,14 +44,12 @@ Calibrate LDR to HDR response curve from samples.
label="SfMData", label="SfMData",
description="Input SfMData file.", description="Input SfMData file.",
value="", value="",
invalidate=True,
), ),
desc.File( desc.File(
name="samples", name="samples",
label="Samples Folder", label="Samples Folder",
description="Samples folder.", description="Samples folder.",
value=desc.Node.internalFolder, value=desc.Node.internalFolder,
invalidate=True,
), ),
desc.IntParam( desc.IntParam(
name="userNbBrackets", name="userNbBrackets",
@ -72,7 +70,6 @@ Calibrate LDR to HDR response curve from samples.
"else it is equal to 'userNbBrackets'.", "else it is equal to 'userNbBrackets'.",
value=0, value=0,
range=(0, 15, 1), range=(0, 15, 1),
invalidate=True,
group="bracketsParams", group="bracketsParams",
), ),
desc.BoolParam( desc.BoolParam(
@ -80,7 +77,6 @@ Calibrate LDR to HDR response curve from samples.
label="Bypass", label="Bypass",
description="Bypass HDR creation and use the medium bracket as the source for the next steps.", description="Bypass HDR creation and use the medium bracket as the source for the next steps.",
value=False, value=False,
invalidate=True,
enabled=lambda node: node.nbBrackets.value != 1, enabled=lambda node: node.nbBrackets.value != 1,
), ),
desc.ChoiceParam( desc.ChoiceParam(
@ -95,7 +91,6 @@ Calibrate LDR to HDR response curve from samples.
values=["auto", "linear", "debevec", "grossberg", "laguerre"], values=["auto", "linear", "debevec", "grossberg", "laguerre"],
value="auto", value="auto",
exclusive=True, exclusive=True,
invalidate=True,
enabled=lambda node: node.byPass.enabled and not node.byPass.value, enabled=lambda node: node.byPass.enabled and not node.byPass.value,
), ),
desc.ChoiceParam( desc.ChoiceParam(
@ -109,7 +104,6 @@ Calibrate LDR to HDR response curve from samples.
value="default", value="default",
values=["default", "gaussian", "triangle", "plateau"], values=["default", "gaussian", "triangle", "plateau"],
exclusive=True, exclusive=True,
invalidate=True,
enabled=lambda node: node.byPass.enabled and not node.byPass.value, enabled=lambda node: node.byPass.enabled and not node.byPass.value,
), ),
desc.IntParam( desc.IntParam(
@ -118,7 +112,6 @@ Calibrate LDR to HDR response curve from samples.
description="Quantization level like 8 bits or 10 bits.", description="Quantization level like 8 bits or 10 bits.",
value=10, value=10,
range=(8, 14, 1), range=(8, 14, 1),
invalidate=True,
advanced=True, advanced=True,
enabled=lambda node: node.byPass.enabled and not node.byPass.value, enabled=lambda node: node.byPass.enabled and not node.byPass.value,
), ),
@ -142,7 +135,6 @@ Calibrate LDR to HDR response curve from samples.
"can be managed by the calibration step (in term of computation time and memory usage).", "can be managed by the calibration step (in term of computation time and memory usage).",
value=1000000, value=1000000,
range=(8, 10000000, 1000), range=(8, 10000000, 1000),
invalidate=True,
advanced=True, advanced=True,
enabled=lambda node: node.byPass.enabled and not node.byPass.value, enabled=lambda node: node.byPass.enabled and not node.byPass.value,
), ),
@ -153,7 +145,6 @@ Calibrate LDR to HDR response curve from samples.
values=VERBOSE_LEVEL, values=VERBOSE_LEVEL,
value="info", value="info",
exclusive=True, exclusive=True,
invalidate=False,
), ),
] ]
@ -163,7 +154,6 @@ Calibrate LDR to HDR response curve from samples.
label="Response File", label="Response File",
description="Path to the output response file.", description="Path to the output response file.",
value=desc.Node.internalFolder + "response_<INTRINSIC_ID>.csv", value=desc.Node.internalFolder + "response_<INTRINSIC_ID>.csv",
invalidate=False,
), ),
] ]

View file

@ -43,14 +43,12 @@ Merge LDR images into HDR images.
label="SfMData", label="SfMData",
description="Input SfMData file.", description="Input SfMData file.",
value="", value="",
invalidate=True,
), ),
desc.File( desc.File(
name="response", name="response",
label="Response File", label="Response File",
description="Response file.", description="Response file.",
value="", value="",
invalidate=True,
), ),
desc.IntParam( desc.IntParam(
name="userNbBrackets", name="userNbBrackets",
@ -71,7 +69,6 @@ Merge LDR images into HDR images.
"is 0, else it is equal to 'userNbBrackets'.", "is 0, else it is equal to 'userNbBrackets'.",
value=0, value=0,
range=(0, 15, 1), range=(0, 15, 1),
invalidate=True,
group="bracketsParams", group="bracketsParams",
), ),
desc.BoolParam( desc.BoolParam(
@ -79,7 +76,6 @@ Merge LDR images into HDR images.
label="Manually Specify Ref Bracket", label="Manually Specify Ref Bracket",
description="Manually specify the reference bracket index to control the exposure of the HDR image.", description="Manually specify the reference bracket index to control the exposure of the HDR image.",
value=False, value=False,
invalidate=True,
group="user", # not used directly on the command line group="user", # not used directly on the command line
), ),
desc.IntParam( desc.IntParam(
@ -89,7 +85,6 @@ Merge LDR images into HDR images.
"+N to use a more exposed bracket or -N to use a less exposed bracket.", "+N to use a more exposed bracket or -N to use a less exposed bracket.",
value=1, value=1,
range=(-4, 4, 1), range=(-4, 4, 1),
invalidate=True,
enabled=lambda node: (node.nbBrackets.value != 1 and node.offsetRefBracketIndexEnabled.value), enabled=lambda node: (node.nbBrackets.value != 1 and node.offsetRefBracketIndexEnabled.value),
), ),
desc.FloatParam( desc.FloatParam(
@ -98,7 +93,6 @@ Merge LDR images into HDR images.
description="Expected mean luminance of the HDR images used to compute the final panorama.", description="Expected mean luminance of the HDR images used to compute the final panorama.",
value=0.4, value=0.4,
range=(0.0, 1.0, 0.01), range=(0.0, 1.0, 0.01),
invalidate=True,
enabled=lambda node: (node.nbBrackets.value != 1 and not node.offsetRefBracketIndexEnabled.value), enabled=lambda node: (node.nbBrackets.value != 1 and not node.offsetRefBracketIndexEnabled.value),
), ),
desc.FloatParam( desc.FloatParam(
@ -107,7 +101,6 @@ Merge LDR images into HDR images.
description="Minimum channel input value to be considered in advanced pixelwise merging.", description="Minimum channel input value to be considered in advanced pixelwise merging.",
value=0.05, value=0.05,
range=(0.0, 1.0, 0.001), range=(0.0, 1.0, 0.001),
invalidate=True,
enabled=lambda node: (node.nbBrackets.value != 1), enabled=lambda node: (node.nbBrackets.value != 1),
), ),
desc.FloatParam( desc.FloatParam(
@ -116,7 +109,6 @@ Merge LDR images into HDR images.
description="Maximum channel input value to be considered in advanced pixelwise merging.", description="Maximum channel input value to be considered in advanced pixelwise merging.",
value=0.995, value=0.995,
range=(0.0, 1.0, 0.001), range=(0.0, 1.0, 0.001),
invalidate=True,
enabled=lambda node: (node.nbBrackets.value != 1), enabled=lambda node: (node.nbBrackets.value != 1),
), ),
desc.BoolParam( desc.BoolParam(
@ -124,7 +116,6 @@ Merge LDR images into HDR images.
label="Compute Light Masks", label="Compute Light Masks",
description="Compute masks of low and high lights and missing info.", description="Compute masks of low and high lights and missing info.",
value=False, value=False,
invalidate=True,
enabled=lambda node: node.nbBrackets.value != 1, enabled=lambda node: node.nbBrackets.value != 1,
), ),
desc.BoolParam( desc.BoolParam(
@ -132,7 +123,6 @@ Merge LDR images into HDR images.
label="Bypass", label="Bypass",
description="Bypass HDR creation and use the medium bracket as the source for the next steps.", description="Bypass HDR creation and use the medium bracket as the source for the next steps.",
value=False, value=False,
invalidate=True,
enabled=lambda node: node.nbBrackets.value != 1, enabled=lambda node: node.nbBrackets.value != 1,
), ),
desc.BoolParam( desc.BoolParam(
@ -140,7 +130,6 @@ Merge LDR images into HDR images.
label="Keep Source Image Name", label="Keep Source Image Name",
description="Keep the filename of the input image selected as central image for the output image filename.", description="Keep the filename of the input image selected as central image for the output image filename.",
value=False, value=False,
invalidate=True,
), ),
desc.ChoiceParam( desc.ChoiceParam(
name="fusionWeight", name="fusionWeight",
@ -152,7 +141,6 @@ Merge LDR images into HDR images.
value="gaussian", value="gaussian",
values=["gaussian", "triangle", "plateau"], values=["gaussian", "triangle", "plateau"],
exclusive=True, exclusive=True,
invalidate=True,
enabled=lambda node: node.byPass.enabled and not node.byPass.value, enabled=lambda node: node.byPass.enabled and not node.byPass.value,
), ),
desc.IntParam( desc.IntParam(
@ -161,7 +149,6 @@ Merge LDR images into HDR images.
description="Quantization level like 8 bits or 10 bits.", description="Quantization level like 8 bits or 10 bits.",
value=10, value=10,
range=(8, 14, 1), range=(8, 14, 1),
invalidate=True,
advanced=True, advanced=True,
enabled=lambda node: node.byPass.enabled and not node.byPass.value, enabled=lambda node: node.byPass.enabled and not node.byPass.value,
), ),
@ -173,7 +160,6 @@ Merge LDR images into HDR images.
values=COLORSPACES, values=COLORSPACES,
value="AUTO", value="AUTO",
exclusive=True, exclusive=True,
invalidate=True,
enabled=lambda node: node.byPass.enabled and not node.byPass.value, enabled=lambda node: node.byPass.enabled and not node.byPass.value,
), ),
desc.BoolParam( desc.BoolParam(
@ -181,7 +167,6 @@ Merge LDR images into HDR images.
label="Enable Highlight", label="Enable Highlight",
description="Enable highlights correction.", description="Enable highlights correction.",
value=False, value=False,
invalidate=True,
group="user", # not used directly on the command line group="user", # not used directly on the command line
enabled=lambda node: node.byPass.enabled and not node.byPass.value, enabled=lambda node: node.byPass.enabled and not node.byPass.value,
), ),
@ -195,7 +180,6 @@ Merge LDR images into HDR images.
"This parameter is float to enable to weight this correction.", "This parameter is float to enable to weight this correction.",
value=1.0, value=1.0,
range=(0.0, 1.0, 0.01), range=(0.0, 1.0, 0.01),
invalidate=True,
enabled=lambda node: node.enableHighlight.enabled and node.enableHighlight.value, enabled=lambda node: node.enableHighlight.enabled and node.enableHighlight.value,
), ),
desc.FloatParam( desc.FloatParam(
@ -218,7 +202,6 @@ Merge LDR images into HDR images.
" - 150 lux: Home\n", " - 150 lux: Home\n",
value=120000.0, value=120000.0,
range=(1000.0, 150000.0, 1.0), range=(1000.0, 150000.0, 1.0),
invalidate=True,
enabled=lambda node: node.enableHighlight.enabled and node.enableHighlight.value and node.highlightCorrectionFactor.value != 0, enabled=lambda node: node.enableHighlight.enabled and node.enableHighlight.value and node.highlightCorrectionFactor.value != 0,
), ),
desc.ChoiceParam( desc.ChoiceParam(
@ -232,7 +215,6 @@ Merge LDR images into HDR images.
values=EXR_STORAGE_DATA_TYPE, values=EXR_STORAGE_DATA_TYPE,
value="float", value="float",
exclusive=True, exclusive=True,
invalidate=True,
), ),
desc.ChoiceParam( desc.ChoiceParam(
name="verboseLevel", name="verboseLevel",
@ -241,7 +223,6 @@ Merge LDR images into HDR images.
values=VERBOSE_LEVEL, values=VERBOSE_LEVEL,
value="info", value="info",
exclusive=True, exclusive=True,
invalidate=False,
), ),
] ]
@ -251,7 +232,6 @@ Merge LDR images into HDR images.
label="Folder", label="Folder",
description="Path to the folder containing the merged HDR images.", description="Path to the folder containing the merged HDR images.",
value=desc.Node.internalFolder, value=desc.Node.internalFolder,
invalidate=False,
group="", # do not export on the command line group="", # do not export on the command line
), ),
desc.File( desc.File(
@ -259,7 +239,6 @@ Merge LDR images into HDR images.
label="SfMData", label="SfMData",
description="Path to the output SfMData file.", description="Path to the output SfMData file.",
value=desc.Node.internalFolder + "sfmData.sfm", value=desc.Node.internalFolder + "sfmData.sfm",
invalidate=False,
), ),
] ]

View file

@ -65,7 +65,6 @@ Sample pixels from Low range images for HDR creation.
label="SfMData", label="SfMData",
description="Input SfMData file.", description="Input SfMData file.",
value="", value="",
invalidate=True,
), ),
desc.IntParam( desc.IntParam(
name="userNbBrackets", name="userNbBrackets",
@ -86,7 +85,6 @@ Sample pixels from Low range images for HDR creation.
"is 0, else it is equal to 'userNbBrackets'.", "is 0, else it is equal to 'userNbBrackets'.",
value=0, value=0,
range=(0, 15, 1), range=(0, 15, 1),
invalidate=True,
group="bracketsParams", group="bracketsParams",
), ),
desc.BoolParam( desc.BoolParam(
@ -94,7 +92,6 @@ Sample pixels from Low range images for HDR creation.
label="Bypass", label="Bypass",
description="Bypass HDR creation and use the medium bracket as the source for the next steps.", description="Bypass HDR creation and use the medium bracket as the source for the next steps.",
value=False, value=False,
invalidate=True,
enabled=lambda node: node.nbBrackets.value != 1, enabled=lambda node: node.nbBrackets.value != 1,
), ),
desc.ChoiceParam( desc.ChoiceParam(
@ -109,7 +106,6 @@ Sample pixels from Low range images for HDR creation.
values=["auto", "linear", "debevec", "grossberg", "laguerre"], values=["auto", "linear", "debevec", "grossberg", "laguerre"],
value="auto", value="auto",
exclusive=True, exclusive=True,
invalidate=True,
enabled=lambda node: node.byPass.enabled and not node.byPass.value, enabled=lambda node: node.byPass.enabled and not node.byPass.value,
), ),
desc.IntParam( desc.IntParam(
@ -118,7 +114,6 @@ Sample pixels from Low range images for HDR creation.
description="Quantization level like 8 bits or 10 bits.", description="Quantization level like 8 bits or 10 bits.",
value=10, value=10,
range=(8, 14, 1), range=(8, 14, 1),
invalidate=True,
advanced=True, advanced=True,
enabled=lambda node: node.byPass.enabled and not node.byPass.value, enabled=lambda node: node.byPass.enabled and not node.byPass.value,
), ),
@ -130,7 +125,6 @@ Sample pixels from Low range images for HDR creation.
values=COLORSPACES, values=COLORSPACES,
value="AUTO", value="AUTO",
exclusive=True, exclusive=True,
invalidate=True,
enabled=lambda node: node.byPass.enabled and not node.byPass.value, enabled=lambda node: node.byPass.enabled and not node.byPass.value,
), ),
desc.IntParam( desc.IntParam(
@ -139,7 +133,6 @@ Sample pixels from Low range images for HDR creation.
description="Size of the image tile to extract a sample.", description="Size of the image tile to extract a sample.",
value=256, value=256,
range=(8, 1024, 1), range=(8, 1024, 1),
invalidate=True,
advanced=True, advanced=True,
enabled=lambda node: node.byPass.enabled and not node.byPass.value, enabled=lambda node: node.byPass.enabled and not node.byPass.value,
), ),
@ -149,7 +142,6 @@ Sample pixels from Low range images for HDR creation.
description="Radius of the patch used to analyze the sample statistics.", description="Radius of the patch used to analyze the sample statistics.",
value=5, value=5,
range=(0, 10, 1), range=(0, 10, 1),
invalidate=True,
advanced=True, advanced=True,
enabled=lambda node: node.byPass.enabled and not node.byPass.value, enabled=lambda node: node.byPass.enabled and not node.byPass.value,
), ),
@ -159,7 +151,6 @@ Sample pixels from Low range images for HDR creation.
description="Maximum number of samples per image group.", description="Maximum number of samples per image group.",
value=200, value=200,
range=(10, 1000, 10), range=(10, 1000, 10),
invalidate=True,
advanced=True, advanced=True,
enabled=lambda node: node.byPass.enabled and not node.byPass.value, enabled=lambda node: node.byPass.enabled and not node.byPass.value,
), ),
@ -178,7 +169,6 @@ Sample pixels from Low range images for HDR creation.
values=VERBOSE_LEVEL, values=VERBOSE_LEVEL,
value="info", value="info",
exclusive=True, exclusive=True,
invalidate=False,
), ),
] ]
@ -188,7 +178,6 @@ Sample pixels from Low range images for HDR creation.
label="Folder", label="Folder",
description="Output path for the samples.", description="Output path for the samples.",
value=desc.Node.internalFolder, value=desc.Node.internalFolder,
invalidate=False,
), ),
] ]

View file

@ -24,7 +24,6 @@ class LidarDecimating(desc.AVCommandLineNode):
label="Input JSON", label="Input JSON",
description="Input JSON file with description of inputs.", description="Input JSON file with description of inputs.",
value="", value="",
invalidate=True,
), ),
desc.FloatParam( desc.FloatParam(
name="errorLimit", name="errorLimit",
@ -32,7 +31,6 @@ class LidarDecimating(desc.AVCommandLineNode):
description="Maximal distance (in meters) allowed.", description="Maximal distance (in meters) allowed.",
value=0.001, value=0.001,
range=(0.0, 1.0, 0.001), range=(0.0, 1.0, 0.001),
invalidate=True,
), ),
desc.ChoiceParam( desc.ChoiceParam(
name="verboseLevel", name="verboseLevel",
@ -41,7 +39,6 @@ class LidarDecimating(desc.AVCommandLineNode):
values=VERBOSE_LEVEL, values=VERBOSE_LEVEL,
value="info", value="info",
exclusive=True, exclusive=True,
invalidate=False,
), ),
] ]
@ -51,13 +48,11 @@ class LidarDecimating(desc.AVCommandLineNode):
label="Sub-Meshes Directory", label="Sub-Meshes Directory",
description="Output directory for sub-meshes.", description="Output directory for sub-meshes.",
value=desc.Node.internalFolder, value=desc.Node.internalFolder,
invalidate=False,
), ),
desc.File( desc.File(
name="outputJson", name="outputJson",
label="Scene Description", label="Scene Description",
description="Output scene description.", description="Output scene description.",
value=desc.Node.internalFolder + "scene.json", value=desc.Node.internalFolder + "scene.json",
invalidate=False,
), ),
] ]

View file

@ -20,7 +20,6 @@ class LidarMerging(desc.AVCommandLineNode):
label="Input JSON", label="Input JSON",
description="Input JSON file with description of inputs.", description="Input JSON file with description of inputs.",
value="", value="",
invalidate=True,
), ),
desc.ChoiceParam( desc.ChoiceParam(
name="verboseLevel", name="verboseLevel",
@ -29,7 +28,6 @@ class LidarMerging(desc.AVCommandLineNode):
values=VERBOSE_LEVEL, values=VERBOSE_LEVEL,
value="info", value="info",
exclusive=True, exclusive=True,
invalidate=False,
), ),
] ]
@ -39,6 +37,5 @@ class LidarMerging(desc.AVCommandLineNode):
label="Mesh Path Output", label="Mesh Path Output",
description="Output directory for mesh.", description="Output directory for mesh.",
value=desc.Node.internalFolder + "output.obj", value=desc.Node.internalFolder + "output.obj",
invalidate=False,
), ),
] ]

View file

@ -24,7 +24,6 @@ class LidarMeshing(desc.AVCommandLineNode):
label="Input JSON", label="Input JSON",
description="Input JSON file with description of inputs.", description="Input JSON file with description of inputs.",
value="", value="",
invalidate=True,
), ),
desc.BoolParam( desc.BoolParam(
name="useBoundingBox", name="useBoundingBox",
@ -33,7 +32,6 @@ class LidarMeshing(desc.AVCommandLineNode):
"If enabled, it takes priority over the 'Estimate Space From SfM' option.\n" "If enabled, it takes priority over the 'Estimate Space From SfM' option.\n"
"Parameters can be adjusted in advanced settings.", "Parameters can be adjusted in advanced settings.",
value=False, value=False,
invalidate=True,
group="", group="",
), ),
desc.GroupAttribute( desc.GroupAttribute(
@ -49,19 +47,16 @@ class LidarMeshing(desc.AVCommandLineNode):
desc.FloatParam( desc.FloatParam(
name="x", label="x", description="X offset.", name="x", label="x", description="X offset.",
value=0.0, value=0.0,
invalidate=True,
range=(-20.0, 20.0, 0.01), range=(-20.0, 20.0, 0.01),
), ),
desc.FloatParam( desc.FloatParam(
name="y", label="y", description="Y offset.", name="y", label="y", description="Y offset.",
value=0.0, value=0.0,
invalidate=True,
range=(-20.0, 20.0, 0.01), range=(-20.0, 20.0, 0.01),
), ),
desc.FloatParam( desc.FloatParam(
name="z", label="z", description="Z offset.", name="z", label="z", description="Z offset.",
value=0.0, value=0.0,
invalidate=True,
range=(-20.0, 20.0, 0.01), range=(-20.0, 20.0, 0.01),
), ),
], ],
@ -75,19 +70,16 @@ class LidarMeshing(desc.AVCommandLineNode):
desc.FloatParam( desc.FloatParam(
name="x", label="x", description="Euler X rotation.", name="x", label="x", description="Euler X rotation.",
value=0.0, value=0.0,
invalidate=True,
range=(-90.0, 90.0, 1.0), range=(-90.0, 90.0, 1.0),
), ),
desc.FloatParam( desc.FloatParam(
name="y", label="y", description="Euler Y rotation.", name="y", label="y", description="Euler Y rotation.",
value=0.0, value=0.0,
invalidate=True,
range=(-180.0, 180.0, 1.0), range=(-180.0, 180.0, 1.0),
), ),
desc.FloatParam( desc.FloatParam(
name="z", label="z", description="Euler Z rotation.", name="z", label="z", description="Euler Z rotation.",
value=0.0, value=0.0,
invalidate=True,
range=(-180.0, 180.0, 1.0), range=(-180.0, 180.0, 1.0),
), ),
], ],
@ -101,19 +93,16 @@ class LidarMeshing(desc.AVCommandLineNode):
desc.FloatParam( desc.FloatParam(
name="x", label="x", description="X scale.", name="x", label="x", description="X scale.",
value=1.0, value=1.0,
invalidate=True,
range=(0.0, 20.0, 0.01), range=(0.0, 20.0, 0.01),
), ),
desc.FloatParam( desc.FloatParam(
name="y", label="y", description="Y scale.", name="y", label="y", description="Y scale.",
value=1.0, value=1.0,
invalidate=True,
range=(0.0, 20.0, 0.01), range=(0.0, 20.0, 0.01),
), ),
desc.FloatParam( desc.FloatParam(
name="z", label="z", description="Z scale.", name="z", label="z", description="Z scale.",
value=1.0, value=1.0,
invalidate=True,
range=(0.0, 20.0, 0.01), range=(0.0, 20.0, 0.01),
), ),
], ],
@ -130,7 +119,6 @@ class LidarMeshing(desc.AVCommandLineNode):
values=VERBOSE_LEVEL, values=VERBOSE_LEVEL,
value="info", value="info",
exclusive=True, exclusive=True,
invalidate=False,
), ),
] ]
@ -140,13 +128,11 @@ class LidarMeshing(desc.AVCommandLineNode):
label="Sub-Meshes Directory", label="Sub-Meshes Directory",
description="Output directory for sub-meshes", description="Output directory for sub-meshes",
value=desc.Node.internalFolder, value=desc.Node.internalFolder,
invalidate=False,
), ),
desc.File( desc.File(
name="outputJson", name="outputJson",
label="Scene Description", label="Scene Description",
description="Output scene description.", description="Output scene description.",
value=desc.Node.internalFolder + "scene.json", value=desc.Node.internalFolder + "scene.json",
invalidate=False,
), ),
] ]

View file

@ -18,28 +18,24 @@ Can also be used to calibrate a lighting dome (RTI type).
label="Input SfMData", label="Input SfMData",
description="Input SfMData file.", description="Input SfMData file.",
value="", value="",
invalidate=True,
), ),
desc.File( desc.File(
name="inputDetection", name="inputDetection",
label="Sphere Detection File", label="Sphere Detection File",
description="Input JSON file containing sphere centers and radiuses.", description="Input JSON file containing sphere centers and radiuses.",
value="", value="",
invalidate=True,
), ),
desc.BoolParam( desc.BoolParam(
name="saveAsModel", name="saveAsModel",
label="Save As Model", label="Save As Model",
description="Check if this calibration file will be used with other datasets.", description="Check if this calibration file will be used with other datasets.",
value=False, value=False,
invalidate=True,
), ),
desc.BoolParam( desc.BoolParam(
name="ellipticEstimation", name="ellipticEstimation",
label="Use elliptic estimation", label="Use elliptic estimation",
description="Consider the right projection of the sphere. Fit the circle tool on the small axe of the ellipse.", description="Consider the right projection of the sphere. Fit the circle tool on the small axe of the ellipse.",
value=False, value=False,
invalidate=True,
), ),
desc.ChoiceParam( desc.ChoiceParam(
name="method", name="method",
@ -50,7 +46,6 @@ Can also be used to calibrate a lighting dome (RTI type).
values=["brightestPoint", "whiteSphere", "SH"], values=["brightestPoint", "whiteSphere", "SH"],
value="brightestPoint", value="brightestPoint",
exclusive=True, exclusive=True,
invalidate=True,
), ),
desc.ChoiceParam( desc.ChoiceParam(
name="verboseLevel", name="verboseLevel",
@ -59,7 +54,6 @@ Can also be used to calibrate a lighting dome (RTI type).
values=VERBOSE_LEVEL, values=VERBOSE_LEVEL,
value="info", value="info",
exclusive=True, exclusive=True,
invalidate=False,
), ),
] ]
@ -69,7 +63,6 @@ Can also be used to calibrate a lighting dome (RTI type).
label="Light File", label="Light File",
description="Light information will be written here.", description="Light information will be written here.",
value=desc.Node.internalFolder + "/lights.json", value=desc.Node.internalFolder + "/lights.json",
invalidate=False,
), ),
desc.File( desc.File(
name="lightingEstimationVisualization", name="lightingEstimationVisualization",
@ -77,6 +70,5 @@ Can also be used to calibrate a lighting dome (RTI type).
description="Estimated Lighting Visualization.", description="Estimated Lighting Visualization.",
semantic="image", semantic="image",
value=desc.Node.internalFolder + "/<FILESTEM>_{methodValue}.png", value=desc.Node.internalFolder + "/<FILESTEM>_{methodValue}.png",
invalidate=False,
), ),
] ]

View file

@ -17,14 +17,12 @@ class LightingEstimation(desc.AVCommandLineNode):
label="Input SfMData", label="Input SfMData",
description="Input SfMData file.", description="Input SfMData file.",
value="", value="",
invalidate=True,
), ),
desc.File( desc.File(
name="depthMapsFilterFolder", name="depthMapsFilterFolder",
label="Filtered Depth Maps Folder", label="Filtered Depth Maps Folder",
description="Input filtered depth maps folder.", description="Input filtered depth maps folder.",
value="", value="",
invalidate=True,
), ),
desc.File( desc.File(
name="imagesFolder", name="imagesFolder",
@ -32,7 +30,6 @@ class LightingEstimation(desc.AVCommandLineNode):
description="Use images from a specific folder instead of those specify in the SfMData file.\n" description="Use images from a specific folder instead of those specify in the SfMData file.\n"
"Filename should be the image UID.", "Filename should be the image UID.",
value="", value="",
invalidate=True,
), ),
desc.ChoiceParam( desc.ChoiceParam(
name="lightingEstimationMode", name="lightingEstimationMode",
@ -41,7 +38,6 @@ class LightingEstimation(desc.AVCommandLineNode):
value="global", value="global",
values=["global", "per_image"], values=["global", "per_image"],
exclusive=True, exclusive=True,
invalidate=True,
advanced=True, advanced=True,
), ),
desc.ChoiceParam( desc.ChoiceParam(
@ -51,7 +47,6 @@ class LightingEstimation(desc.AVCommandLineNode):
value="RGB", value="RGB",
values=["RGB", "Luminance"], values=["RGB", "Luminance"],
exclusive=True, exclusive=True,
invalidate=True,
advanced=True, advanced=True,
), ),
desc.ChoiceParam( desc.ChoiceParam(
@ -61,7 +56,6 @@ class LightingEstimation(desc.AVCommandLineNode):
value="constant", value="constant",
values=["constant", "picture", "median_filter", "blur_filter"], values=["constant", "picture", "median_filter", "blur_filter"],
exclusive=True, exclusive=True,
invalidate=True,
advanced=True, advanced=True,
), ),
desc.IntParam( desc.IntParam(
@ -70,7 +64,6 @@ class LightingEstimation(desc.AVCommandLineNode):
description="Albedo filter size for estimation method using filter.", description="Albedo filter size for estimation method using filter.",
value=3, value=3,
range=(0, 100, 1), range=(0, 100, 1),
invalidate=True,
advanced=True, advanced=True,
), ),
desc.ChoiceParam( desc.ChoiceParam(
@ -80,7 +73,6 @@ class LightingEstimation(desc.AVCommandLineNode):
values=VERBOSE_LEVEL, values=VERBOSE_LEVEL,
value="info", value="info",
exclusive=True, exclusive=True,
invalidate=False,
), ),
] ]
@ -90,6 +82,5 @@ class LightingEstimation(desc.AVCommandLineNode):
label="Folder", label="Folder",
description="Folder for output lighting vector files.", description="Folder for output lighting vector files.",
value=desc.Node.internalFolder, value=desc.Node.internalFolder,
invalidate=False,
), ),
] ]

View file

@ -24,14 +24,12 @@ Operation types used to merge two meshes:
label="First Mesh", label="First Mesh",
description="Input first mesh (*.obj, *.mesh, *.meshb, *.ply, *.off, *.stl).", description="Input first mesh (*.obj, *.mesh, *.meshb, *.ply, *.off, *.stl).",
value="", value="",
invalidate=True,
), ),
desc.File( desc.File(
name="inputSecondMesh", name="inputSecondMesh",
label="Second Mesh", label="Second Mesh",
description="Input second mesh (*.obj, *.mesh, *.meshb, *.ply, *.off, *.stl).", description="Input second mesh (*.obj, *.mesh, *.meshb, *.ply, *.off, *.stl).",
value="", value="",
invalidate=True,
), ),
desc.ChoiceParam( desc.ChoiceParam(
name="mergeOperation", name="mergeOperation",
@ -40,21 +38,18 @@ Operation types used to merge two meshes:
value="boolean_union", value="boolean_union",
values=["boolean_union", "boolean_intersection", "boolean_difference"], values=["boolean_union", "boolean_intersection", "boolean_difference"],
exclusive=True, exclusive=True,
invalidate=True,
), ),
desc.BoolParam( desc.BoolParam(
name="preProcess", name="preProcess",
label="Pre-Process", label="Pre-Process",
description="Pre-process the input meshes in order to avoid geometric errors in the merging process.", description="Pre-process the input meshes in order to avoid geometric errors in the merging process.",
value=True, value=True,
invalidate=True,
), ),
desc.BoolParam( desc.BoolParam(
name="postProcess", name="postProcess",
label="Post-Process", label="Post-Process",
description="Post-process the output mesh in order to avoid future geometric errors.", description="Post-process the output mesh in order to avoid future geometric errors.",
value=True, value=True,
invalidate=True,
), ),
desc.ChoiceParam( desc.ChoiceParam(
name="verboseLevel", name="verboseLevel",
@ -63,7 +58,6 @@ Operation types used to merge two meshes:
values=VERBOSE_LEVEL, values=VERBOSE_LEVEL,
value="info", value="info",
exclusive=True, exclusive=True,
invalidate=False,
), ),
] ]
@ -73,6 +67,5 @@ Operation types used to merge two meshes:
label="Mesh", label="Mesh",
description="Output mesh (*.obj, *.mesh, *.meshb, *.ply, *.off, *.stl).", description="Output mesh (*.obj, *.mesh, *.meshb, *.ply, *.off, *.stl).",
value=desc.Node.internalFolder + "mesh.stl", value=desc.Node.internalFolder + "mesh.stl",
invalidate=False,
), ),
] ]

View file

@ -20,7 +20,6 @@ This node allows to reduce the density of the Mesh.
label="Mesh", label="Mesh",
description="Input mesh in the OBJ format.", description="Input mesh in the OBJ format.",
value="", value="",
invalidate=True,
), ),
desc.FloatParam( desc.FloatParam(
name="simplificationFactor", name="simplificationFactor",
@ -28,7 +27,6 @@ This node allows to reduce the density of the Mesh.
description="Simplification factor for the decimation.", description="Simplification factor for the decimation.",
value=0.5, value=0.5,
range=(0.0, 1.0, 0.01), range=(0.0, 1.0, 0.01),
invalidate=True,
), ),
desc.IntParam( desc.IntParam(
name="nbVertices", name="nbVertices",
@ -36,7 +34,6 @@ This node allows to reduce the density of the Mesh.
description="Fixed number of output vertices.", description="Fixed number of output vertices.",
value=0, value=0,
range=(0, 1000000, 1), range=(0, 1000000, 1),
invalidate=True,
), ),
desc.IntParam( desc.IntParam(
name="minVertices", name="minVertices",
@ -44,7 +41,6 @@ This node allows to reduce the density of the Mesh.
description="Minimum number of output vertices.", description="Minimum number of output vertices.",
value=0, value=0,
range=(0, 1000000, 1), range=(0, 1000000, 1),
invalidate=True,
), ),
desc.IntParam( desc.IntParam(
name="maxVertices", name="maxVertices",
@ -52,7 +48,6 @@ This node allows to reduce the density of the Mesh.
description="Maximum number of output vertices.", description="Maximum number of output vertices.",
value=0, value=0,
range=(0, 1000000, 1), range=(0, 1000000, 1),
invalidate=True,
), ),
desc.BoolParam( desc.BoolParam(
name="flipNormals", name="flipNormals",
@ -61,7 +56,6 @@ This node allows to reduce the density of the Mesh.
"It can be needed as it depends on the vertices order in triangles\n" "It can be needed as it depends on the vertices order in triangles\n"
"and the convention changes from one software to another.", "and the convention changes from one software to another.",
value=False, value=False,
invalidate=True,
advanced=True, advanced=True,
), ),
desc.ChoiceParam( desc.ChoiceParam(
@ -71,7 +65,6 @@ This node allows to reduce the density of the Mesh.
values=VERBOSE_LEVEL, values=VERBOSE_LEVEL,
value="info", value="info",
exclusive=True, exclusive=True,
invalidate=False,
), ),
] ]
@ -81,6 +74,5 @@ This node allows to reduce the density of the Mesh.
label="Mesh", label="Mesh",
description="Output mesh in the OBJ file format.", description="Output mesh in the OBJ file format.",
value=desc.Node.internalFolder + "mesh.obj", value=desc.Node.internalFolder + "mesh.obj",
invalidate=False,
), ),
] ]

View file

@ -19,7 +19,6 @@ for now, the parameters are difficult to control and vary a lot from one dataset
label="Mesh", label="Mesh",
description="Input mesh in the OBJ file format.", description="Input mesh in the OBJ file format.",
value="", value="",
invalidate=True,
), ),
desc.IntParam( desc.IntParam(
name="denoisingIterations", name="denoisingIterations",
@ -27,7 +26,6 @@ for now, the parameters are difficult to control and vary a lot from one dataset
description="Number of denoising iterations.", description="Number of denoising iterations.",
value=5, value=5,
range=(0, 30, 1), range=(0, 30, 1),
invalidate=True,
), ),
desc.FloatParam( desc.FloatParam(
name="meshUpdateClosenessWeight", name="meshUpdateClosenessWeight",
@ -35,7 +33,6 @@ for now, the parameters are difficult to control and vary a lot from one dataset
description="Closeness weight for mesh update. Must be positive.", description="Closeness weight for mesh update. Must be positive.",
value=0.001, value=0.001,
range=(0.0, 0.1, 0.001), range=(0.0, 0.1, 0.001),
invalidate=True,
), ),
desc.FloatParam( desc.FloatParam(
name="lambda", name="lambda",
@ -43,7 +40,6 @@ for now, the parameters are difficult to control and vary a lot from one dataset
description="Regularization weight.", description="Regularization weight.",
value=2.0, value=2.0,
range=(0.0, 10.0, 0.01), range=(0.0, 10.0, 0.01),
invalidate=True,
), ),
desc.FloatParam( desc.FloatParam(
name="eta", name="eta",
@ -53,7 +49,6 @@ for now, the parameters are difficult to control and vary a lot from one dataset
"Must be positive.", "Must be positive.",
value=1.5, value=1.5,
range=(0.0, 20.0, 0.01), range=(0.0, 20.0, 0.01),
invalidate=True,
), ),
desc.FloatParam( desc.FloatParam(
name="mu", name="mu",
@ -61,7 +56,6 @@ for now, the parameters are difficult to control and vary a lot from one dataset
description="Gaussian standard deviation for guidance weight.", description="Gaussian standard deviation for guidance weight.",
value=1.5, value=1.5,
range=(0.0, 10.0, 0.01), range=(0.0, 10.0, 0.01),
invalidate=True,
), ),
desc.FloatParam( desc.FloatParam(
name="nu", name="nu",
@ -69,7 +63,6 @@ for now, the parameters are difficult to control and vary a lot from one dataset
description="Gaussian standard deviation for signal weight.", description="Gaussian standard deviation for signal weight.",
value=0.3, value=0.3,
range=(0.0, 5.0, 0.01), range=(0.0, 5.0, 0.01),
invalidate=True,
), ),
desc.ChoiceParam( desc.ChoiceParam(
name="meshUpdateMethod", name="meshUpdateMethod",
@ -80,7 +73,6 @@ for now, the parameters are difficult to control and vary a lot from one dataset
value=0, value=0,
values=[0, 1], values=[0, 1],
exclusive=True, exclusive=True,
invalidate=True,
), ),
desc.ChoiceParam( desc.ChoiceParam(
name="verboseLevel", name="verboseLevel",
@ -89,7 +81,6 @@ for now, the parameters are difficult to control and vary a lot from one dataset
values=VERBOSE_LEVEL, values=VERBOSE_LEVEL,
value="info", value="info",
exclusive=True, exclusive=True,
invalidate=False,
), ),
] ]
@ -99,6 +90,5 @@ for now, the parameters are difficult to control and vary a lot from one dataset
label="Output", label="Output",
description="Output mesh in the OBJ file format.", description="Output mesh in the OBJ file format.",
value=desc.Node.internalFolder + "mesh.obj", value=desc.Node.internalFolder + "mesh.obj",
invalidate=False,
), ),
] ]

View file

@ -18,7 +18,6 @@ This node applies a Laplacian filtering to remove local defects from the raw Mes
label="Mesh", label="Mesh",
description="Input mesh file.", description="Input mesh file.",
value="", value="",
invalidate=True,
), ),
desc.ChoiceParam( desc.ChoiceParam(
name="outputMeshFileType", name="outputMeshFileType",
@ -27,7 +26,6 @@ This node applies a Laplacian filtering to remove local defects from the raw Mes
value="obj", value="obj",
values=["gltf", "obj", "fbx", "stl"], values=["gltf", "obj", "fbx", "stl"],
exclusive=True, exclusive=True,
invalidate=True,
group="", group="",
), ),
desc.BoolParam( desc.BoolParam(
@ -35,7 +33,6 @@ This node applies a Laplacian filtering to remove local defects from the raw Mes
label="Keep Only The Largest Mesh", label="Keep Only The Largest Mesh",
description="Keep only the largest connected triangles group.", description="Keep only the largest connected triangles group.",
value=False, value=False,
invalidate=True,
), ),
desc.ChoiceParam( desc.ChoiceParam(
name="smoothingSubset", name="smoothingSubset",
@ -44,7 +41,6 @@ This node applies a Laplacian filtering to remove local defects from the raw Mes
value="all", value="all",
values=["all", "surface_boundaries", "surface_inner_part"], values=["all", "surface_boundaries", "surface_inner_part"],
exclusive=True, exclusive=True,
invalidate=True,
advanced=True, advanced=True,
), ),
desc.IntParam( desc.IntParam(
@ -53,7 +49,6 @@ This node applies a Laplacian filtering to remove local defects from the raw Mes
description="Neighbours of the boundaries to consider.", description="Neighbours of the boundaries to consider.",
value=0, value=0,
range=(0, 20, 1), range=(0, 20, 1),
invalidate=True,
advanced=True, advanced=True,
), ),
desc.IntParam( desc.IntParam(
@ -62,7 +57,6 @@ This node applies a Laplacian filtering to remove local defects from the raw Mes
description="Number of smoothing iterations.", description="Number of smoothing iterations.",
value=5, value=5,
range=(0, 50, 1), range=(0, 50, 1),
invalidate=True,
), ),
desc.FloatParam( desc.FloatParam(
name="smoothingLambda", name="smoothingLambda",
@ -70,7 +64,6 @@ This node applies a Laplacian filtering to remove local defects from the raw Mes
description="Smoothing size.", description="Smoothing size.",
value=1.0, value=1.0,
range=(0.0, 10.0, 0.1), range=(0.0, 10.0, 0.1),
invalidate=True,
advanced=True, advanced=True,
), ),
desc.ChoiceParam( desc.ChoiceParam(
@ -80,7 +73,6 @@ This node applies a Laplacian filtering to remove local defects from the raw Mes
value="all", value="all",
values=["all", "surface_boundaries", "surface_inner_part"], values=["all", "surface_boundaries", "surface_inner_part"],
exclusive=True, exclusive=True,
invalidate=True,
advanced=True, advanced=True,
), ),
desc.IntParam( desc.IntParam(
@ -89,7 +81,6 @@ This node applies a Laplacian filtering to remove local defects from the raw Mes
description="Number of filtering iterations.", description="Number of filtering iterations.",
value=1, value=1,
range=(0, 20, 1), range=(0, 20, 1),
invalidate=True,
advanced=True, advanced=True,
), ),
desc.FloatParam( desc.FloatParam(
@ -100,7 +91,6 @@ This node applies a Laplacian filtering to remove local defects from the raw Mes
"0 disables the filtering.", "0 disables the filtering.",
value=60.0, value=60.0,
range=(0.0, 100.0, 0.1), range=(0.0, 100.0, 0.1),
invalidate=True,
), ),
desc.FloatParam( desc.FloatParam(
name="filterTrianglesRatio", name="filterTrianglesRatio",
@ -109,7 +99,6 @@ This node applies a Laplacian filtering to remove local defects from the raw Mes
"0 disables the filtering.", "0 disables the filtering.",
value=0.0, value=0.0,
range=(1.0, 50.0, 0.1), range=(1.0, 50.0, 0.1),
invalidate=True,
advanced=True, advanced=True,
), ),
desc.ChoiceParam( desc.ChoiceParam(
@ -119,7 +108,6 @@ This node applies a Laplacian filtering to remove local defects from the raw Mes
values=VERBOSE_LEVEL, values=VERBOSE_LEVEL,
value="info", value="info",
exclusive=True, exclusive=True,
invalidate=False,
), ),
] ]
@ -129,6 +117,5 @@ This node applies a Laplacian filtering to remove local defects from the raw Mes
label="Mesh", label="Mesh",
description="Output mesh file.", description="Output mesh file.",
value=desc.Node.internalFolder + "mesh.{outputMeshFileTypeValue}", value=desc.Node.internalFolder + "mesh.{outputMeshFileTypeValue}",
invalidate=False,
), ),
] ]

View file

@ -17,14 +17,12 @@ Decimate triangles based on image masks.
label="Dense SfMData", label="Dense SfMData",
description="Dense SfMData file.", description="Dense SfMData file.",
value="", value="",
invalidate=True,
), ),
desc.File( desc.File(
name="inputMesh", name="inputMesh",
label="Input Mesh", label="Input Mesh",
description="Input mesh.", description="Input mesh.",
value="", value="",
invalidate=True,
), ),
desc.ChoiceParam( desc.ChoiceParam(
name="outputMeshFileType", name="outputMeshFileType",
@ -33,7 +31,6 @@ Decimate triangles based on image masks.
value="obj", value="obj",
values=["obj", "gltf", "fbx", "stl"], values=["obj", "gltf", "fbx", "stl"],
exclusive=True, exclusive=True,
invalidate=True,
group="", group="",
), ),
desc.ListAttribute( desc.ListAttribute(
@ -42,7 +39,6 @@ Decimate triangles based on image masks.
label="Masks Folder", label="Masks Folder",
description="Folder containing some masks.", description="Folder containing some masks.",
value="", value="",
invalidate=True,
), ),
name="masksFolders", name="masksFolders",
label="Masks Folders", label="Masks Folders",
@ -55,7 +51,6 @@ Decimate triangles based on image masks.
value="png", value="png",
values=["exr", "jpg", "png"], values=["exr", "jpg", "png"],
exclusive=True, exclusive=True,
invalidate=True,
), ),
desc.IntParam( desc.IntParam(
name="threshold", name="threshold",
@ -63,14 +58,12 @@ Decimate triangles based on image masks.
description="The minimum number of visibilities to keep a vertex.", description="The minimum number of visibilities to keep a vertex.",
value=1, value=1,
range=(1, 100, 1), range=(1, 100, 1),
invalidate=True,
), ),
desc.BoolParam( desc.BoolParam(
name="smoothBoundary", name="smoothBoundary",
label="Smooth Boundary", label="Smooth Boundary",
description="Modify the triangles at the boundary to fit the masks.", description="Modify the triangles at the boundary to fit the masks.",
value=False, value=False,
invalidate=True,
), ),
desc.BoolParam( desc.BoolParam(
name="invert", name="invert",
@ -78,7 +71,6 @@ Decimate triangles based on image masks.
description="If ticked, the selected area is ignored.\n" description="If ticked, the selected area is ignored.\n"
"If not, only the selected area is considered.", "If not, only the selected area is considered.",
value=False, value=False,
invalidate=True,
), ),
desc.BoolParam( desc.BoolParam(
name="undistortMasks", name="undistortMasks",
@ -86,7 +78,6 @@ Decimate triangles based on image masks.
description="Undistort the masks with the same parameters as the matching image.\n" description="Undistort the masks with the same parameters as the matching image.\n"
"Select it if the masks are drawn on the original images.", "Select it if the masks are drawn on the original images.",
value=False, value=False,
invalidate=True,
), ),
desc.BoolParam( desc.BoolParam(
name="usePointsVisibilities", name="usePointsVisibilities",
@ -94,7 +85,6 @@ Decimate triangles based on image masks.
description="Use the points visibilities from the meshing to filter triangles.\n" description="Use the points visibilities from the meshing to filter triangles.\n"
"Example: when they are occluded, back-face, etc.", "Example: when they are occluded, back-face, etc.",
value=False, value=False,
invalidate=True
), ),
desc.ChoiceParam( desc.ChoiceParam(
name="verboseLevel", name="verboseLevel",
@ -103,7 +93,6 @@ Decimate triangles based on image masks.
values=VERBOSE_LEVEL, values=VERBOSE_LEVEL,
value="info", value="info",
exclusive=True, exclusive=True,
invalidate=False,
), ),
] ]
@ -113,6 +102,5 @@ Decimate triangles based on image masks.
label="Mesh", label="Mesh",
description="Output mesh file.", description="Output mesh file.",
value=desc.Node.internalFolder + "mesh.{outputMeshFileTypeValue}", value=desc.Node.internalFolder + "mesh.{outputMeshFileTypeValue}",
invalidate=False,
), ),
] ]

View file

@ -21,14 +21,12 @@ Remove triangles from the mesh when the vertices are not visible by any camera.
label="SfMData", label="SfMData",
description="Input SfMData file.", description="Input SfMData file.",
value="", value="",
invalidate=True,
), ),
desc.File( desc.File(
name="inputMesh", name="inputMesh",
label="Mesh", label="Mesh",
description="Input Mesh file.", description="Input Mesh file.",
value="", value="",
invalidate=True,
), ),
desc.ChoiceParam( desc.ChoiceParam(
name="outputMeshFileType", name="outputMeshFileType",
@ -37,7 +35,6 @@ Remove triangles from the mesh when the vertices are not visible by any camera.
value="obj", value="obj",
values=["gltf", "obj", "fbx", "stl"], values=["gltf", "obj", "fbx", "stl"],
exclusive=True, exclusive=True,
invalidate=True,
group="", group="",
), ),
desc.IntParam( desc.IntParam(
@ -46,7 +43,6 @@ Remove triangles from the mesh when the vertices are not visible by any camera.
description="Minimal number of observations to keep a vertex.", description="Minimal number of observations to keep a vertex.",
value=1, value=1,
range=(0, 5, 1), range=(0, 5, 1),
invalidate=True,
), ),
desc.IntParam( desc.IntParam(
name="minVertices", name="minVertices",
@ -54,7 +50,6 @@ Remove triangles from the mesh when the vertices are not visible by any camera.
description="Minimal number of killed vertices in a triangle to remove the triangle.", description="Minimal number of killed vertices in a triangle to remove the triangle.",
value=3, value=3,
range=(1, 3, 1), range=(1, 3, 1),
invalidate=True,
), ),
desc.ChoiceParam( desc.ChoiceParam(
name="verboseLevel", name="verboseLevel",
@ -63,7 +58,6 @@ Remove triangles from the mesh when the vertices are not visible by any camera.
values=VERBOSE_LEVEL, values=VERBOSE_LEVEL,
value="info", value="info",
exclusive=True, exclusive=True,
invalidate=False,
), ),
] ]
@ -73,6 +67,5 @@ Remove triangles from the mesh when the vertices are not visible by any camera.
label="Mesh", label="Mesh",
description="Output mesh file.", description="Output mesh file.",
value=desc.Node.internalFolder + "mesh.{outputMeshFileTypeValue}", value=desc.Node.internalFolder + "mesh.{outputMeshFileTypeValue}",
invalidate=False,
), ),
] ]

View file

@ -20,7 +20,6 @@ This node allows to recompute the mesh surface with a new topology and uniform d
label="Input Mesh", label="Input Mesh",
description="Input mesh in the OBJ file format.", description="Input mesh in the OBJ file format.",
value="", value="",
invalidate=True,
), ),
desc.FloatParam( desc.FloatParam(
name="simplificationFactor", name="simplificationFactor",
@ -28,7 +27,6 @@ This node allows to recompute the mesh surface with a new topology and uniform d
description="Simplification factor for the resampling.", description="Simplification factor for the resampling.",
value=0.5, value=0.5,
range=(0.0, 1.0, 0.01), range=(0.0, 1.0, 0.01),
invalidate=True,
), ),
desc.IntParam( desc.IntParam(
name="nbVertices", name="nbVertices",
@ -36,7 +34,6 @@ This node allows to recompute the mesh surface with a new topology and uniform d
description="Fixed number of output vertices.", description="Fixed number of output vertices.",
value=0, value=0,
range=(0, 1000000, 1), range=(0, 1000000, 1),
invalidate=True,
), ),
desc.IntParam( desc.IntParam(
name="minVertices", name="minVertices",
@ -44,7 +41,6 @@ This node allows to recompute the mesh surface with a new topology and uniform d
description="Minimum number of output vertices.", description="Minimum number of output vertices.",
value=0, value=0,
range=(0, 1000000, 1), range=(0, 1000000, 1),
invalidate=True,
), ),
desc.IntParam( desc.IntParam(
name="maxVertices", name="maxVertices",
@ -52,7 +48,6 @@ This node allows to recompute the mesh surface with a new topology and uniform d
description="Maximum number of output vertices.", description="Maximum number of output vertices.",
value=0, value=0,
range=(0, 1000000, 1), range=(0, 1000000, 1),
invalidate=True,
), ),
desc.IntParam( desc.IntParam(
name="nbLloydIter", name="nbLloydIter",
@ -60,7 +55,6 @@ This node allows to recompute the mesh surface with a new topology and uniform d
description="Number of iterations for Lloyd pre-smoothing.", description="Number of iterations for Lloyd pre-smoothing.",
value=40, value=40,
range=(0, 100, 1), range=(0, 100, 1),
invalidate=True,
), ),
desc.BoolParam( desc.BoolParam(
name="flipNormals", name="flipNormals",
@ -68,7 +62,6 @@ This node allows to recompute the mesh surface with a new topology and uniform d
description="Option to flip face normals.\n" description="Option to flip face normals.\n"
"It can be needed as it depends on the vertices order in triangles and the convention changes from one software to another.", "It can be needed as it depends on the vertices order in triangles and the convention changes from one software to another.",
value=False, value=False,
invalidate=True,
), ),
desc.ChoiceParam( desc.ChoiceParam(
name="verboseLevel", name="verboseLevel",
@ -77,7 +70,6 @@ This node allows to recompute the mesh surface with a new topology and uniform d
values=VERBOSE_LEVEL, values=VERBOSE_LEVEL,
value="info", value="info",
exclusive=True, exclusive=True,
invalidate=False,
), ),
] ]
@ -87,6 +79,5 @@ This node allows to recompute the mesh surface with a new topology and uniform d
label="Mesh", label="Mesh",
description="Output mesh in the OBJ file format.", description="Output mesh in the OBJ file format.",
value=desc.Node.internalFolder + "mesh.obj", value=desc.Node.internalFolder + "mesh.obj",
invalidate=False,
), ),
] ]

View file

@ -28,14 +28,12 @@ A Graph Cut Max-Flow is applied to optimally cut the volume. This cut represents
label="SfmData", label="SfmData",
description="Input SfMData file.", description="Input SfMData file.",
value="", value="",
invalidate=True,
), ),
desc.File( desc.File(
name="depthMapsFolder", name="depthMapsFolder",
label="Depth Maps Folder", label="Depth Maps Folder",
description="Input depth maps folder.", description="Input depth maps folder.",
value="", value="",
invalidate=True,
), ),
desc.ChoiceParam( desc.ChoiceParam(
name="outputMeshFileType", name="outputMeshFileType",
@ -44,7 +42,6 @@ A Graph Cut Max-Flow is applied to optimally cut the volume. This cut represents
value="obj", value="obj",
values=["gltf", "obj", "fbx", "stl"], values=["gltf", "obj", "fbx", "stl"],
exclusive=True, exclusive=True,
invalidate=True,
group="", group="",
), ),
desc.BoolParam( desc.BoolParam(
@ -54,7 +51,6 @@ A Graph Cut Max-Flow is applied to optimally cut the volume. This cut represents
"If enabled, it takes priority over the 'Estimate Space From SfM' option.\n" "If enabled, it takes priority over the 'Estimate Space From SfM' option.\n"
"Parameters can be adjusted in advanced settings.", "Parameters can be adjusted in advanced settings.",
value=False, value=False,
invalidate=True,
group="", group="",
), ),
desc.GroupAttribute( desc.GroupAttribute(
@ -70,19 +66,16 @@ A Graph Cut Max-Flow is applied to optimally cut the volume. This cut represents
desc.FloatParam( desc.FloatParam(
name="x", label="x", description="X offset.", name="x", label="x", description="X offset.",
value=0.0, value=0.0,
invalidate=True,
range=(-20.0, 20.0, 0.01), range=(-20.0, 20.0, 0.01),
), ),
desc.FloatParam( desc.FloatParam(
name="y", label="y", description="Y offset.", name="y", label="y", description="Y offset.",
value=0.0, value=0.0,
invalidate=True,
range=(-20.0, 20.0, 0.01), range=(-20.0, 20.0, 0.01),
), ),
desc.FloatParam( desc.FloatParam(
name="z", label="z", description="Z offset.", name="z", label="z", description="Z offset.",
value=0.0, value=0.0,
invalidate=True,
range=(-20.0, 20.0, 0.01), range=(-20.0, 20.0, 0.01),
), ),
], ],
@ -96,19 +89,16 @@ A Graph Cut Max-Flow is applied to optimally cut the volume. This cut represents
desc.FloatParam( desc.FloatParam(
name="x", label="x", description="Euler X rotation.", name="x", label="x", description="Euler X rotation.",
value=0.0, value=0.0,
invalidate=True,
range=(-90.0, 90.0, 1.0) range=(-90.0, 90.0, 1.0)
), ),
desc.FloatParam( desc.FloatParam(
name="y", label="y", description="Euler Y rotation.", name="y", label="y", description="Euler Y rotation.",
value=0.0, value=0.0,
invalidate=True,
range=(-180.0, 180.0, 1.0) range=(-180.0, 180.0, 1.0)
), ),
desc.FloatParam( desc.FloatParam(
name="z", label="z", description="Euler Z rotation.", name="z", label="z", description="Euler Z rotation.",
value=0.0, value=0.0,
invalidate=True,
range=(-180.0, 180.0, 1.0) range=(-180.0, 180.0, 1.0)
), ),
], ],
@ -122,19 +112,16 @@ A Graph Cut Max-Flow is applied to optimally cut the volume. This cut represents
desc.FloatParam( desc.FloatParam(
name="x", label="x", description="X scale.", name="x", label="x", description="X scale.",
value=1.0, value=1.0,
invalidate=True,
range=(0.0, 20.0, 0.01), range=(0.0, 20.0, 0.01),
), ),
desc.FloatParam( desc.FloatParam(
name="y", label="y", description="Y scale.", name="y", label="y", description="Y scale.",
value=1.0, value=1.0,
invalidate=True,
range=(0.0, 20.0, 0.01), range=(0.0, 20.0, 0.01),
), ),
desc.FloatParam( desc.FloatParam(
name="z", label="z", description="Z scale.", name="z", label="z", description="Z scale.",
value=1.0, value=1.0,
invalidate=True,
range=(0.0, 20.0, 0.01), range=(0.0, 20.0, 0.01),
), ),
], ],
@ -149,7 +136,6 @@ A Graph Cut Max-Flow is applied to optimally cut the volume. This cut represents
label="Estimate Space From SfM", label="Estimate Space From SfM",
description="Estimate the 3D space from the SfM.", description="Estimate the 3D space from the SfM.",
value=True, value=True,
invalidate=True,
advanced=True, advanced=True,
), ),
desc.IntParam( desc.IntParam(
@ -158,7 +144,6 @@ A Graph Cut Max-Flow is applied to optimally cut the volume. This cut represents
description="Minimum number of observations for the space estimation from the SfM.", description="Minimum number of observations for the space estimation from the SfM.",
value=3, value=3,
range=(0, 100, 1), range=(0, 100, 1),
invalidate=True,
advanced=True, advanced=True,
enabled=lambda node: node.estimateSpaceFromSfM.value, enabled=lambda node: node.estimateSpaceFromSfM.value,
), ),
@ -168,7 +153,6 @@ A Graph Cut Max-Flow is applied to optimally cut the volume. This cut represents
description="Minimum angle between two observations for the space estimation from the SfM.", description="Minimum angle between two observations for the space estimation from the SfM.",
value=10.0, value=10.0,
range=(0.0, 120.0, 1.0), range=(0.0, 120.0, 1.0),
invalidate=True,
enabled=lambda node: node.estimateSpaceFromSfM.value, enabled=lambda node: node.estimateSpaceFromSfM.value,
), ),
desc.IntParam( desc.IntParam(
@ -177,7 +161,6 @@ A Graph Cut Max-Flow is applied to optimally cut the volume. This cut represents
description="Maximum input points loaded from depth map images.", description="Maximum input points loaded from depth map images.",
value=50000000, value=50000000,
range=(500000, 500000000, 1000), range=(500000, 500000000, 1000),
invalidate=True,
), ),
desc.IntParam( desc.IntParam(
name="maxPoints", name="maxPoints",
@ -185,7 +168,6 @@ A Graph Cut Max-Flow is applied to optimally cut the volume. This cut represents
description="Maximum points at the end of the depth maps fusion.", description="Maximum points at the end of the depth maps fusion.",
value=5000000, value=5000000,
range=(100000, 10000000, 1000), range=(100000, 10000000, 1000),
invalidate=True,
), ),
desc.IntParam( desc.IntParam(
name="maxPointsPerVoxel", name="maxPointsPerVoxel",
@ -193,7 +175,6 @@ A Graph Cut Max-Flow is applied to optimally cut the volume. This cut represents
description="Maximum points per voxel.", description="Maximum points per voxel.",
value=1000000, value=1000000,
range=(500000, 30000000, 1000), range=(500000, 30000000, 1000),
invalidate=True,
advanced=True, advanced=True,
), ),
desc.IntParam( desc.IntParam(
@ -204,7 +185,6 @@ A Graph Cut Max-Flow is applied to optimally cut the volume. This cut represents
"too much time at the beginning loading all the depth values.", "too much time at the beginning loading all the depth values.",
value=2, value=2,
range=(1, 20, 1), range=(1, 20, 1),
invalidate=True,
advanced=True, advanced=True,
), ),
desc.ChoiceParam( desc.ChoiceParam(
@ -214,7 +194,6 @@ A Graph Cut Max-Flow is applied to optimally cut the volume. This cut represents
value="singleBlock", value="singleBlock",
values=["singleBlock", "auto"], values=["singleBlock", "auto"],
exclusive=True, exclusive=True,
invalidate=True,
advanced=True, advanced=True,
), ),
desc.ChoiceParam( desc.ChoiceParam(
@ -224,7 +203,6 @@ A Graph Cut Max-Flow is applied to optimally cut the volume. This cut represents
value="multiResolution", value="multiResolution",
values=["multiResolution", "regularGrid"], values=["multiResolution", "regularGrid"],
exclusive=True, exclusive=True,
invalidate=True,
advanced=True, advanced=True,
), ),
desc.FloatParam( desc.FloatParam(
@ -233,7 +211,6 @@ A Graph Cut Max-Flow is applied to optimally cut the volume. This cut represents
description="Angle factor.", description="Angle factor.",
value=15.0, value=15.0,
range=(0.0, 200.0, 1.0), range=(0.0, 200.0, 1.0),
invalidate=True,
advanced=True, advanced=True,
), ),
desc.FloatParam( desc.FloatParam(
@ -242,7 +219,6 @@ A Graph Cut Max-Flow is applied to optimally cut the volume. This cut represents
description="Sim factor.", description="Sim factor.",
value=15.0, value=15.0,
range=(0.0, 200.0, 1.0), range=(0.0, 200.0, 1.0),
invalidate=True,
advanced=True, advanced=True,
), ),
desc.IntParam( desc.IntParam(
@ -251,7 +227,6 @@ A Graph Cut Max-Flow is applied to optimally cut the volume. This cut represents
description="Filter points based on their number of observations.", description="Filter points based on their number of observations.",
value=2, value=2,
range=(1, 20, 1), range=(1, 20, 1),
invalidate=True,
advanced=True, advanced=True,
), ),
desc.FloatParam( desc.FloatParam(
@ -260,7 +235,6 @@ A Graph Cut Max-Flow is applied to optimally cut the volume. This cut represents
description="Size of the margin init coefficient, in pixels.", description="Size of the margin init coefficient, in pixels.",
value=2.0, value=2.0,
range=(0.0, 10.0, 0.1), range=(0.0, 10.0, 0.1),
invalidate=True,
advanced=True, advanced=True,
), ),
desc.FloatParam( desc.FloatParam(
@ -269,7 +243,6 @@ A Graph Cut Max-Flow is applied to optimally cut the volume. This cut represents
description="Size of the margin final coefficient, in pixels.", description="Size of the margin final coefficient, in pixels.",
value=4.0, value=4.0,
range=(0.0, 10.0, 0.1), range=(0.0, 10.0, 0.1),
invalidate=True,
advanced=True, advanced=True,
), ),
desc.FloatParam( desc.FloatParam(
@ -278,7 +251,6 @@ A Graph Cut Max-Flow is applied to optimally cut the volume. This cut represents
description="Vote margin factor.", description="Vote margin factor.",
value=4.0, value=4.0,
range=(0.1, 10.0, 0.1), range=(0.1, 10.0, 0.1),
invalidate=True,
advanced=True, advanced=True,
), ),
desc.FloatParam( desc.FloatParam(
@ -287,7 +259,6 @@ A Graph Cut Max-Flow is applied to optimally cut the volume. This cut represents
description="Contribute margin factor.", description="Contribute margin factor.",
value=2.0, value=2.0,
range=(0.0, 10.0, 0.1), range=(0.0, 10.0, 0.1),
invalidate=True,
advanced=True, advanced=True,
), ),
desc.FloatParam( desc.FloatParam(
@ -296,7 +267,6 @@ A Graph Cut Max-Flow is applied to optimally cut the volume. This cut represents
description="Sim Gaussian size init.", description="Sim Gaussian size init.",
value=10.0, value=10.0,
range=(0.0, 50.0, 0.1), range=(0.0, 50.0, 0.1),
invalidate=True,
advanced=True, advanced=True,
), ),
desc.FloatParam( desc.FloatParam(
@ -305,7 +275,6 @@ A Graph Cut Max-Flow is applied to optimally cut the volume. This cut represents
description="Sim Gaussian size.", description="Sim Gaussian size.",
value=10.0, value=10.0,
range=(0.0, 50.0, 0.1), range=(0.0, 50.0, 0.1),
invalidate=True,
advanced=True, advanced=True,
), ),
desc.FloatParam( desc.FloatParam(
@ -314,7 +283,6 @@ A Graph Cut Max-Flow is applied to optimally cut the volume. This cut represents
description="Minimum angle threshold.", description="Minimum angle threshold.",
value=1.0, value=1.0,
range=(0.0, 10.0, 0.01), range=(0.0, 10.0, 0.01),
invalidate=True,
advanced=True, advanced=True,
), ),
desc.BoolParam( desc.BoolParam(
@ -322,7 +290,6 @@ A Graph Cut Max-Flow is applied to optimally cut the volume. This cut represents
label="Refine Fuse", label="Refine Fuse",
description="Refine depth map fusion with the new pixels size defined by angle and similarity scores.", description="Refine depth map fusion with the new pixels size defined by angle and similarity scores.",
value=True, value=True,
invalidate=True,
advanced=True, advanced=True,
), ),
desc.IntParam( desc.IntParam(
@ -331,7 +298,6 @@ A Graph Cut Max-Flow is applied to optimally cut the volume. This cut represents
description="Grid size for the helper points.", description="Grid size for the helper points.",
value=10, value=10,
range=(0, 50, 1), range=(0, 50, 1),
invalidate=True,
advanced=True, advanced=True,
), ),
desc.BoolParam( desc.BoolParam(
@ -349,7 +315,6 @@ A Graph Cut Max-Flow is applied to optimally cut the volume. This cut represents
description="Densify vertices: front.", description="Densify vertices: front.",
value=1, value=1,
range=(0, 5, 1), range=(0, 5, 1),
invalidate=True,
advanced=True, advanced=True,
enabled=lambda node: node.densify.value, enabled=lambda node: node.densify.value,
), ),
@ -359,7 +324,6 @@ A Graph Cut Max-Flow is applied to optimally cut the volume. This cut represents
description="Densify vertices: back.", description="Densify vertices: back.",
value=1, value=1,
range=(0, 5, 1), range=(0, 5, 1),
invalidate=True,
advanced=True, advanced=True,
enabled=lambda node: node.densify.value, enabled=lambda node: node.densify.value,
), ),
@ -369,7 +333,6 @@ A Graph Cut Max-Flow is applied to optimally cut the volume. This cut represents
description="Scale between points used to densify the scene.", description="Scale between points used to densify the scene.",
value=20.0, value=20.0,
range=(0.0, 10.0, 0.1), range=(0.0, 10.0, 0.1),
invalidate=True,
advanced=True, advanced=True,
enabled=lambda node: node.densify.value, enabled=lambda node: node.densify.value,
), ),
@ -379,7 +342,6 @@ A Graph Cut Max-Flow is applied to optimally cut the volume. This cut represents
description="Number of pixel size units to vote behind the vertex as FULL status.", description="Number of pixel size units to vote behind the vertex as FULL status.",
value=4.0, value=4.0,
range=(0.0, 10.0, 0.1), range=(0.0, 10.0, 0.1),
invalidate=True,
advanced=True, advanced=True,
), ),
desc.FloatParam( desc.FloatParam(
@ -388,7 +350,6 @@ A Graph Cut Max-Flow is applied to optimally cut the volume. This cut represents
description="Weighting for full status.", description="Weighting for full status.",
value=1.0, value=1.0,
range=(0.0, 10.0, 0.1), range=(0.0, 10.0, 0.1),
invalidate=True,
advanced=True, advanced=True,
), ),
desc.BoolParam( desc.BoolParam(
@ -396,14 +357,12 @@ A Graph Cut Max-Flow is applied to optimally cut the volume. This cut represents
label="Weakly Supported Surface Support", label="Weakly Supported Surface Support",
description="Improve support of weakly supported surfaces with a tetrahedra fullness score filtering.", description="Improve support of weakly supported surfaces with a tetrahedra fullness score filtering.",
value=True, value=True,
invalidate=True,
), ),
desc.BoolParam( desc.BoolParam(
name="addLandmarksToTheDensePointCloud", name="addLandmarksToTheDensePointCloud",
label="Add Landmarks To The Dense Point Cloud", label="Add Landmarks To The Dense Point Cloud",
description="Add SfM landmarks to the dense point cloud.", description="Add SfM landmarks to the dense point cloud.",
value=False, value=False,
invalidate=True,
advanced=True, advanced=True,
), ),
desc.IntParam( desc.IntParam(
@ -413,7 +372,6 @@ A Graph Cut Max-Flow is applied to optimally cut the volume. This cut represents
"Set to 0 to disable.", "Set to 0 to disable.",
value=10, value=10,
range=(0, 30, 1), range=(0, 30, 1),
invalidate=True,
advanced=True, advanced=True,
), ),
desc.FloatParam( desc.FloatParam(
@ -423,7 +381,6 @@ A Graph Cut Max-Flow is applied to optimally cut the volume. This cut represents
"ratio between full/empty parts. Set to 0 to disable.", "ratio between full/empty parts. Set to 0 to disable.",
value=0.2, value=0.2,
range=(0.0, 0.5, 0.01), range=(0.0, 0.5, 0.01),
invalidate=True,
advanced=True, advanced=True,
), ),
desc.IntParam( desc.IntParam(
@ -433,7 +390,6 @@ A Graph Cut Max-Flow is applied to optimally cut the volume. This cut represents
"between full/empty parts. Set to 0 to disable.", "between full/empty parts. Set to 0 to disable.",
value=2, value=2,
range=(0, 30, 1), range=(0, 30, 1),
invalidate=True,
advanced=True, advanced=True,
), ),
desc.BoolParam( desc.BoolParam(
@ -441,7 +397,6 @@ A Graph Cut Max-Flow is applied to optimally cut the volume. This cut represents
label="Colorize Output", label="Colorize Output",
description="Whether to colorize output dense point cloud and mesh.", description="Whether to colorize output dense point cloud and mesh.",
value=False, value=False,
invalidate=True,
), ),
desc.BoolParam( desc.BoolParam(
name="addMaskHelperPoints", name="addMaskHelperPoints",
@ -458,7 +413,6 @@ A Graph Cut Max-Flow is applied to optimally cut the volume. This cut represents
description="Weight value for mask helper points. 0 means no helper point.", description="Weight value for mask helper points. 0 means no helper point.",
value=1.0, value=1.0,
range=(0.0, 20.0, 1.0), range=(0.0, 20.0, 1.0),
invalidate=True,
advanced=True, advanced=True,
enabled=lambda node: node.addMaskHelperPoints.value, enabled=lambda node: node.addMaskHelperPoints.value,
), ),
@ -468,7 +422,6 @@ A Graph Cut Max-Flow is applied to optimally cut the volume. This cut represents
description="Number of pixels on mask borders.", description="Number of pixels on mask borders.",
value=4, value=4,
range=(0, 20, 1), range=(0, 20, 1),
invalidate=True,
advanced=True, advanced=True,
enabled=lambda node: node.addMaskHelperPoints.value, enabled=lambda node: node.addMaskHelperPoints.value,
), ),
@ -480,7 +433,6 @@ A Graph Cut Max-Flow is applied to optimally cut the volume. This cut represents
"0 means that all helper points are removed. -1 means that helper points are not filtered at all.", "0 means that all helper points are removed. -1 means that helper points are not filtered at all.",
value=50, value=50,
range=(-1, 100, 1), range=(-1, 100, 1),
invalidate=True,
advanced=True, advanced=True,
), ),
desc.BoolParam( desc.BoolParam(
@ -507,7 +459,6 @@ A Graph Cut Max-Flow is applied to optimally cut the volume. This cut represents
"0 means use of random device instead of a fixed seed.", "0 means use of random device instead of a fixed seed.",
value=0, value=0,
range=(0, 10000, 1), range=(0, 10000, 1),
invalidate=True,
advanced=True, advanced=True,
), ),
desc.ChoiceParam( desc.ChoiceParam(
@ -517,7 +468,6 @@ A Graph Cut Max-Flow is applied to optimally cut the volume. This cut represents
values=VERBOSE_LEVEL, values=VERBOSE_LEVEL,
value="info", value="info",
exclusive=True, exclusive=True,
invalidate=False,
), ),
] ]
@ -527,13 +477,11 @@ A Graph Cut Max-Flow is applied to optimally cut the volume. This cut represents
label="Mesh", label="Mesh",
description="Output mesh.", description="Output mesh.",
value=desc.Node.internalFolder + "mesh.{outputMeshFileTypeValue}", value=desc.Node.internalFolder + "mesh.{outputMeshFileTypeValue}",
invalidate=False,
), ),
desc.File( desc.File(
name="output", name="output",
label="Dense SfMData", label="Dense SfMData",
description="Output dense point cloud with visibilities (SfMData file format).", description="Output dense point cloud with visibilities (SfMData file format).",
value=desc.Node.internalFolder + "densePointCloud.abc", value=desc.Node.internalFolder + "densePointCloud.abc",
invalidate=False,
), ),
] ]

View file

@ -19,21 +19,18 @@ A Structure-From-Motion node specifically designed to handle pure rotation camer
label="SfMData", label="SfMData",
description="Input SfMData file.", description="Input SfMData file.",
value="", value="",
invalidate=True,
), ),
desc.File( desc.File(
name="tracksFilename", name="tracksFilename",
label="Tracks File", label="Tracks File",
description="Input tracks file.", description="Input tracks file.",
value="", value="",
invalidate=True,
), ),
desc.File( desc.File(
name="pairs", name="pairs",
label="Pairs File", label="Pairs File",
description="Information on pairs.", description="Information on pairs.",
value="", value="",
invalidate=True,
), ),
desc.ChoiceParam( desc.ChoiceParam(
name="verboseLevel", name="verboseLevel",
@ -42,7 +39,6 @@ A Structure-From-Motion node specifically designed to handle pure rotation camer
values=VERBOSE_LEVEL, values=VERBOSE_LEVEL,
value="info", value="info",
exclusive=True, exclusive=True,
invalidate=False,
), ),
] ]
@ -52,6 +48,5 @@ A Structure-From-Motion node specifically designed to handle pure rotation camer
label="SfMData", label="SfMData",
description="Path to the output SfMData file.", description="Path to the output SfMData file.",
value=desc.Node.internalFolder + "sfm.abc", value=desc.Node.internalFolder + "sfm.abc",
invalidate=False,
), ),
] ]

View file

@ -16,14 +16,12 @@ Evaluate a depth map from a normals map (currently in development)
label="Normal Maps Folder", label="Normal Maps Folder",
description="Path to the folder containing the normal maps and the masks.", description="Path to the folder containing the normal maps and the masks.",
value="", value="",
invalidate=True,
), ),
desc.File( desc.File(
name="sfmDataFile", name="sfmDataFile",
label="SfMData", label="SfMData",
description="Input SfMData file.", description="Input SfMData file.",
value="", value="",
invalidate=True,
), ),
desc.IntParam( desc.IntParam(
name="downscale", name="downscale",
@ -32,7 +30,6 @@ Evaluate a depth map from a normals map (currently in development)
value=1, value=1,
range=(1, 10, 1), range=(1, 10, 1),
advanced=True, advanced=True,
invalidate=True,
), ),
desc.ChoiceParam( desc.ChoiceParam(
name="verboseLevel", name="verboseLevel",
@ -41,7 +38,6 @@ Evaluate a depth map from a normals map (currently in development)
values=VERBOSE_LEVEL, values=VERBOSE_LEVEL,
value="info", value="info",
exclusive=True, exclusive=True,
invalidate=False,
), ),
] ]
@ -52,7 +48,6 @@ Evaluate a depth map from a normals map (currently in development)
description="Generated depth in the camera coordinate system.", description="Generated depth in the camera coordinate system.",
semantic="image", semantic="image",
value=desc.Node.internalFolder + "<POSE_ID>_depthMap.exr", value=desc.Node.internalFolder + "<POSE_ID>_depthMap.exr",
invalidate=False,
group="", # do not export on the command line group="", # do not export on the command line
) )
] ]

View file

@ -29,21 +29,18 @@ Multiple cameras are contributing to the low frequencies and only the best one c
label="Input SfMData", label="Input SfMData",
description="Input SfMData file.", description="Input SfMData file.",
value="", value="",
invalidate=True,
), ),
desc.File( desc.File(
name="warpingFolder", name="warpingFolder",
label="Warping Folder", label="Warping Folder",
description="Panorama warping results folder.", description="Panorama warping results folder.",
value="", value="",
invalidate=True,
), ),
desc.File( desc.File(
name="labels", name="labels",
label="Labels Images", label="Labels Images",
description="Panorama seams results images.", description="Panorama seams results images.",
value="", value="",
invalidate=True,
), ),
desc.ChoiceParam( desc.ChoiceParam(
name="compositerType", name="compositerType",
@ -55,7 +52,6 @@ Multiple cameras are contributing to the low frequencies and only the best one c
value="multiband", value="multiband",
values=["replace", "alpha", "multiband"], values=["replace", "alpha", "multiband"],
exclusive=True, exclusive=True,
invalidate=True,
), ),
desc.IntParam( desc.IntParam(
name="forceMinPyramidLevels", name="forceMinPyramidLevels",
@ -63,7 +59,6 @@ Multiple cameras are contributing to the low frequencies and only the best one c
description="Force the minimal number of levels in the pyramid for multiband compositer.", description="Force the minimal number of levels in the pyramid for multiband compositer.",
value=0, value=0,
range=(0, 16, 1), range=(0, 16, 1),
invalidate=True,
enabled=lambda node: node.compositerType.value and node.compositerType.value == "multiband", enabled=lambda node: node.compositerType.value and node.compositerType.value == "multiband",
), ),
desc.IntParam( desc.IntParam(
@ -80,7 +75,6 @@ Multiple cameras are contributing to the low frequencies and only the best one c
label="Use Tiling", label="Use Tiling",
description="Enable tiling mode for parallelization.", description="Enable tiling mode for parallelization.",
value=True, value=True,
invalidate=True,
), ),
desc.ChoiceParam( desc.ChoiceParam(
name="storageDataType", name="storageDataType",
@ -93,7 +87,6 @@ Multiple cameras are contributing to the low frequencies and only the best one c
values=EXR_STORAGE_DATA_TYPE, values=EXR_STORAGE_DATA_TYPE,
value="float", value="float",
exclusive=True, exclusive=True,
invalidate=True,
), ),
desc.ChoiceParam( desc.ChoiceParam(
name="overlayType", name="overlayType",
@ -107,7 +100,6 @@ Multiple cameras are contributing to the low frequencies and only the best one c
values=["none", "borders", "seams", "all"], values=["none", "borders", "seams", "all"],
exclusive=True, exclusive=True,
advanced=True, advanced=True,
invalidate=True,
), ),
desc.ChoiceParam( desc.ChoiceParam(
name="verboseLevel", name="verboseLevel",
@ -116,7 +108,6 @@ Multiple cameras are contributing to the low frequencies and only the best one c
values=VERBOSE_LEVEL, values=VERBOSE_LEVEL,
value="info", value="info",
exclusive=True, exclusive=True,
invalidate=False,
), ),
] ]
@ -126,6 +117,5 @@ Multiple cameras are contributing to the low frequencies and only the best one c
label="Folder", label="Folder",
description="Output folder containing the composited panorama.", description="Output folder containing the composited panorama.",
value=desc.Node.internalFolder, value=desc.Node.internalFolder,
invalidate=False,
), ),
] ]

View file

@ -22,7 +22,6 @@ Estimate relative camera rotations between input images.
label="SfMData", label="SfMData",
description="Input SfMData file.", description="Input SfMData file.",
value="", value="",
invalidate=True,
), ),
desc.ListAttribute( desc.ListAttribute(
elementDesc=desc.File( elementDesc=desc.File(
@ -30,7 +29,6 @@ Estimate relative camera rotations between input images.
label="Features Folder", label="Features Folder",
description="Folder containing some extracted features.", description="Folder containing some extracted features.",
value="", value="",
invalidate=True,
), ),
name="featuresFolders", name="featuresFolders",
label="Features Folders", label="Features Folders",
@ -42,7 +40,6 @@ Estimate relative camera rotations between input images.
label="Matches Folder", label="Matches Folder",
description="Folder containing some matches.", description="Folder containing some matches.",
value="", value="",
invalidate=True,
), ),
name="matchesFolders", name="matchesFolders",
label="Matches Folders", label="Matches Folders",
@ -55,7 +52,6 @@ Estimate relative camera rotations between input images.
values=DESCRIBER_TYPES, values=DESCRIBER_TYPES,
value=["sift"], value=["sift"],
exclusive=False, exclusive=False,
invalidate=True,
joinChar=",", joinChar=",",
), ),
desc.FloatParam( desc.FloatParam(
@ -64,7 +60,6 @@ Estimate relative camera rotations between input images.
description="Offset to the panorama longitude (in degrees).", description="Offset to the panorama longitude (in degrees).",
value=0.0, value=0.0,
range=(-180.0, 180.0, 1.0), range=(-180.0, 180.0, 1.0),
invalidate=True,
), ),
desc.FloatParam( desc.FloatParam(
name="offsetLatitude", name="offsetLatitude",
@ -72,7 +67,6 @@ Estimate relative camera rotations between input images.
description="Offset to the panorama latitude (in degrees).", description="Offset to the panorama latitude (in degrees).",
value=0.0, value=0.0,
range=(-90.0, 90.0, 1.0), range=(-90.0, 90.0, 1.0),
invalidate=True,
), ),
desc.ChoiceParam( desc.ChoiceParam(
name="rotationAveraging", name="rotationAveraging",
@ -83,7 +77,6 @@ Estimate relative camera rotations between input images.
values=["L1_minimization", "L2_minimization"], values=["L1_minimization", "L2_minimization"],
value="L2_minimization", value="L2_minimization",
exclusive=True, exclusive=True,
invalidate=True,
advanced=True, advanced=True,
), ),
desc.ChoiceParam( desc.ChoiceParam(
@ -96,7 +89,6 @@ Estimate relative camera rotations between input images.
values=["essential_matrix", "homography_matrix", "rotation_matrix"], values=["essential_matrix", "homography_matrix", "rotation_matrix"],
value="rotation_matrix", value="rotation_matrix",
exclusive=True, exclusive=True,
invalidate=True,
advanced=True, advanced=True,
), ),
desc.BoolParam( desc.BoolParam(
@ -104,7 +96,6 @@ Estimate relative camera rotations between input images.
label="Rotation Averaging Weighting", label="Rotation Averaging Weighting",
description="Rotation averaging weighting based on the number of feature matches.", description="Rotation averaging weighting based on the number of feature matches.",
value=True, value=True,
invalidate=True,
advanced=True, advanced=True,
), ),
desc.BoolParam( desc.BoolParam(
@ -112,14 +103,12 @@ Estimate relative camera rotations between input images.
label="Filter Matches", label="Filter Matches",
description="Filter the matches.", description="Filter the matches.",
value=False, value=False,
invalidate=True,
), ),
desc.BoolParam( desc.BoolParam(
name="refine", name="refine",
label="Refine", label="Refine",
description="Refine camera relative poses, points and optionally internal camera parameters.", description="Refine camera relative poses, points and optionally internal camera parameters.",
value=True, value=True,
invalidate=True,
), ),
desc.BoolParam( desc.BoolParam(
name="lockAllIntrinsics", name="lockAllIntrinsics",
@ -128,7 +117,6 @@ Estimate relative camera rotations between input images.
"principal point, distortion if any) constant during the reconstruction.\n" "principal point, distortion if any) constant during the reconstruction.\n"
"This may be helpful if the input cameras are already fully calibrated.", "This may be helpful if the input cameras are already fully calibrated.",
value=False, value=False,
invalidate=True,
), ),
desc.FloatParam( desc.FloatParam(
name="maxAngleToPrior", name="maxAngleToPrior",
@ -136,7 +124,6 @@ Estimate relative camera rotations between input images.
description="Maximum angle allowed regarding the input prior (in degrees) before refinement.", description="Maximum angle allowed regarding the input prior (in degrees) before refinement.",
value=20.0, value=20.0,
range=(0.0, 360.0, 1.0), range=(0.0, 360.0, 1.0),
invalidate=True,
advanced=True, advanced=True,
), ),
desc.FloatParam( desc.FloatParam(
@ -145,7 +132,6 @@ Estimate relative camera rotations between input images.
description="Maximum angle allowed regarding the input prior (in degrees) after refinement.", description="Maximum angle allowed regarding the input prior (in degrees) after refinement.",
value=2.0, value=2.0,
range=(0.0, 360.0, 1.0), range=(0.0, 360.0, 1.0),
invalidate=True,
advanced=True, advanced=True,
), ),
desc.FloatParam( desc.FloatParam(
@ -154,7 +140,6 @@ Estimate relative camera rotations between input images.
description="Maximum angular error in global rotation averging (in degrees).", description="Maximum angular error in global rotation averging (in degrees).",
value=100.0, value=100.0,
range=(0.0, 360.0, 1.0), range=(0.0, 360.0, 1.0),
invalidate=True,
advanced=True, advanced=True,
), ),
desc.BoolParam( desc.BoolParam(
@ -162,7 +147,6 @@ Estimate relative camera rotations between input images.
label="Intermediate Refine: Focal", label="Intermediate Refine: Focal",
description="Intermediate refine with rotation and focal length only.", description="Intermediate refine with rotation and focal length only.",
value=False, value=False,
invalidate=True,
advanced=True, advanced=True,
), ),
desc.BoolParam( desc.BoolParam(
@ -170,7 +154,6 @@ Estimate relative camera rotations between input images.
label="Intermediate Refine: Focal And Distortion", label="Intermediate Refine: Focal And Distortion",
description="Intermediate refine with rotation, focal length and distortion.", description="Intermediate refine with rotation, focal length and distortion.",
value=False, value=False,
invalidate=True,
advanced=True, advanced=True,
), ),
desc.ChoiceParam( desc.ChoiceParam(
@ -180,7 +163,6 @@ Estimate relative camera rotations between input images.
values=VERBOSE_LEVEL, values=VERBOSE_LEVEL,
value="info", value="info",
exclusive=True, exclusive=True,
invalidate=False,
), ),
] ]
@ -190,13 +172,11 @@ Estimate relative camera rotations between input images.
label="SfM File", label="SfM File",
description="Path to the output SfM file.", description="Path to the output SfM file.",
value=desc.Node.internalFolder + "panorama.abc", value=desc.Node.internalFolder + "panorama.abc",
invalidate=False,
), ),
desc.File( desc.File(
name="outputViewsAndPoses", name="outputViewsAndPoses",
label="Views And Poses", label="Views And Poses",
description="Path to the output SfMData file with cameras (views and poses).", description="Path to the output SfMData file with cameras (views and poses).",
value=desc.Node.internalFolder + "cameras.sfm", value=desc.Node.internalFolder + "cameras.sfm",
invalidate=False,
), ),
] ]

View file

@ -27,7 +27,6 @@ This node allows to setup the Panorama:
label="SfMData", label="SfMData",
description="Input SfMData file.", description="Input SfMData file.",
value="", value="",
invalidate=True,
), ),
desc.ChoiceParam( desc.ChoiceParam(
name="initializeCameras", name="initializeCameras",
@ -36,14 +35,12 @@ This node allows to setup the Panorama:
value="No", value="No",
values=["No", "File", "Horizontal", "Horizontal+Zenith", "Zenith+Horizontal", "Spherical"], values=["No", "File", "Horizontal", "Horizontal+Zenith", "Zenith+Horizontal", "Spherical"],
exclusive=True, exclusive=True,
invalidate=True,
), ),
desc.File( desc.File(
name="config", name="config",
label="XML Config", label="XML Config",
description="XML data file.", description="XML data file.",
value="", value="",
invalidate=True,
enabled=lambda node: node.initializeCameras.value == "File", enabled=lambda node: node.initializeCameras.value == "File",
), ),
desc.BoolParam( desc.BoolParam(
@ -51,7 +48,6 @@ This node allows to setup the Panorama:
label="Yaw CW", label="Yaw CW",
description="If selected, the yaw rotation will be clockwise. Otherwise, it will be counter-clockwise.", description="If selected, the yaw rotation will be clockwise. Otherwise, it will be counter-clockwise.",
value=True, value=True,
invalidate=True,
enabled=lambda node: ("Horizontal" in node.initializeCameras.value) or (node.initializeCameras.value == "Spherical"), enabled=lambda node: ("Horizontal" in node.initializeCameras.value) or (node.initializeCameras.value == "Spherical"),
), ),
desc.BoolParam( desc.BoolParam(
@ -60,7 +56,6 @@ This node allows to setup the Panorama:
description="Build the contact sheet for the panorama if an XML data file is provided.\n" description="Build the contact sheet for the panorama if an XML data file is provided.\n"
"The contact sheet consists in a preview of the panorama using the input images.", "The contact sheet consists in a preview of the panorama using the input images.",
value=True, value=True,
invalidate=True,
enabled=lambda node: node.config.enabled and node.config.value != "", enabled=lambda node: node.config.enabled and node.config.value != "",
), ),
desc.ListAttribute( desc.ListAttribute(
@ -70,7 +65,6 @@ This node allows to setup the Panorama:
description="Number of views for a line.", description="Number of views for a line.",
value=-1, value=-1,
range=(-1, 20, 1), range=(-1, 20, 1),
invalidate=True,
), ),
name="nbViewsPerLine", name="nbViewsPerLine",
label="Spherical: Nb Views Per Line", label="Spherical: Nb Views Per Line",
@ -85,14 +79,12 @@ This node allows to setup the Panorama:
label="Full Fisheye", label="Full Fisheye",
description="Set this option to declare a full fisheye panorama setup.", description="Set this option to declare a full fisheye panorama setup.",
value=False, value=False,
invalidate=True,
), ),
desc.BoolParam( desc.BoolParam(
name="estimateFisheyeCircle", name="estimateFisheyeCircle",
label="Estimate Fisheye Circle", label="Estimate Fisheye Circle",
description="Automatically estimate the fisheye circle center and radius instead of using user values.", description="Automatically estimate the fisheye circle center and radius instead of using user values.",
value=True, value=True,
invalidate=True,
enabled=lambda node: node.useFisheye.value, enabled=lambda node: node.useFisheye.value,
), ),
desc.GroupAttribute( desc.GroupAttribute(
@ -105,7 +97,6 @@ This node allows to setup the Panorama:
label="x", label="x",
description="X offset in pixels.", description="X offset in pixels.",
value=0.0, value=0.0,
invalidate=True,
range=(-1000.0, 10000.0, 1.0), range=(-1000.0, 10000.0, 1.0),
), ),
desc.FloatParam( desc.FloatParam(
@ -113,7 +104,6 @@ This node allows to setup the Panorama:
label="y", label="y",
description="Y offset in pixels.", description="Y offset in pixels.",
value=0.0, value=0.0,
invalidate=True,
range=(-1000.0, 10000.0, 1.0), range=(-1000.0, 10000.0, 1.0),
), ),
], ],
@ -126,7 +116,6 @@ This node allows to setup the Panorama:
description="Fisheye visibillity circle radius (in % of image's shortest side).", description="Fisheye visibillity circle radius (in % of image's shortest side).",
value=96.0, value=96.0,
range=(0.0, 150.0, 0.01), range=(0.0, 150.0, 0.01),
invalidate=True,
enabled=lambda node: node.useFisheye.value and not node.estimateFisheyeCircle.value, enabled=lambda node: node.useFisheye.value and not node.estimateFisheyeCircle.value,
), ),
desc.ChoiceParam( desc.ChoiceParam(
@ -136,14 +125,12 @@ This node allows to setup the Panorama:
value="None", value="None",
values=["None", "rotate90", "rotate180", "rotate270"], values=["None", "rotate90", "rotate180", "rotate270"],
exclusive=True, exclusive=True,
invalidate=True,
), ),
desc.BoolParam( desc.BoolParam(
name="debugFisheyeCircleEstimation", name="debugFisheyeCircleEstimation",
label="Debug Fisheye Circle Detection", label="Debug Fisheye Circle Detection",
description="Debug fisheye circle detection.", description="Debug fisheye circle detection.",
value=False, value=False,
invalidate=True,
enabled=lambda node: node.useFisheye.value, enabled=lambda node: node.useFisheye.value,
advanced=True, advanced=True,
), ),
@ -154,7 +141,6 @@ This node allows to setup the Panorama:
values=VERBOSE_LEVEL, values=VERBOSE_LEVEL,
value="info", value="info",
exclusive=True, exclusive=True,
invalidate=False,
), ),
] ]
@ -164,6 +150,5 @@ This node allows to setup the Panorama:
label="SfMData File", label="SfMData File",
description="Path to the output SfMData file.", description="Path to the output SfMData file.",
value=desc.Node.internalFolder + "sfmData.sfm", value=desc.Node.internalFolder + "sfmData.sfm",
invalidate=False,
), ),
] ]

View file

@ -24,14 +24,12 @@ Merge all inputs coming from the PanoramaCompositing node.
label="Input SfMData", label="Input SfMData",
description="Input SfMData file.", description="Input SfMData file.",
value="", value="",
invalidate=True,
), ),
desc.File( desc.File(
name="compositingFolder", name="compositingFolder",
label="Compositing Folder", label="Compositing Folder",
description="Panorama compositing results.", description="Panorama compositing results.",
value="", value="",
invalidate=True,
), ),
desc.ChoiceParam( desc.ChoiceParam(
name="outputFileType", name="outputFileType",
@ -40,7 +38,6 @@ Merge all inputs coming from the PanoramaCompositing node.
value="exr", value="exr",
values=["jpg", "png", "tif", "exr"], values=["jpg", "png", "tif", "exr"],
exclusive=True, exclusive=True,
invalidate=True,
group="", # not part of allParams, as this is not a parameter for the command line group="", # not part of allParams, as this is not a parameter for the command line
), ),
desc.BoolParam( desc.BoolParam(
@ -48,7 +45,6 @@ Merge all inputs coming from the PanoramaCompositing node.
label="Use Tiling", label="Use Tiling",
description="Enable tiling mode for parallelization.", description="Enable tiling mode for parallelization.",
value=True, value=True,
invalidate=True,
), ),
desc.ChoiceParam( desc.ChoiceParam(
name="storageDataType", name="storageDataType",
@ -61,7 +57,6 @@ Merge all inputs coming from the PanoramaCompositing node.
values=EXR_STORAGE_DATA_TYPE, values=EXR_STORAGE_DATA_TYPE,
value="float", value="float",
exclusive=True, exclusive=True,
invalidate=True,
), ),
desc.ChoiceParam( desc.ChoiceParam(
name="verboseLevel", name="verboseLevel",
@ -70,7 +65,6 @@ Merge all inputs coming from the PanoramaCompositing node.
values=VERBOSE_LEVEL, values=VERBOSE_LEVEL,
value="info", value="info",
exclusive=True, exclusive=True,
invalidate=False,
), ),
] ]
@ -81,6 +75,5 @@ Merge all inputs coming from the PanoramaCompositing node.
description="Output merged panorama image.", description="Output merged panorama image.",
semantic="image", semantic="image",
value=desc.Node.internalFolder + "panorama.{outputFileTypeValue}", value=desc.Node.internalFolder + "panorama.{outputFileTypeValue}",
invalidate=False,
), ),
] ]

View file

@ -23,21 +23,18 @@ Post process the panorama.
label="Input Panorama", label="Input Panorama",
description="Input panorama image.", description="Input panorama image.",
value="", value="",
invalidate=True,
), ),
desc.BoolParam( desc.BoolParam(
name="fillHoles", name="fillHoles",
label="Fill Holes Algorithm", label="Fill Holes Algorithm",
description="Fill the non attributed pixels with push pull algorithm if set.", description="Fill the non attributed pixels with push pull algorithm if set.",
value=False, value=False,
invalidate=True,
), ),
desc.BoolParam( desc.BoolParam(
name="exportLevels", name="exportLevels",
label="Export Downscaled Levels", label="Export Downscaled Levels",
description="Export downscaled panorama levels.", description="Export downscaled panorama levels.",
value=False, value=False,
invalidate=True,
), ),
desc.IntParam( desc.IntParam(
name="lastLevelMaxSize", name="lastLevelMaxSize",
@ -45,7 +42,6 @@ Post process the panorama.
description="Maximum width of smallest downscaled panorama level.", description="Maximum width of smallest downscaled panorama level.",
value=3840, value=3840,
range=(1, 100000), range=(1, 100000),
invalidate=True,
), ),
desc.IntParam( desc.IntParam(
name="previewSize", name="previewSize",
@ -53,7 +49,6 @@ Post process the panorama.
description="The width (in pixels) of the output panorama preview.", description="The width (in pixels) of the output panorama preview.",
value=1000, value=1000,
range=(0, 5000, 100), range=(0, 5000, 100),
invalidate=True,
), ),
desc.ChoiceParam( desc.ChoiceParam(
name="outputColorSpace", name="outputColorSpace",
@ -62,7 +57,6 @@ Post process the panorama.
values=COLORSPACES, values=COLORSPACES,
value="Linear", value="Linear",
exclusive=True, exclusive=True,
invalidate=True,
), ),
desc.ChoiceParam( desc.ChoiceParam(
name="compressionMethod", name="compressionMethod",
@ -71,7 +65,6 @@ Post process the panorama.
value="auto", value="auto",
values=["none", "auto", "rle", "zip", "zips", "piz", "pxr24", "b44", "b44a", "dwaa", "dwab"], values=["none", "auto", "rle", "zip", "zips", "piz", "pxr24", "b44", "b44a", "dwaa", "dwab"],
exclusive=True, exclusive=True,
invalidate=True,
), ),
desc.IntParam( desc.IntParam(
name="compressionLevel", name="compressionLevel",
@ -81,7 +74,6 @@ Post process the panorama.
"A value of 0 will be ignored, default value for the selected method will be used.", "A value of 0 will be ignored, default value for the selected method will be used.",
value=0, value=0,
range=(0, 500, 1), range=(0, 500, 1),
invalidate=True,
enabled=lambda node: node.compressionMethod.value in ["dwaa", "dwab", "zip", "zips"], enabled=lambda node: node.compressionMethod.value in ["dwaa", "dwab", "zip", "zips"],
), ),
desc.StringParam( desc.StringParam(
@ -109,7 +101,6 @@ Post process the panorama.
values=VERBOSE_LEVEL, values=VERBOSE_LEVEL,
value="info", value="info",
exclusive=True, exclusive=True,
invalidate=False,
), ),
] ]
@ -120,7 +111,6 @@ Post process the panorama.
description="Generated panorama in EXR format.", description="Generated panorama in EXR format.",
semantic="image", semantic="image",
value=lambda attr: desc.Node.internalFolder + attr.node.panoramaName.value, value=lambda attr: desc.Node.internalFolder + attr.node.panoramaName.value,
invalidate=False,
), ),
desc.File( desc.File(
name="outputPanoramaPreview", name="outputPanoramaPreview",
@ -128,14 +118,12 @@ Post process the panorama.
description="Preview of the generated panorama in JPG format.", description="Preview of the generated panorama in JPG format.",
semantic="image", semantic="image",
value=lambda attr: desc.Node.internalFolder + attr.node.previewName.value, value=lambda attr: desc.Node.internalFolder + attr.node.previewName.value,
invalidate=False,
), ),
desc.File( desc.File(
name="downscaledPanoramaLevels", name="downscaledPanoramaLevels",
label="Downscaled Panorama Levels", label="Downscaled Panorama Levels",
description="Downscaled versions of the generated panorama.", description="Downscaled versions of the generated panorama.",
value=lambda attr: desc.Node.internalFolder + os.path.splitext(attr.node.panoramaName.value)[0] + "_level_*.exr", value=lambda attr: desc.Node.internalFolder + os.path.splitext(attr.node.panoramaName.value)[0] + "_level_*.exr",
invalidate=False,
group="", group="",
), ),
] ]

View file

@ -21,7 +21,6 @@ Prepare images for Panorama pipeline: ensures that images orientations are coher
label="Input", label="Input",
description="SfMData file.", description="SfMData file.",
value="", value="",
invalidate=True,
), ),
desc.ChoiceParam( desc.ChoiceParam(
name="verboseLevel", name="verboseLevel",
@ -30,7 +29,6 @@ Prepare images for Panorama pipeline: ensures that images orientations are coher
values=VERBOSE_LEVEL, values=VERBOSE_LEVEL,
value="info", value="info",
exclusive=True, exclusive=True,
invalidate=False,
), ),
] ]
@ -40,6 +38,5 @@ Prepare images for Panorama pipeline: ensures that images orientations are coher
label="SfMData", label="SfMData",
description="Output SfMData file.", description="Output SfMData file.",
value=lambda attr: desc.Node.internalFolder + os.path.basename(attr.node.input.value), value=lambda attr: desc.Node.internalFolder + os.path.basename(attr.node.input.value),
invalidate=False,
), ),
] ]

View file

@ -24,14 +24,12 @@ Estimate the seams lines between the inputs to provide an optimal compositing in
label="Input SfMData", label="Input SfMData",
description="Input SfMData file.", description="Input SfMData file.",
value="", value="",
invalidate=True,
), ),
desc.File( desc.File(
name="warpingFolder", name="warpingFolder",
label="Warping Folder", label="Warping Folder",
description="Panorama warping results.", description="Panorama warping results.",
value="", value="",
invalidate=True,
), ),
desc.IntParam( desc.IntParam(
name="maxWidth", name="maxWidth",
@ -39,14 +37,12 @@ Estimate the seams lines between the inputs to provide an optimal compositing in
description="Maximal resolution for the panorama seams estimation.", description="Maximal resolution for the panorama seams estimation.",
value=5000, value=5000,
range=(0, 100000, 1), range=(0, 100000, 1),
invalidate=True,
), ),
desc.BoolParam( desc.BoolParam(
name="useGraphCut", name="useGraphCut",
label="Use Smart Seams", label="Use Smart Seams",
description="Use a graphcut algorithm to optimize seams for better transitions between images.", description="Use a graphcut algorithm to optimize seams for better transitions between images.",
value=True, value=True,
invalidate=True,
), ),
desc.ChoiceParam( desc.ChoiceParam(
name="verboseLevel", name="verboseLevel",
@ -55,7 +51,6 @@ Estimate the seams lines between the inputs to provide an optimal compositing in
values=VERBOSE_LEVEL, values=VERBOSE_LEVEL,
value="info", value="info",
exclusive=True, exclusive=True,
invalidate=False,
), ),
] ]
@ -66,13 +61,11 @@ Estimate the seams lines between the inputs to provide an optimal compositing in
description="", description="",
semantic="image", semantic="image",
value=desc.Node.internalFolder + "labels.exr", value=desc.Node.internalFolder + "labels.exr",
invalidate=False,
), ),
desc.File( desc.File(
name="outputSfm", name="outputSfm",
label="Output SfMData File", label="Output SfMData File",
description="Path to the output SfMData file.", description="Path to the output SfMData file.",
value=desc.Node.internalFolder + "panorama.sfm", value=desc.Node.internalFolder + "panorama.sfm",
invalidate=False,
), ),
] ]

View file

@ -24,14 +24,12 @@ Compute the image warping for each input image in the panorama coordinate system
label="SfMData", label="SfMData",
description="Input SfMData file.", description="Input SfMData file.",
value="", value="",
invalidate=True,
), ),
desc.BoolParam( desc.BoolParam(
name="estimateResolution", name="estimateResolution",
label="Estimate Resolution", label="Estimate Resolution",
description="Estimate output panorama resolution automatically based on the resolution of input images.", description="Estimate output panorama resolution automatically based on the resolution of input images.",
value=True, value=True,
invalidate=True,
group=None, # skip group from command line group=None, # skip group from command line
), ),
desc.IntParam( desc.IntParam(
@ -40,7 +38,6 @@ Compute the image warping for each input image in the panorama coordinate system
description="Choose the output panorama width (in pixels).", description="Choose the output panorama width (in pixels).",
value=10000, value=10000,
range=(0, 50000, 1000), range=(0, 50000, 1000),
invalidate=True,
enabled=lambda node: (not node.estimateResolution.value), enabled=lambda node: (not node.estimateResolution.value),
), ),
desc.IntParam( desc.IntParam(
@ -55,7 +52,6 @@ Compute the image warping for each input image in the panorama coordinate system
value=50, value=50,
range=(0, 100, 1), range=(0, 100, 1),
enabled=lambda node: (node.estimateResolution.value), enabled=lambda node: (node.estimateResolution.value),
invalidate=True,
), ),
desc.IntParam( desc.IntParam(
name="maxPanoramaWidth", name="maxPanoramaWidth",
@ -63,7 +59,6 @@ Compute the image warping for each input image in the panorama coordinate system
description="Choose the maximum width for the output panorama (in pixels). 0 means no limit.", description="Choose the maximum width for the output panorama (in pixels). 0 means no limit.",
value=70000, value=70000,
range=(0, 100000, 1000), range=(0, 100000, 1000),
invalidate=True,
enabled=lambda node: (node.estimateResolution.value), enabled=lambda node: (node.estimateResolution.value),
), ),
desc.ChoiceParam( desc.ChoiceParam(
@ -73,7 +68,6 @@ Compute the image warping for each input image in the panorama coordinate system
values=COLORSPACES, values=COLORSPACES,
value="Linear", value="Linear",
exclusive=True, exclusive=True,
invalidate=True,
), ),
desc.ChoiceParam( desc.ChoiceParam(
name="storageDataType", name="storageDataType",
@ -86,7 +80,6 @@ Compute the image warping for each input image in the panorama coordinate system
values=EXR_STORAGE_DATA_TYPE, values=EXR_STORAGE_DATA_TYPE,
value="float", value="float",
exclusive=True, exclusive=True,
invalidate=True,
), ),
desc.ChoiceParam( desc.ChoiceParam(
name="verboseLevel", name="verboseLevel",
@ -95,7 +88,6 @@ Compute the image warping for each input image in the panorama coordinate system
values=VERBOSE_LEVEL, values=VERBOSE_LEVEL,
value="info", value="info",
exclusive=True, exclusive=True,
invalidate=False,
), ),
] ]
@ -105,6 +97,5 @@ Compute the image warping for each input image in the panorama coordinate system
label="Folder", label="Folder",
description="Output folder.", description="Output folder.",
value=desc.Node.internalFolder, value=desc.Node.internalFolder,
invalidate=False,
), ),
] ]

View file

@ -17,7 +17,6 @@ The lighting conditions are assumed to be known.
label="SfMData", label="SfMData",
description="Input SfMData file.", description="Input SfMData file.",
value="", value="",
invalidate=True,
), ),
desc.File( desc.File(
name="pathToJSONLightFile", name="pathToJSONLightFile",
@ -25,14 +24,12 @@ The lighting conditions are assumed to be known.
description="Path to a JSON file containing the lighting information.\n" description="Path to a JSON file containing the lighting information.\n"
"If empty, .txt files are expected in the image folder.", "If empty, .txt files are expected in the image folder.",
value="defaultJSON.txt", value="defaultJSON.txt",
invalidate=True,
), ),
desc.File( desc.File(
name="maskPath", name="maskPath",
label="Mask Folder Path", label="Mask Folder Path",
description="Path to a folder containing masks or to a mask directly.", description="Path to a folder containing masks or to a mask directly.",
value="", value="",
invalidate=True,
), ),
desc.ChoiceParam( desc.ChoiceParam(
name="SHOrder", name="SHOrder",
@ -45,7 +42,6 @@ The lighting conditions are assumed to be known.
value="0", value="0",
exclusive=True, exclusive=True,
advanced=True, advanced=True,
invalidate=True,
), ),
desc.BoolParam( desc.BoolParam(
name="removeAmbient", name="removeAmbient",
@ -53,7 +49,6 @@ The lighting conditions are assumed to be known.
description="True if the ambient light is to be removed on the PS images, false otherwise.", description="True if the ambient light is to be removed on the PS images, false otherwise.",
value=False, value=False,
advanced=True, advanced=True,
invalidate=True,
), ),
desc.BoolParam( desc.BoolParam(
name="isRobust", name="isRobust",
@ -61,7 +56,6 @@ The lighting conditions are assumed to be known.
description="True to use the robust algorithm, false otherwise.", description="True to use the robust algorithm, false otherwise.",
value=False, value=False,
advanced=True, advanced=True,
invalidate=True,
), ),
desc.IntParam( desc.IntParam(
name="downscale", name="downscale",
@ -70,7 +64,6 @@ The lighting conditions are assumed to be known.
value=1, value=1,
range=(1, 10, 1), range=(1, 10, 1),
advanced=True, advanced=True,
invalidate=True,
), ),
desc.ChoiceParam( desc.ChoiceParam(
name="verboseLevel", name="verboseLevel",
@ -79,7 +72,6 @@ The lighting conditions are assumed to be known.
values=VERBOSE_LEVEL, values=VERBOSE_LEVEL,
value="info", value="info",
exclusive=True, exclusive=True,
invalidate=False,
), ),
] ]
@ -89,14 +81,12 @@ The lighting conditions are assumed to be known.
label="Output Folder", label="Output Folder",
description="Path to the output folder.", description="Path to the output folder.",
value=desc.Node.internalFolder, value=desc.Node.internalFolder,
invalidate=False,
), ),
desc.File( desc.File(
name="outputSfmDataAlbedo", name="outputSfmDataAlbedo",
label="SfMData Albedo", label="SfMData Albedo",
description="Output SfMData file containing the albedo information.", description="Output SfMData file containing the albedo information.",
value=desc.Node.internalFolder + "/albedoMaps.sfm", value=desc.Node.internalFolder + "/albedoMaps.sfm",
invalidate=False,
group="", # remove from command line group="", # remove from command line
), ),
desc.File( desc.File(
@ -104,7 +94,6 @@ The lighting conditions are assumed to be known.
label="SfMData Normal", label="SfMData Normal",
description="Output SfMData file containing the normal maps information.", description="Output SfMData file containing the normal maps information.",
value=desc.Node.internalFolder + "/normalMaps.sfm", value=desc.Node.internalFolder + "/normalMaps.sfm",
invalidate=False,
group="", # remove from command line group="", # remove from command line
), ),
desc.File( desc.File(
@ -112,7 +101,6 @@ The lighting conditions are assumed to be known.
label="SfMData Normal PNG", label="SfMData Normal PNG",
description="Output SfMData file containing the normal maps information.", description="Output SfMData file containing the normal maps information.",
value=desc.Node.internalFolder + "/normalMapsPNG.sfm", value=desc.Node.internalFolder + "/normalMapsPNG.sfm",
invalidate=False,
group="", # remove from command line group="", # remove from command line
), ),
# these attributes are only here to describe more accurately the output of the node # these attributes are only here to describe more accurately the output of the node
@ -124,7 +112,6 @@ The lighting conditions are assumed to be known.
description="Generated normal maps in the camera coordinate system.", description="Generated normal maps in the camera coordinate system.",
semantic="image", semantic="image",
value=desc.Node.internalFolder + "<POSE_ID>_normals.exr", value=desc.Node.internalFolder + "<POSE_ID>_normals.exr",
invalidate=False,
group="", # do not export on the command line group="", # do not export on the command line
), ),
desc.File( desc.File(
@ -133,7 +120,6 @@ The lighting conditions are assumed to be known.
description="Generated normal maps in the camera coordinate system (in false colors).", description="Generated normal maps in the camera coordinate system (in false colors).",
semantic="image", semantic="image",
value=desc.Node.internalFolder + "<POSE_ID>_normals.png", value=desc.Node.internalFolder + "<POSE_ID>_normals.png",
invalidate=False,
group="", # do not export on the command line group="", # do not export on the command line
), ),
desc.File( desc.File(
@ -142,7 +128,6 @@ The lighting conditions are assumed to be known.
description="Generated normal maps in the world coordinate system.", description="Generated normal maps in the world coordinate system.",
semantic="image", semantic="image",
value=desc.Node.internalFolder + "<POSE_ID>_normals_w.exr", value=desc.Node.internalFolder + "<POSE_ID>_normals_w.exr",
invalidate=False,
group="", # do not export on the command line group="", # do not export on the command line
), ),
@ -152,7 +137,6 @@ The lighting conditions are assumed to be known.
description="Generated albedo maps.", description="Generated albedo maps.",
semantic="image", semantic="image",
value=desc.Node.internalFolder + "<POSE_ID>_albedo.png", value=desc.Node.internalFolder + "<POSE_ID>_albedo.png",
invalidate=False,
group="", # do not export on the command line group="", # do not export on the command line
), ),
] ]

View file

@ -21,7 +21,6 @@ This node export undistorted images so the depth map and texturing can be comput
label="SfMData", label="SfMData",
description="Input SfMData file.", description="Input SfMData file.",
value="", value="",
invalidate=True,
), ),
desc.ListAttribute( desc.ListAttribute(
elementDesc=desc.File( elementDesc=desc.File(
@ -29,7 +28,6 @@ This node export undistorted images so the depth map and texturing can be comput
label="Images Folder", label="Images Folder",
description="", description="",
value="", value="",
invalidate=True,
), ),
name="imagesFolders", name="imagesFolders",
label="Images Folders", label="Images Folders",
@ -41,7 +39,6 @@ This node export undistorted images so the depth map and texturing can be comput
label="Masks Folder", label="Masks Folder",
description="", description="",
value="", value="",
invalidate=True,
), ),
name="masksFolders", name="masksFolders",
label="Masks Folders", label="Masks Folders",
@ -54,7 +51,6 @@ This node export undistorted images so the depth map and texturing can be comput
value="png", value="png",
values=["exr", "jpg", "png"], values=["exr", "jpg", "png"],
exclusive=True, exclusive=True,
invalidate=True,
), ),
desc.ChoiceParam( desc.ChoiceParam(
name="outputFileType", name="outputFileType",
@ -63,7 +59,6 @@ This node export undistorted images so the depth map and texturing can be comput
value="exr", value="exr",
values=["jpg", "png", "tif", "exr"], values=["jpg", "png", "tif", "exr"],
exclusive=True, exclusive=True,
invalidate=True,
advanced=True, advanced=True,
), ),
desc.BoolParam( desc.BoolParam(
@ -71,7 +66,6 @@ This node export undistorted images so the depth map and texturing can be comput
label="Save Metadata", label="Save Metadata",
description="Save projections and intrinsics information in images metadata (only for .exr images).", description="Save projections and intrinsics information in images metadata (only for .exr images).",
value=True, value=True,
invalidate=True,
advanced=True, advanced=True,
), ),
desc.BoolParam( desc.BoolParam(
@ -79,7 +73,6 @@ This node export undistorted images so the depth map and texturing can be comput
label="Save Matrices Text Files", label="Save Matrices Text Files",
description="Save projections and intrinsics information in text files.", description="Save projections and intrinsics information in text files.",
value=False, value=False,
invalidate=True,
advanced=True, advanced=True,
), ),
desc.BoolParam( desc.BoolParam(
@ -87,7 +80,6 @@ This node export undistorted images so the depth map and texturing can be comput
label="Correct Images Exposure", label="Correct Images Exposure",
description="Apply a correction on images' exposure value.", description="Apply a correction on images' exposure value.",
value=False, value=False,
invalidate=True,
advanced=True, advanced=True,
), ),
desc.ChoiceParam( desc.ChoiceParam(
@ -97,7 +89,6 @@ This node export undistorted images so the depth map and texturing can be comput
values=VERBOSE_LEVEL, values=VERBOSE_LEVEL,
value="info", value="info",
exclusive=True, exclusive=True,
invalidate=False,
), ),
] ]
@ -107,7 +98,6 @@ This node export undistorted images so the depth map and texturing can be comput
label="Images Folder", label="Images Folder",
description="Output folder.", description="Output folder.",
value=desc.Node.internalFolder, value=desc.Node.internalFolder,
invalidate=False,
), ),
desc.File( desc.File(
name="undistorted", name="undistorted",
@ -115,7 +105,6 @@ This node export undistorted images so the depth map and texturing can be comput
description="List of undistorted images.", description="List of undistorted images.",
semantic="image", semantic="image",
value=desc.Node.internalFolder + "<VIEW_ID>.{outputFileTypeValue}", value=desc.Node.internalFolder + "<VIEW_ID>.{outputFileTypeValue}",
invalidate=False,
group="", group="",
advanced=True, advanced=True,
), ),

View file

@ -24,7 +24,6 @@ This node allows to copy files into a specific folder.
label="Input", label="Input",
description="File or folder to publish.", description="File or folder to publish.",
value="", value="",
invalidate=True,
), ),
name="inputFiles", name="inputFiles",
label="Input Files", label="Input Files",
@ -36,7 +35,6 @@ This node allows to copy files into a specific folder.
label="Output Folder", label="Output Folder",
description="Folder to publish to.", description="Folder to publish to.",
value="", value="",
invalidate=True,
), ),
desc.ChoiceParam( desc.ChoiceParam(
name="verboseLevel", name="verboseLevel",
@ -45,7 +43,6 @@ This node allows to copy files into a specific folder.
values=VERBOSE_LEVEL, values=VERBOSE_LEVEL,
value="info", value="info",
exclusive=True, exclusive=True,
invalidate=False,
), ),
] ]

View file

@ -21,21 +21,18 @@ Estimate relative pose between each pair of views that share tracks.
label="SfMData", label="SfMData",
description="SfMData file.", description="SfMData file.",
value="", value="",
invalidate=True,
), ),
desc.File( desc.File(
name="tracksFilename", name="tracksFilename",
label="Tracks File", label="Tracks File",
description="Tracks file.", description="Tracks file.",
value="", value="",
invalidate=True,
), ),
desc.BoolParam( desc.BoolParam(
name="enforcePureRotation", name="enforcePureRotation",
label="Enforce pure rotation", label="Enforce pure rotation",
description="Enforce pure rotation as a model", description="Enforce pure rotation as a model",
value=False, value=False,
invalidate=True,
), ),
desc.ChoiceParam( desc.ChoiceParam(
name="verboseLevel", name="verboseLevel",
@ -44,7 +41,6 @@ Estimate relative pose between each pair of views that share tracks.
values=VERBOSE_LEVEL, values=VERBOSE_LEVEL,
value="info", value="info",
exclusive=True, exclusive=True,
invalidate=False,
), ),
] ]
@ -54,6 +50,5 @@ Estimate relative pose between each pair of views that share tracks.
label="Pairs Info", label="Pairs Info",
description="Path to the output Pairs info files directory.", description="Path to the output Pairs info files directory.",
value=desc.Node.internalFolder, value=desc.Node.internalFolder,
invalidate=False,
), ),
] ]

View file

@ -21,7 +21,6 @@ Select Connected Views based on SfM landmarks.
label="SfMData", label="SfMData",
description="Input SfMData file.", description="Input SfMData file.",
value="", value="",
invalidate=True,
), ),
desc.IntParam( desc.IntParam(
name="maxTCams", name="maxTCams",
@ -29,7 +28,6 @@ Select Connected Views based on SfM landmarks.
description="Maximum number of neighbour cameras per image.", description="Maximum number of neighbour cameras per image.",
value=10, value=10,
range=(1, 20, 1), range=(1, 20, 1),
invalidate=True,
), ),
desc.FloatParam( desc.FloatParam(
name="minViewAngle", name="minViewAngle",
@ -37,7 +35,6 @@ Select Connected Views based on SfM landmarks.
description="Minimum angle between two views (select the neighbouring cameras, select depth planes from epipolar segment point).", description="Minimum angle between two views (select the neighbouring cameras, select depth planes from epipolar segment point).",
value=2.0, value=2.0,
range=(0.0, 10.0, 0.1), range=(0.0, 10.0, 0.1),
invalidate=True,
advanced=True, advanced=True,
), ),
desc.FloatParam( desc.FloatParam(
@ -46,7 +43,6 @@ Select Connected Views based on SfM landmarks.
description="Maximum angle between two views (select the neighbouring cameras, select depth planes from epipolar segment point).", description="Maximum angle between two views (select the neighbouring cameras, select depth planes from epipolar segment point).",
value=70.0, value=70.0,
range=(10.0, 120.0, 1.0), range=(10.0, 120.0, 1.0),
invalidate=True,
advanced=True, advanced=True,
), ),
desc.ChoiceParam( desc.ChoiceParam(
@ -56,7 +52,6 @@ Select Connected Views based on SfM landmarks.
values=VERBOSE_LEVEL, values=VERBOSE_LEVEL,
value="info", value="info",
exclusive=True, exclusive=True,
invalidate=False,
), ),
] ]
@ -66,6 +61,5 @@ Select Connected Views based on SfM landmarks.
label="Connected Views", label="Connected Views",
description="List of connected views in a text file.", description="List of connected views in a text file.",
value=desc.Node.internalFolder + "connectedViews.txt", value=desc.Node.internalFolder + "connectedViews.txt",
invalidate=False,
), ),
] ]

View file

@ -29,14 +29,12 @@ The alignment can be based on:
label="Input", label="Input",
description="Input SfMData file .", description="Input SfMData file .",
value="", value="",
invalidate=True,
), ),
desc.File( desc.File(
name="reference", name="reference",
label="Reference", label="Reference",
description="Path to the scene used as the reference coordinate system.", description="Path to the scene used as the reference coordinate system.",
value="", value="",
invalidate=True,
), ),
desc.ChoiceParam( desc.ChoiceParam(
name="method", name="method",
@ -51,7 +49,6 @@ The alignment can be based on:
value="from_cameras_viewid", value="from_cameras_viewid",
values=["from_cameras_viewid", "from_cameras_poseid", "from_cameras_filepath", "from_cameras_metadata", "from_markers", 'from_landmarks'], values=["from_cameras_viewid", "from_cameras_poseid", "from_cameras_filepath", "from_cameras_metadata", "from_markers", 'from_landmarks'],
exclusive=True, exclusive=True,
invalidate=True,
), ),
desc.StringParam( desc.StringParam(
name="fileMatchingPattern", name="fileMatchingPattern",
@ -66,7 +63,6 @@ The alignment can be based on:
" - Match the filename prefix before '_': " " - Match the filename prefix before '_': "
r'".*\/(.*?)_.*\.\w{3}"', r'".*\/(.*?)_.*\.\w{3}"',
value=r".*\/(.*?)\.\w{3}", value=r".*\/(.*?)\.\w{3}",
invalidate=True,
), ),
desc.ListAttribute( desc.ListAttribute(
elementDesc=desc.File( elementDesc=desc.File(
@ -74,7 +70,6 @@ The alignment can be based on:
label="Metadata", label="Metadata",
description="", description="",
value="Metadata that should match to create the correspondences.", value="Metadata that should match to create the correspondences.",
invalidate=True,
), ),
name="metadataMatchingList", name="metadataMatchingList",
label="Metadata Matching List", label="Metadata Matching List",
@ -86,21 +81,18 @@ The alignment can be based on:
label="Scale", label="Scale",
description="Apply scale transformation.", description="Apply scale transformation.",
value=True, value=True,
invalidate=True,
), ),
desc.BoolParam( desc.BoolParam(
name="applyRotation", name="applyRotation",
label="Rotation", label="Rotation",
description="Apply rotation transformation.", description="Apply rotation transformation.",
value=True, value=True,
invalidate=True,
), ),
desc.BoolParam( desc.BoolParam(
name="applyTranslation", name="applyTranslation",
label="Translation", label="Translation",
description="Apply translation transformation.", description="Apply translation transformation.",
value=True, value=True,
invalidate=True,
), ),
desc.ChoiceParam( desc.ChoiceParam(
name="verboseLevel", name="verboseLevel",
@ -109,7 +101,6 @@ The alignment can be based on:
values=VERBOSE_LEVEL, values=VERBOSE_LEVEL,
value="info", value="info",
exclusive=True, exclusive=True,
invalidate=False,
), ),
] ]
@ -119,13 +110,11 @@ The alignment can be based on:
label="SfMData File", label="SfMData File",
description="Output SfMData file.", description="Output SfMData file.",
value=lambda attr: desc.Node.internalFolder + (os.path.splitext(os.path.basename(attr.node.input.value))[0] or "sfmData") + ".abc", value=lambda attr: desc.Node.internalFolder + (os.path.splitext(os.path.basename(attr.node.input.value))[0] or "sfmData") + ".abc",
invalidate=False,
), ),
desc.File( desc.File(
name="outputViewsAndPoses", name="outputViewsAndPoses",
label="Poses", label="Poses",
description="Path to the output SfMData file with cameras (views and poses).", description="Path to the output SfMData file with cameras (views and poses).",
value=desc.Node.internalFolder + "cameras.sfm", value=desc.Node.internalFolder + "cameras.sfm",
invalidate=False,
), ),
] ]

View file

@ -17,7 +17,6 @@ class SfMDistances(desc.AVCommandLineNode):
label="Input", label="Input",
description="SfMData file.", description="SfMData file.",
value="", value="",
invalidate=True,
), ),
desc.ChoiceParam( desc.ChoiceParam(
name="objectType", name="objectType",
@ -26,7 +25,6 @@ class SfMDistances(desc.AVCommandLineNode):
value="landmarks", value="landmarks",
values=["landmarks", "cameras"], values=["landmarks", "cameras"],
exclusive=True, exclusive=True,
invalidate=True,
), ),
desc.ChoiceParam( desc.ChoiceParam(
name="landmarksDescriberTypes", name="landmarksDescriberTypes",
@ -35,7 +33,6 @@ class SfMDistances(desc.AVCommandLineNode):
values=DESCRIBER_TYPES, values=DESCRIBER_TYPES,
value=["cctag3"], value=["cctag3"],
exclusive=False, exclusive=False,
invalidate=True,
joinChar=",", joinChar=",",
), ),
desc.StringParam( desc.StringParam(
@ -45,7 +42,6 @@ class SfMDistances(desc.AVCommandLineNode):
"This value should be an ID or a list of IDs of landmarks IDs or cameras (UID or filename without extension).\n" "This value should be an ID or a list of IDs of landmarks IDs or cameras (UID or filename without extension).\n"
"It will list all elements if empty.", "It will list all elements if empty.",
value="", value="",
invalidate=True,
), ),
desc.StringParam( desc.StringParam(
name="B", name="B",
@ -54,7 +50,6 @@ class SfMDistances(desc.AVCommandLineNode):
"This value should be an ID or a list of IDs of landmarks IDs or cameras (UID or filename without extension).\n" "This value should be an ID or a list of IDs of landmarks IDs or cameras (UID or filename without extension).\n"
"It will list all elements if empty.", "It will list all elements if empty.",
value="", value="",
invalidate=True,
), ),
desc.ChoiceParam( desc.ChoiceParam(
name="verboseLevel", name="verboseLevel",
@ -63,7 +58,6 @@ class SfMDistances(desc.AVCommandLineNode):
values=VERBOSE_LEVEL, values=VERBOSE_LEVEL,
value="info", value="info",
exclusive=True, exclusive=True,
invalidate=False,
), ),
] ]

View file

@ -46,14 +46,12 @@ Merges two SfMData files into a single one. Fails if some UID is shared among th
label="First SfMData", label="First SfMData",
description="First input SfMData file to merge.", description="First input SfMData file to merge.",
value="", value="",
invalidate=True,
), ),
desc.File( desc.File(
name="secondinput", name="secondinput",
label="Second SfMData", label="Second SfMData",
description="Second input SfMData file to merge.", description="Second input SfMData file to merge.",
value="", value="",
invalidate=True,
), ),
desc.ChoiceParam( desc.ChoiceParam(
name="method", name="method",
@ -64,7 +62,6 @@ Merges two SfMData files into a single one. Fails if some UID is shared among th
value="simple_copy", value="simple_copy",
values=["simple_copy", 'from_landmarks'], values=["simple_copy", 'from_landmarks'],
exclusive=True, exclusive=True,
invalidate=True,
), ),
desc.ListAttribute( desc.ListAttribute(
elementDesc=desc.File( elementDesc=desc.File(
@ -72,7 +69,6 @@ Merges two SfMData files into a single one. Fails if some UID is shared among th
label="Matches Folder", label="Matches Folder",
description="", description="",
value="", value="",
invalidate=True,
), ),
name="matchesFolders", name="matchesFolders",
label="Matches Folders", label="Matches Folders",
@ -85,7 +81,6 @@ Merges two SfMData files into a single one. Fails if some UID is shared among th
values=DESCRIBER_TYPES, values=DESCRIBER_TYPES,
value=["dspsift"], value=["dspsift"],
exclusive=False, exclusive=False,
invalidate=True,
joinChar=",", joinChar=",",
), ),
desc.ChoiceParam( desc.ChoiceParam(
@ -95,7 +90,6 @@ Merges two SfMData files into a single one. Fails if some UID is shared among th
values=VERBOSE_LEVEL, values=VERBOSE_LEVEL,
value="info", value="info",
exclusive=True, exclusive=True,
invalidate=False,
), ),
] ]
@ -105,6 +99,5 @@ Merges two SfMData files into a single one. Fails if some UID is shared among th
label="SfMData", label="SfMData",
description="Path to the output SfM file (in SfMData format).", description="Path to the output SfM file (in SfMData format).",
value=lambda attr: desc.Node.internalFolder + "sfmData.sfm", value=lambda attr: desc.Node.internalFolder + "sfmData.sfm",
invalidate=False,
), ),
] ]

View file

@ -21,7 +21,6 @@ class SfMSplitReconstructed(desc.AVCommandLineNode):
label="Input SfMData", label="Input SfMData",
description="Input SfMData file.", description="Input SfMData file.",
value="", value="",
invalidate=True,
), ),
desc.ChoiceParam( desc.ChoiceParam(
name="verboseLevel", name="verboseLevel",
@ -30,7 +29,6 @@ class SfMSplitReconstructed(desc.AVCommandLineNode):
values=VERBOSE_LEVEL, values=VERBOSE_LEVEL,
value="info", value="info",
exclusive=True, exclusive=True,
invalidate=False,
), ),
] ]
@ -40,13 +38,11 @@ class SfMSplitReconstructed(desc.AVCommandLineNode):
label="Reconstructed SfMData File", label="Reconstructed SfMData File",
description="SfMData file containing the reconstructed cameras.", description="SfMData file containing the reconstructed cameras.",
value=desc.Node.internalFolder + "sfmReconstructed.abc", value=desc.Node.internalFolder + "sfmReconstructed.abc",
invalidate=False,
), ),
desc.File( desc.File(
name="notReconstructedOutput", name="notReconstructedOutput",
label="Not Reconstructed SfMData File", label="Not Reconstructed SfMData File",
description="SfMData file containing the non-reconstructed cameras.", description="SfMData file containing the non-reconstructed cameras.",
value=desc.Node.internalFolder + "sfmNonReconstructed.abc", value=desc.Node.internalFolder + "sfmNonReconstructed.abc",
invalidate=False,
), ),
] ]

View file

@ -20,7 +20,6 @@ Assumes the input SfMData describes a set of cameras capturing a scene at a comm
label="SfMData", label="SfMData",
description="Input SfMData file.", description="Input SfMData file.",
value="", value="",
invalidate=True,
), ),
desc.ChoiceParam( desc.ChoiceParam(
name="verboseLevel", name="verboseLevel",
@ -29,7 +28,6 @@ Assumes the input SfMData describes a set of cameras capturing a scene at a comm
values=VERBOSE_LEVEL, values=VERBOSE_LEVEL,
value="info", value="info",
exclusive=True, exclusive=True,
invalidate=False,
), ),
] ]
@ -39,6 +37,5 @@ Assumes the input SfMData describes a set of cameras capturing a scene at a comm
label="SfMData", label="SfMData",
description="Path to the output SfM file (in SfMData format).", description="Path to the output SfM file (in SfMData format).",
value=lambda attr: desc.Node.internalFolder + "sfmData.sfm", value=lambda attr: desc.Node.internalFolder + "sfmData.sfm",
invalidate=False,
), ),
] ]

View file

@ -21,14 +21,12 @@ This node allows to transfer poses and/or intrinsics form one SfM scene onto ano
label="Input", label="Input",
description="SfMData file.", description="SfMData file.",
value="", value="",
invalidate=True,
), ),
desc.File( desc.File(
name="reference", name="reference",
label="Reference", label="Reference",
description="Path to the scene used as the reference to retrieve resolved poses and intrinsics.", description="Path to the scene used as the reference to retrieve resolved poses and intrinsics.",
value="", value="",
invalidate=True,
), ),
desc.ChoiceParam( desc.ChoiceParam(
name="method", name="method",
@ -41,7 +39,6 @@ This node allows to transfer poses and/or intrinsics form one SfM scene onto ano
value="from_viewid", value="from_viewid",
values=["from_viewid", "from_filepath", "from_metadata", "from_intrinsicid"], values=["from_viewid", "from_filepath", "from_metadata", "from_intrinsicid"],
exclusive=True, exclusive=True,
invalidate=True,
), ),
desc.StringParam( desc.StringParam(
name="fileMatchingPattern", name="fileMatchingPattern",
@ -56,7 +53,6 @@ This node allows to transfer poses and/or intrinsics form one SfM scene onto ano
" - Match the filename prefix before \"_\": " " - Match the filename prefix before \"_\": "
r'".*\/(.*?)_.*\.\w{3}"', r'".*\/(.*?)_.*\.\w{3}"',
value=r'.*\/(.*?)\.\w{3}', value=r'.*\/(.*?)\.\w{3}',
invalidate=True,
), ),
desc.ListAttribute( desc.ListAttribute(
elementDesc=desc.File( elementDesc=desc.File(
@ -64,7 +60,6 @@ This node allows to transfer poses and/or intrinsics form one SfM scene onto ano
label="Metadata", label="Metadata",
description="Metadata that should match to create correspondences.", description="Metadata that should match to create correspondences.",
value="", value="",
invalidate=True,
), ),
name="metadataMatchingList", name="metadataMatchingList",
label="Metadata Matching List", label="Metadata Matching List",
@ -77,21 +72,18 @@ This node allows to transfer poses and/or intrinsics form one SfM scene onto ano
label="Poses", label="Poses",
description="Transfer poses.", description="Transfer poses.",
value=True, value=True,
invalidate=True,
), ),
desc.BoolParam( desc.BoolParam(
name="transferIntrinsics", name="transferIntrinsics",
label="Intrinsics", label="Intrinsics",
description="Transfer cameras intrinsics.", description="Transfer cameras intrinsics.",
value=True, value=True,
invalidate=True,
), ),
desc.BoolParam( desc.BoolParam(
name="transferLandmarks", name="transferLandmarks",
label="Landmarks", label="Landmarks",
description="Transfer landmarks.", description="Transfer landmarks.",
value=True, value=True,
invalidate=True,
), ),
desc.ChoiceParam( desc.ChoiceParam(
name="verboseLevel", name="verboseLevel",
@ -100,7 +92,6 @@ This node allows to transfer poses and/or intrinsics form one SfM scene onto ano
values=VERBOSE_LEVEL, values=VERBOSE_LEVEL,
value="info", value="info",
exclusive=True, exclusive=True,
invalidate=False,
), ),
] ]
@ -110,13 +101,11 @@ This node allows to transfer poses and/or intrinsics form one SfM scene onto ano
label="SfMData", label="SfMData",
description="Path to the output SfM point cloud file (in SfMData format).", description="Path to the output SfM point cloud file (in SfMData format).",
value=lambda attr: desc.Node.internalFolder + (os.path.splitext(os.path.basename(attr.node.input.value))[0] or "sfmData") + ".abc", value=lambda attr: desc.Node.internalFolder + (os.path.splitext(os.path.basename(attr.node.input.value))[0] or "sfmData") + ".abc",
invalidate=False,
), ),
desc.File( desc.File(
name="outputViewsAndPoses", name="outputViewsAndPoses",
label="Poses", label="Poses",
description="Path to the output SfMData file with cameras (views and poses).", description="Path to the output SfMData file with cameras (views and poses).",
value=desc.Node.internalFolder + "cameras.sfm", value=desc.Node.internalFolder + "cameras.sfm",
invalidate=False,
), ),
] ]

View file

@ -31,7 +31,6 @@ The transformation can be based on:
label="Input", label="Input",
description="SfMData file.", description="SfMData file.",
value="", value="",
invalidate=True,
), ),
desc.ChoiceParam( desc.ChoiceParam(
name="method", name="method",
@ -52,14 +51,12 @@ The transformation can be based on:
value="auto", value="auto",
values=["transformation", "manual", "auto", "auto_from_cameras", "auto_from_cameras_x_axis", "auto_from_landmarks", "from_single_camera", "from_center_camera", "from_markers", "from_gps", "from_lineup", "align_ground"], values=["transformation", "manual", "auto", "auto_from_cameras", "auto_from_cameras_x_axis", "auto_from_landmarks", "from_single_camera", "from_center_camera", "from_markers", "from_gps", "from_lineup", "align_ground"],
exclusive=True, exclusive=True,
invalidate=True,
), ),
desc.File( desc.File(
name="lineUp", name="lineUp",
label="Line Up File", label="Line Up File",
description="LineUp Json file.", description="LineUp Json file.",
value="", value="",
invalidate=True,
enabled=lambda node: node.method.value == "from_lineup" enabled=lambda node: node.method.value == "from_lineup"
), ),
desc.File( desc.File(
@ -67,7 +64,6 @@ The transformation can be based on:
label="Tracks File", label="Tracks File",
description="Tracks file for lineup.", description="Tracks file for lineup.",
value="", value="",
invalidate=True,
enabled=lambda node: node.method.value == "from_lineup" enabled=lambda node: node.method.value == "from_lineup"
), ),
desc.File( desc.File(
@ -75,7 +71,6 @@ The transformation can be based on:
label="Mesh File", label="Mesh File",
description="Mesh file for lineup.", description="Mesh file for lineup.",
value="", value="",
invalidate=True,
enabled=lambda node: node.method.value == "from_lineup" enabled=lambda node: node.method.value == "from_lineup"
), ),
desc.StringParam( desc.StringParam(
@ -85,7 +80,6 @@ The transformation can be based on:
" - transformation: Align [X,Y,Z] to +Y-axis, rotate around Y by R deg, scale by S; syntax: X,Y,Z;R;S\n" " - transformation: Align [X,Y,Z] to +Y-axis, rotate around Y by R deg, scale by S; syntax: X,Y,Z;R;S\n"
" - from_single_camera: Camera UID or simplified regular expression to match image filepath (like '*camera2*.jpg').", " - from_single_camera: Camera UID or simplified regular expression to match image filepath (like '*camera2*.jpg').",
value="", value="",
invalidate=True,
enabled=lambda node: node.method.value == "transformation" or node.method.value == "from_single_camera" or node.method.value == "auto_from_cameras_x_axis", enabled=lambda node: node.method.value == "transformation" or node.method.value == "from_single_camera" or node.method.value == "auto_from_cameras_x_axis",
), ),
desc.GroupAttribute( desc.GroupAttribute(
@ -103,7 +97,6 @@ The transformation can be based on:
label="x", label="x",
description="X offset.", description="X offset.",
value=0.0, value=0.0,
invalidate=True,
range=(-20.0, 20.0, 0.01), range=(-20.0, 20.0, 0.01),
), ),
desc.FloatParam( desc.FloatParam(
@ -111,7 +104,6 @@ The transformation can be based on:
label="y", label="y",
description="Y offset.", description="Y offset.",
value=0.0, value=0.0,
invalidate=True,
range=(-20.0, 20.0, 0.01), range=(-20.0, 20.0, 0.01),
), ),
desc.FloatParam( desc.FloatParam(
@ -119,7 +111,6 @@ The transformation can be based on:
label="z", label="z",
description="Z offset.", description="Z offset.",
value=0.0, value=0.0,
invalidate=True,
range=(-20.0, 20.0, 0.01), range=(-20.0, 20.0, 0.01),
), ),
], ],
@ -135,7 +126,6 @@ The transformation can be based on:
label="x", label="x",
description="Euler X rotation.", description="Euler X rotation.",
value=0.0, value=0.0,
invalidate=True,
range=(-90.0, 90.0, 1.0), range=(-90.0, 90.0, 1.0),
), ),
desc.FloatParam( desc.FloatParam(
@ -143,7 +133,6 @@ The transformation can be based on:
label="y", label="y",
description="Euler Y rotation.", description="Euler Y rotation.",
value=0.0, value=0.0,
invalidate=True,
range=(-180.0, 180.0, 1.0), range=(-180.0, 180.0, 1.0),
), ),
desc.FloatParam( desc.FloatParam(
@ -151,7 +140,6 @@ The transformation can be based on:
label="z", label="z",
description="Euler Z rotation.", description="Euler Z rotation.",
value=0.0, value=0.0,
invalidate=True,
range=(-180.0, 180.0, 1.0), range=(-180.0, 180.0, 1.0),
), ),
], ],
@ -162,7 +150,6 @@ The transformation can be based on:
label="Scale", label="Scale",
description="Uniform scale.", description="Uniform scale.",
value=1.0, value=1.0,
invalidate=True,
range=(0.0, 20.0, 0.01), range=(0.0, 20.0, 0.01),
), ),
], ],
@ -176,7 +163,6 @@ The transformation can be based on:
values=DESCRIBER_TYPES, values=DESCRIBER_TYPES,
value=["sift", "dspsift", "akaze"], value=["sift", "dspsift", "akaze"],
exclusive=False, exclusive=False,
invalidate=True,
joinChar=",", joinChar=",",
), ),
desc.FloatParam( desc.FloatParam(
@ -185,7 +171,6 @@ The transformation can be based on:
description="Additional scale to apply.", description="Additional scale to apply.",
value=1.0, value=1.0,
range=(0.0, 100.0, 0.1), range=(0.0, 100.0, 0.1),
invalidate=True,
), ),
desc.ListAttribute( desc.ListAttribute(
name="markers", name="markers",
@ -200,7 +185,6 @@ The transformation can be based on:
label="Marker", label="Marker",
description="Marker ID.", description="Marker ID.",
value=0, value=0,
invalidate=True,
range=(0, 32, 1), range=(0, 32, 1),
), ),
desc.GroupAttribute( desc.GroupAttribute(
@ -214,7 +198,6 @@ The transformation can be based on:
label="x", label="x",
description="X coordinates for the marker.", description="X coordinates for the marker.",
value=0.0, value=0.0,
invalidate=True,
range=(-2.0, 2.0, 1.0), range=(-2.0, 2.0, 1.0),
), ),
desc.FloatParam( desc.FloatParam(
@ -222,7 +205,6 @@ The transformation can be based on:
label="y", label="y",
description="Y coordinates for the marker.", description="Y coordinates for the marker.",
value=0.0, value=0.0,
invalidate=True,
range=(-2.0, 2.0, 1.0), range=(-2.0, 2.0, 1.0),
), ),
desc.FloatParam( desc.FloatParam(
@ -230,7 +212,6 @@ The transformation can be based on:
label="z", label="z",
description="Z coordinates for the marker.", description="Z coordinates for the marker.",
value=0.0, value=0.0,
invalidate=True,
range=(-2.0, 2.0, 1.0), range=(-2.0, 2.0, 1.0),
), ),
], ],
@ -245,7 +226,6 @@ The transformation can be based on:
label="Scale", label="Scale",
description="Apply scale transformation.", description="Apply scale transformation.",
value=True, value=True,
invalidate=True,
enabled=lambda node: node.method.value != "manual", enabled=lambda node: node.method.value != "manual",
), ),
desc.BoolParam( desc.BoolParam(
@ -253,7 +233,6 @@ The transformation can be based on:
label="Rotation", label="Rotation",
description="Apply rotation transformation.", description="Apply rotation transformation.",
value=True, value=True,
invalidate=True,
enabled=lambda node: node.method.value != "manual", enabled=lambda node: node.method.value != "manual",
), ),
desc.BoolParam( desc.BoolParam(
@ -261,7 +240,6 @@ The transformation can be based on:
label="Translation", label="Translation",
description="Apply translation transformation.", description="Apply translation transformation.",
value=True, value=True,
invalidate=True,
enabled=lambda node: node.method.value != "manual", enabled=lambda node: node.method.value != "manual",
), ),
desc.ChoiceParam( desc.ChoiceParam(
@ -271,7 +249,6 @@ The transformation can be based on:
values=VERBOSE_LEVEL, values=VERBOSE_LEVEL,
value="info", value="info",
exclusive=True, exclusive=True,
invalidate=False,
), ),
] ]
@ -281,13 +258,11 @@ The transformation can be based on:
label="SfMData File", label="SfMData File",
description="Aligned SfMData file.", description="Aligned SfMData file.",
value=lambda attr: desc.Node.internalFolder + (os.path.splitext(os.path.basename(attr.node.input.value))[0] or "sfmData") + ".abc", value=lambda attr: desc.Node.internalFolder + (os.path.splitext(os.path.basename(attr.node.input.value))[0] or "sfmData") + ".abc",
invalidate=False,
), ),
desc.File( desc.File(
name="outputViewsAndPoses", name="outputViewsAndPoses",
label="Poses", label="Poses",
description="Path to the output SfMData file with cameras (views and poses).", description="Path to the output SfMData file with cameras (views and poses).",
value=desc.Node.internalFolder + "cameras.sfm", value=desc.Node.internalFolder + "cameras.sfm",
invalidate=False,
), ),
] ]

View file

@ -20,7 +20,6 @@ Contrary to the StructureFromMotion node, this node does not infer the camera po
label="SfMData", label="SfMData",
description="SfMData file. Must contain the camera calibration.", description="SfMData file. Must contain the camera calibration.",
value="", value="",
invalidate=True,
), ),
desc.ListAttribute( desc.ListAttribute(
elementDesc=desc.File( elementDesc=desc.File(
@ -28,7 +27,6 @@ Contrary to the StructureFromMotion node, this node does not infer the camera po
label="Features Folder", label="Features Folder",
description="Folder containing some extracted features and descriptors.", description="Folder containing some extracted features and descriptors.",
value="", value="",
invalidate=True,
), ),
name="featuresFolders", name="featuresFolders",
label="Features Folders", label="Features Folders",
@ -40,7 +38,6 @@ Contrary to the StructureFromMotion node, this node does not infer the camera po
label="Matches Folder", label="Matches Folder",
description="Folder in which some computed matches are stored.", description="Folder in which some computed matches are stored.",
value="", value="",
invalidate=True,
), ),
name="matchesFolders", name="matchesFolders",
label="Matches Folders", label="Matches Folders",
@ -53,7 +50,6 @@ Contrary to the StructureFromMotion node, this node does not infer the camera po
values=DESCRIBER_TYPES, values=DESCRIBER_TYPES,
value=["dspsift"], value=["dspsift"],
exclusive=False, exclusive=False,
invalidate=True,
joinChar=",", joinChar=",",
), ),
desc.IntParam( desc.IntParam(
@ -64,7 +60,6 @@ Contrary to the StructureFromMotion node, this node does not infer the camera po
"0 means no limit.", "0 means no limit.",
value=0, value=0,
range=(0, 50000, 1), range=(0, 50000, 1),
invalidate=True,
), ),
desc.IntParam( desc.IntParam(
name="minNumberOfMatches", name="minNumberOfMatches",
@ -74,7 +69,6 @@ Contrary to the StructureFromMotion node, this node does not infer the camera po
"0 means no limit.", "0 means no limit.",
value=0, value=0,
range=(0, 50000, 1), range=(0, 50000, 1),
invalidate=True,
), ),
desc.IntParam( desc.IntParam(
name="minNumberOfObservationsForTriangulation", name="minNumberOfObservationsForTriangulation",
@ -85,7 +79,6 @@ Contrary to the StructureFromMotion node, this node does not infer the camera po
"(from 1.5% to 11% on the tested datasets).", "(from 1.5% to 11% on the tested datasets).",
value=2, value=2,
range=(2, 10, 1), range=(2, 10, 1),
invalidate=True,
advanced=True, advanced=True,
), ),
desc.FloatParam( desc.FloatParam(
@ -94,7 +87,6 @@ Contrary to the StructureFromMotion node, this node does not infer the camera po
description="Minimum angle for triangulation.", description="Minimum angle for triangulation.",
value=3.0, value=3.0,
range=(0.1, 10.0, 0.1), range=(0.1, 10.0, 0.1),
invalidate=True,
advanced=True, advanced=True,
), ),
desc.FloatParam( desc.FloatParam(
@ -103,7 +95,6 @@ Contrary to the StructureFromMotion node, this node does not infer the camera po
description="Minimum angle for landmark.", description="Minimum angle for landmark.",
value=2.0, value=2.0,
range=(0.1, 10.0, 0.1), range=(0.1, 10.0, 0.1),
invalidate=True,
advanced=True, advanced=True,
), ),
desc.BoolParam( desc.BoolParam(
@ -111,7 +102,6 @@ Contrary to the StructureFromMotion node, this node does not infer the camera po
label="Use Rig Constraint", label="Use Rig Constraint",
description="Enable/Disable rig constraint.", description="Enable/Disable rig constraint.",
value=True, value=True,
invalidate=True,
advanced=True, advanced=True,
), ),
desc.IntParam( desc.IntParam(
@ -120,7 +110,6 @@ Contrary to the StructureFromMotion node, this node does not infer the camera po
description="Minimum number of cameras to start the calibration of the rig.", description="Minimum number of cameras to start the calibration of the rig.",
value=20, value=20,
range=(1, 50, 1), range=(1, 50, 1),
invalidate=True,
advanced=True, advanced=True,
), ),
desc.BoolParam( desc.BoolParam(
@ -128,7 +117,6 @@ Contrary to the StructureFromMotion node, this node does not infer the camera po
label="Compute Structure Color", label="Compute Structure Color",
description="Enable/Disable color computation of each 3D point.", description="Enable/Disable color computation of each 3D point.",
value=True, value=True,
invalidate=True,
), ),
desc.ChoiceParam( desc.ChoiceParam(
name="interFileExtension", name="interFileExtension",
@ -147,7 +135,6 @@ Contrary to the StructureFromMotion node, this node does not infer the camera po
values=VERBOSE_LEVEL, values=VERBOSE_LEVEL,
value="info", value="info",
exclusive=True, exclusive=True,
invalidate=False,
), ),
] ]
@ -157,13 +144,11 @@ Contrary to the StructureFromMotion node, this node does not infer the camera po
label="SfMData", label="SfMData",
description="Path to the output SfMData file.", description="Path to the output SfMData file.",
value=desc.Node.internalFolder + "sfm.abc", value=desc.Node.internalFolder + "sfm.abc",
invalidate=False,
), ),
desc.File( desc.File(
name="extraInfoFolder", name="extraInfoFolder",
label="Folder", label="Folder",
description="Folder for intermediate reconstruction files and additional reconstruction information files.", description="Folder for intermediate reconstruction files and additional reconstruction information files.",
value=desc.Node.internalFolder, value=desc.Node.internalFolder,
invalidate=False,
), ),
] ]

View file

@ -18,21 +18,18 @@ class SfMBootStraping(desc.AVCommandLineNode):
label="SfMData", label="SfMData",
description="SfMData file.", description="SfMData file.",
value="", value="",
invalidate=True,
), ),
desc.File( desc.File(
name="tracksFilename", name="tracksFilename",
label="Tracks File", label="Tracks File",
description="Tracks file.", description="Tracks file.",
value="", value="",
invalidate=True,
), ),
desc.File( desc.File(
name="pairs", name="pairs",
label="Pairs File", label="Pairs File",
description="Information on pairs.", description="Information on pairs.",
value="", value="",
invalidate=True,
), ),
desc.ChoiceParam( desc.ChoiceParam(
name="verboseLevel", name="verboseLevel",
@ -41,7 +38,6 @@ class SfMBootStraping(desc.AVCommandLineNode):
values=VERBOSE_LEVEL, values=VERBOSE_LEVEL,
value="info", value="info",
exclusive=True, exclusive=True,
invalidate=False,
), ),
] ]
@ -51,6 +47,5 @@ class SfMBootStraping(desc.AVCommandLineNode):
label="SfMData", label="SfMData",
description="Path to the output SfMData file.", description="Path to the output SfMData file.",
value=desc.Node.internalFolder + "sfm.json", value=desc.Node.internalFolder + "sfm.json",
invalidate=False,
), ),
] ]

View file

@ -18,32 +18,19 @@ class SfMExpanding(desc.AVCommandLineNode):
label="SfMData", label="SfMData",
description="SfMData file.", description="SfMData file.",
value="", value="",
invalidate=True,
), ),
desc.File( desc.File(
name="tracksFilename", name="tracksFilename",
label="Tracks File", label="Tracks File",
description="Tracks file.", description="Tracks file.",
value="", value="",
invalidate=True,
), ),
desc.ChoiceParam(
name="verboseLevel",
label="Verbose Level",
description="Verbosity level (fatal, error, warning, info, debug, trace).",
values=VERBOSE_LEVEL,
value="info",
exclusive=True,
invalidate=False,
),
desc.IntParam( desc.IntParam(
name="localizerEstimatorMaxIterations", name="localizerEstimatorMaxIterations",
label="Localizer Max Ransac Iterations", label="Localizer Max Ransac Iterations",
description="Maximum number of iterations allowed in the Ransac step.", description="Maximum number of iterations allowed in the Ransac step.",
value=50000, value=50000,
range=(1, 100000, 1), range=(1, 100000, 1),
invalidate=True,
advanced=True, advanced=True,
), ),
desc.FloatParam( desc.FloatParam(
@ -54,7 +41,6 @@ class SfMExpanding(desc.AVCommandLineNode):
"(if ACRansac, it will analyze the input data to select the optimal value).", "(if ACRansac, it will analyze the input data to select the optimal value).",
value=0.0, value=0.0,
range=(0.0, 100.0, 0.1), range=(0.0, 100.0, 0.1),
invalidate=True,
advanced=True, advanced=True,
), ),
desc.BoolParam( desc.BoolParam(
@ -63,7 +49,6 @@ class SfMExpanding(desc.AVCommandLineNode):
description="Lock previously reconstructed poses and intrinsics.\n" description="Lock previously reconstructed poses and intrinsics.\n"
"This option is useful for SfM augmentation.", "This option is useful for SfM augmentation.",
value=False, value=False,
invalidate=True,
), ),
desc.BoolParam( desc.BoolParam(
name="useLocalBA", name="useLocalBA",
@ -71,7 +56,6 @@ class SfMExpanding(desc.AVCommandLineNode):
description="It reduces the reconstruction time, especially for large datasets (500+ images),\n" description="It reduces the reconstruction time, especially for large datasets (500+ images),\n"
"by avoiding computation of the Bundle Adjustment on areas that are not changing.", "by avoiding computation of the Bundle Adjustment on areas that are not changing.",
value=True, value=True,
invalidate=True,
), ),
desc.IntParam( desc.IntParam(
name="localBAGraphDistance", name="localBAGraphDistance",
@ -79,7 +63,6 @@ class SfMExpanding(desc.AVCommandLineNode):
description="Graph-distance limit to define the active region in the Local Bundle Adjustment strategy.", description="Graph-distance limit to define the active region in the Local Bundle Adjustment strategy.",
value=1, value=1,
range=(2, 10, 1), range=(2, 10, 1),
invalidate=True,
advanced=True, advanced=True,
), ),
desc.IntParam( desc.IntParam(
@ -90,7 +73,6 @@ class SfMExpanding(desc.AVCommandLineNode):
"Past this number, the bundle adjustment will only be performed once for N added cameras.", "Past this number, the bundle adjustment will only be performed once for N added cameras.",
value=30, value=30,
range=(0, 100, 1), range=(0, 100, 1),
invalidate=True,
advanced=True, advanced=True,
), ),
desc.IntParam( desc.IntParam(
@ -100,7 +82,6 @@ class SfMExpanding(desc.AVCommandLineNode):
"This prevents adding too much data at once without performing the bundle adjustment.", "This prevents adding too much data at once without performing the bundle adjustment.",
value=30, value=30,
range=(0, 100, 1), range=(0, 100, 1),
invalidate=True,
advanced=True, advanced=True,
), ),
desc.IntParam( desc.IntParam(
@ -110,7 +91,6 @@ class SfMExpanding(desc.AVCommandLineNode):
"Using a negative value for this threshold will disable BA iterations.", "Using a negative value for this threshold will disable BA iterations.",
value=50, value=50,
range=(-1, 1000, 1), range=(-1, 1000, 1),
invalidate=True,
advanced=True, advanced=True,
), ),
desc.IntParam( desc.IntParam(
@ -122,7 +102,6 @@ class SfMExpanding(desc.AVCommandLineNode):
"(from 1.5% to 11% on the tested datasets).", "(from 1.5% to 11% on the tested datasets).",
value=2, value=2,
range=(2, 10, 1), range=(2, 10, 1),
invalidate=True,
advanced=True, advanced=True,
), ),
desc.FloatParam( desc.FloatParam(
@ -131,7 +110,6 @@ class SfMExpanding(desc.AVCommandLineNode):
description="Minimum angle for triangulation.", description="Minimum angle for triangulation.",
value=3.0, value=3.0,
range=(0.1, 10.0, 0.1), range=(0.1, 10.0, 0.1),
invalidate=True,
advanced=True, advanced=True,
), ),
desc.FloatParam( desc.FloatParam(
@ -140,7 +118,6 @@ class SfMExpanding(desc.AVCommandLineNode):
description="Minimum angle for landmark.", description="Minimum angle for landmark.",
value=2.0, value=2.0,
range=(0.1, 10.0, 0.1), range=(0.1, 10.0, 0.1),
invalidate=True,
advanced=True, advanced=True,
), ),
desc.FloatParam( desc.FloatParam(
@ -149,7 +126,6 @@ class SfMExpanding(desc.AVCommandLineNode):
description="Maximum reprojection error.", description="Maximum reprojection error.",
value=4.0, value=4.0,
range=(0.1, 10.0, 0.1), range=(0.1, 10.0, 0.1),
invalidate=True,
advanced=True, advanced=True,
), ),
desc.BoolParam( desc.BoolParam(
@ -159,7 +135,6 @@ class SfMExpanding(desc.AVCommandLineNode):
"principal point, distortion if any) constant during the reconstruction.\n" "principal point, distortion if any) constant during the reconstruction.\n"
"This may be helpful if the input cameras are already fully calibrated.", "This may be helpful if the input cameras are already fully calibrated.",
value=False, value=False,
invalidate=True,
), ),
desc.IntParam( desc.IntParam(
name="minNbCamerasToRefinePrincipalPoint", name="minNbCamerasToRefinePrincipalPoint",
@ -170,9 +145,16 @@ class SfMExpanding(desc.AVCommandLineNode):
"If minNbCamerasToRefinePrincipalPoint is set to 1, the principal point is always refined.", "If minNbCamerasToRefinePrincipalPoint is set to 1, the principal point is always refined.",
value=3, value=3,
range=(0, 20, 1), range=(0, 20, 1),
invalidate=True,
advanced=True, advanced=True,
), ),
desc.ChoiceParam(
name="verboseLevel",
label="Verbose Level",
description="Verbosity level (fatal, error, warning, info, debug, trace).",
values=VERBOSE_LEVEL,
value="info",
exclusive=True,
),
] ]
outputs = [ outputs = [
@ -181,6 +163,5 @@ class SfMExpanding(desc.AVCommandLineNode):
label="SfMData", label="SfMData",
description="Path to the output SfMData file.", description="Path to the output SfMData file.",
value=desc.Node.internalFolder + "sfm.json", value=desc.Node.internalFolder + "sfm.json",
invalidate=False,
), ),
] ]

View file

@ -66,7 +66,6 @@ Upload a textured mesh on Sketchfab.
label="Input", label="Input",
description="", description="",
value="", value="",
invalidate=True,
), ),
name="inputFiles", name="inputFiles",
label="Input Files", label="Input Files",
@ -78,21 +77,18 @@ Upload a textured mesh on Sketchfab.
label="API Token", label="API Token",
description="Get your token from https://sketchfab.com/settings/password.", description="Get your token from https://sketchfab.com/settings/password.",
value="", value="",
invalidate=True,
), ),
desc.StringParam( desc.StringParam(
name="title", name="title",
label="Title", label="Title",
description="Title cannot be longer than 48 characters.", description="Title cannot be longer than 48 characters.",
value="", value="",
invalidate=True,
), ),
desc.StringParam( desc.StringParam(
name="description", name="description",
label="Description", label="Description",
description="Description cannot be longer than 1024 characters.", description="Description cannot be longer than 1024 characters.",
value="", value="",
invalidate=True,
), ),
desc.ChoiceParam( desc.ChoiceParam(
name="license", name="license",
@ -106,7 +102,6 @@ Upload a textured mesh on Sketchfab.
"CC Attribution-NonCommercial-ShareAlike", "CC Attribution-NonCommercial-ShareAlike",
"CC Attribution-NonCommercial-NoDerivs"], "CC Attribution-NonCommercial-NoDerivs"],
exclusive=True, exclusive=True,
invalidate=True,
), ),
desc.ListAttribute( desc.ListAttribute(
elementDesc=desc.StringParam( elementDesc=desc.StringParam(
@ -114,7 +109,6 @@ Upload a textured mesh on Sketchfab.
label="Tag", label="Tag",
description="Tag cannot be longer than 48 characters.", description="Tag cannot be longer than 48 characters.",
value="", value="",
invalidate=True,
), ),
name="tags", name="tags",
label="Tags", label="Tags",
@ -146,35 +140,30 @@ Upload a textured mesh on Sketchfab.
"sports-fitness", "sports-fitness",
"weapons-military"], "weapons-military"],
exclusive=True, exclusive=True,
invalidate=True,
), ),
desc.BoolParam( desc.BoolParam(
name="isPublished", name="isPublished",
label="Publish", label="Publish",
description="If the model is not published, it will be saved as a draft.", description="If the model is not published, it will be saved as a draft.",
value=False, value=False,
invalidate=True,
), ),
desc.BoolParam( desc.BoolParam(
name="isInspectable", name="isInspectable",
label="Inspectable", label="Inspectable",
description="Allow 2D view in model inspector.", description="Allow 2D view in model inspector.",
value=True, value=True,
invalidate=True,
), ),
desc.BoolParam( desc.BoolParam(
name="isPrivate", name="isPrivate",
label="Private", label="Private",
description="Requires a pro account.", description="Requires a pro account.",
value=False, value=False,
invalidate=True,
), ),
desc.StringParam( desc.StringParam(
name="password", name="password",
label="Password", label="Password",
description="Requires a pro account.", description="Requires a pro account.",
value="", value="",
invalidate=True,
), ),
desc.ChoiceParam( desc.ChoiceParam(
name="verboseLevel", name="verboseLevel",
@ -183,7 +172,6 @@ Upload a textured mesh on Sketchfab.
values=VERBOSE_LEVEL, values=VERBOSE_LEVEL,
value="info", value="info",
exclusive=True, exclusive=True,
invalidate=False,
), ),
] ]

View file

@ -18,21 +18,18 @@ Spheres can be automatically detected or manually defined in the interface.
label="SfMData", label="SfMData",
description="Input SfMData file.", description="Input SfMData file.",
value="", value="",
invalidate=True,
), ),
desc.File( desc.File(
name="modelPath", name="modelPath",
label="Detection Network", label="Detection Network",
description="Deep learning network for automatic calibration sphere detection.", description="Deep learning network for automatic calibration sphere detection.",
value="${ALICEVISION_SPHERE_DETECTION_MODEL}", value="${ALICEVISION_SPHERE_DETECTION_MODEL}",
invalidate=True,
), ),
desc.BoolParam( desc.BoolParam(
name="autoDetect", name="autoDetect",
label="Automatic Sphere Detection", label="Automatic Sphere Detection",
description="Automatic detection of calibration spheres.", description="Automatic detection of calibration spheres.",
value=False, value=False,
invalidate=True,
), ),
desc.FloatParam( desc.FloatParam(
name="minScore", name="minScore",
@ -41,7 +38,6 @@ Spheres can be automatically detected or manually defined in the interface.
value=0.0, value=0.0,
range=(0.0, 50.0, 0.01), range=(0.0, 50.0, 0.01),
advanced=True, advanced=True,
invalidate=True,
), ),
desc.GroupAttribute( desc.GroupAttribute(
name="sphereCenter", name="sphereCenter",
@ -53,7 +49,6 @@ Spheres can be automatically detected or manually defined in the interface.
label="x", label="x",
description="X offset in pixels.", description="X offset in pixels.",
value=0.0, value=0.0,
invalidate=True,
range=(-1000.0, 10000.0, 1.0), range=(-1000.0, 10000.0, 1.0),
), ),
desc.FloatParam( desc.FloatParam(
@ -61,7 +56,6 @@ Spheres can be automatically detected or manually defined in the interface.
label="y", label="y",
description="Y offset in pixels.", description="Y offset in pixels.",
value=0.0, value=0.0,
invalidate=True,
range=(-1000.0, 10000.0, 1.0), range=(-1000.0, 10000.0, 1.0),
), ),
], ],
@ -75,7 +69,6 @@ Spheres can be automatically detected or manually defined in the interface.
value=500.0, value=500.0,
range=(0.0, 10000.0, 0.1), range=(0.0, 10000.0, 0.1),
enabled=lambda node: not node.autoDetect.value, enabled=lambda node: not node.autoDetect.value,
invalidate=True,
), ),
desc.ChoiceParam( desc.ChoiceParam(
name="verboseLevel", name="verboseLevel",
@ -84,7 +77,6 @@ Spheres can be automatically detected or manually defined in the interface.
values=VERBOSE_LEVEL, values=VERBOSE_LEVEL,
value="info", value="info",
exclusive=True, exclusive=True,
invalidate=False,
), ),
] ]
@ -94,6 +86,5 @@ Spheres can be automatically detected or manually defined in the interface.
label="Output Path", label="Output Path",
description="Sphere detection information will be written here.", description="Sphere detection information will be written here.",
value=desc.Node.internalFolder + "/detection.json", value=desc.Node.internalFolder + "/detection.json",
invalidate=False,
) )
] ]

View file

@ -33,7 +33,6 @@ class Split360Images(desc.AVCommandLineNode):
label="Input", label="Input",
description="Single image, image folder or SfMData file.", description="Single image, image folder or SfMData file.",
value="", value="",
invalidate=True,
), ),
desc.ChoiceParam( desc.ChoiceParam(
name="splitMode", name="splitMode",
@ -42,7 +41,6 @@ class Split360Images(desc.AVCommandLineNode):
value="equirectangular", value="equirectangular",
values=["equirectangular", "dualfisheye"], values=["equirectangular", "dualfisheye"],
exclusive=True, exclusive=True,
invalidate=True,
), ),
desc.GroupAttribute( desc.GroupAttribute(
name="dualFisheyeGroup", name="dualFisheyeGroup",
@ -58,7 +56,6 @@ class Split360Images(desc.AVCommandLineNode):
value="center", value="center",
values=["center", "left", "right"], values=["center", "left", "right"],
exclusive=True, exclusive=True,
invalidate=True,
), ),
desc.ChoiceParam( desc.ChoiceParam(
name="dualFisheyeOffsetPresetY", name="dualFisheyeOffsetPresetY",
@ -67,7 +64,6 @@ class Split360Images(desc.AVCommandLineNode):
value="center", value="center",
values=["center", "top", "bottom"], values=["center", "top", "bottom"],
exclusive=True, exclusive=True,
invalidate=True,
), ),
desc.ChoiceParam( desc.ChoiceParam(
name="dualFisheyeCameraModel", name="dualFisheyeCameraModel",
@ -76,7 +72,6 @@ class Split360Images(desc.AVCommandLineNode):
value="fisheye4", value="fisheye4",
values=["fisheye4", "equidistant_r3"], values=["fisheye4", "equidistant_r3"],
exclusive=True, exclusive=True,
invalidate=True,
), ),
], ],
), ),
@ -93,7 +88,6 @@ class Split360Images(desc.AVCommandLineNode):
description="Equirectangular number of splits.", description="Equirectangular number of splits.",
value=2, value=2,
range=(1, 100, 1), range=(1, 100, 1),
invalidate=True,
), ),
desc.IntParam( desc.IntParam(
name="equirectangularSplitResolution", name="equirectangularSplitResolution",
@ -101,14 +95,12 @@ class Split360Images(desc.AVCommandLineNode):
description="Equirectangular split resolution.", description="Equirectangular split resolution.",
value=1200, value=1200,
range=(100, 10000, 1), range=(100, 10000, 1),
invalidate=True,
), ),
desc.BoolParam( desc.BoolParam(
name="equirectangularPreviewMode", name="equirectangularPreviewMode",
label="Preview Mode", label="Preview Mode",
description="Export a SVG file that simulates the split.", description="Export a SVG file that simulates the split.",
value=False, value=False,
invalidate=True,
), ),
desc.FloatParam( desc.FloatParam(
name="fov", name="fov",
@ -116,7 +108,6 @@ class Split360Images(desc.AVCommandLineNode):
description="Field of View to extract (in degrees).", description="Field of View to extract (in degrees).",
value=110.0, value=110.0,
range=(0.0, 180.0, 1.0), range=(0.0, 180.0, 1.0),
invalidate=True,
), ),
], ],
), ),
@ -127,7 +118,6 @@ class Split360Images(desc.AVCommandLineNode):
value="", value="",
values=["", "exr", "jpg", "tiff", "png"], values=["", "exr", "jpg", "tiff", "png"],
exclusive=True, exclusive=True,
invalidate=True,
), ),
desc.ChoiceParam( desc.ChoiceParam(
name="verboseLevel", name="verboseLevel",
@ -136,7 +126,6 @@ class Split360Images(desc.AVCommandLineNode):
values=VERBOSE_LEVEL, values=VERBOSE_LEVEL,
value="info", value="info",
exclusive=True, exclusive=True,
invalidate=False,
), ),
] ]
@ -146,13 +135,11 @@ class Split360Images(desc.AVCommandLineNode):
label="Folder", label="Folder",
description="Output folder for extracted frames.", description="Output folder for extracted frames.",
value=desc.Node.internalFolder, value=desc.Node.internalFolder,
invalidate=False,
), ),
desc.File( desc.File(
name="outSfMData", name="outSfMData",
label="SfMData File", label="SfMData File",
description="Output SfMData file.", description="Output SfMData file.",
value=desc.Node.internalFolder + "rig.sfm", value=desc.Node.internalFolder + "rig.sfm",
invalidate=False,
), ),
] ]

View file

@ -71,7 +71,6 @@ It iterates like that, adding cameras and triangulating new 2D features into 3D
label="SfMData", label="SfMData",
description="Input SfMData file.", description="Input SfMData file.",
value="", value="",
invalidate=True,
), ),
desc.ListAttribute( desc.ListAttribute(
elementDesc=desc.File( elementDesc=desc.File(
@ -79,7 +78,6 @@ It iterates like that, adding cameras and triangulating new 2D features into 3D
label="Features Folder", label="Features Folder",
description="", description="",
value="", value="",
invalidate=True,
), ),
name="featuresFolders", name="featuresFolders",
label="Features Folders", label="Features Folders",
@ -91,7 +89,6 @@ It iterates like that, adding cameras and triangulating new 2D features into 3D
label="Matches Folder", label="Matches Folder",
description="", description="",
value="", value="",
invalidate=True,
), ),
name="matchesFolders", name="matchesFolders",
label="Matches Folders", label="Matches Folders",
@ -104,7 +101,6 @@ It iterates like that, adding cameras and triangulating new 2D features into 3D
values=DESCRIBER_TYPES, values=DESCRIBER_TYPES,
value=["dspsift"], value=["dspsift"],
exclusive=False, exclusive=False,
invalidate=True,
joinChar=",", joinChar=",",
), ),
desc.ChoiceParam( desc.ChoiceParam(
@ -114,7 +110,6 @@ It iterates like that, adding cameras and triangulating new 2D features into 3D
value="acransac", value="acransac",
values=["acransac", "ransac", "lsmeds", "loransac", "maxconsensus"], values=["acransac", "ransac", "lsmeds", "loransac", "maxconsensus"],
exclusive=True, exclusive=True,
invalidate=True,
advanced=True, advanced=True,
), ),
desc.ChoiceParam( desc.ChoiceParam(
@ -126,7 +121,6 @@ It iterates like that, adding cameras and triangulating new 2D features into 3D
value="Scale", value="Scale",
values=["Basic", "Scale"], values=["Basic", "Scale"],
exclusive=True, exclusive=True,
invalidate=True,
advanced=True, advanced=True,
), ),
desc.IntParam( desc.IntParam(
@ -135,7 +129,6 @@ It iterates like that, adding cameras and triangulating new 2D features into 3D
description="Maximum number of iterations allowed in the Ransac step.", description="Maximum number of iterations allowed in the Ransac step.",
value=50000, value=50000,
range=(1, 100000, 1), range=(1, 100000, 1),
invalidate=True,
advanced=True, advanced=True,
), ),
desc.FloatParam( desc.FloatParam(
@ -146,7 +139,6 @@ It iterates like that, adding cameras and triangulating new 2D features into 3D
"(if ACRansac, it will analyze the input data to select the optimal value).", "(if ACRansac, it will analyze the input data to select the optimal value).",
value=0.0, value=0.0,
range=(0.0, 100.0, 0.1), range=(0.0, 100.0, 0.1),
invalidate=True,
advanced=True, advanced=True,
), ),
desc.BoolParam( desc.BoolParam(
@ -155,7 +147,6 @@ It iterates like that, adding cameras and triangulating new 2D features into 3D
description="Lock previously reconstructed poses and intrinsics.\n" description="Lock previously reconstructed poses and intrinsics.\n"
"This option is useful for SfM augmentation.", "This option is useful for SfM augmentation.",
value=False, value=False,
invalidate=True,
), ),
desc.BoolParam( desc.BoolParam(
name="useLocalBA", name="useLocalBA",
@ -163,7 +154,6 @@ It iterates like that, adding cameras and triangulating new 2D features into 3D
description="It reduces the reconstruction time, especially for large datasets (500+ images),\n" description="It reduces the reconstruction time, especially for large datasets (500+ images),\n"
"by avoiding computation of the Bundle Adjustment on areas that are not changing.", "by avoiding computation of the Bundle Adjustment on areas that are not changing.",
value=True, value=True,
invalidate=True,
), ),
desc.IntParam( desc.IntParam(
name="localBAGraphDistance", name="localBAGraphDistance",
@ -171,7 +161,6 @@ It iterates like that, adding cameras and triangulating new 2D features into 3D
description="Graph-distance limit to define the active region in the Local Bundle Adjustment strategy.", description="Graph-distance limit to define the active region in the Local Bundle Adjustment strategy.",
value=1, value=1,
range=(2, 10, 1), range=(2, 10, 1),
invalidate=True,
advanced=True, advanced=True,
), ),
desc.IntParam( desc.IntParam(
@ -182,7 +171,6 @@ It iterates like that, adding cameras and triangulating new 2D features into 3D
"Past this number, the bundle adjustment will only be performed once for N added cameras.", "Past this number, the bundle adjustment will only be performed once for N added cameras.",
value=30, value=30,
range=(0, 100, 1), range=(0, 100, 1),
invalidate=True,
advanced=True, advanced=True,
), ),
desc.IntParam( desc.IntParam(
@ -192,7 +180,6 @@ It iterates like that, adding cameras and triangulating new 2D features into 3D
"This prevents adding too much data at once without performing the bundle adjustment.", "This prevents adding too much data at once without performing the bundle adjustment.",
value=30, value=30,
range=(0, 100, 1), range=(0, 100, 1),
invalidate=True,
advanced=True, advanced=True,
), ),
desc.IntParam( desc.IntParam(
@ -202,7 +189,6 @@ It iterates like that, adding cameras and triangulating new 2D features into 3D
"Using a negative value for this threshold will disable BA iterations.", "Using a negative value for this threshold will disable BA iterations.",
value=50, value=50,
range=(-1, 1000, 1), range=(-1, 1000, 1),
invalidate=True,
advanced=True, advanced=True,
), ),
desc.IntParam( desc.IntParam(
@ -213,7 +199,6 @@ It iterates like that, adding cameras and triangulating new 2D features into 3D
"0 means no limit.", "0 means no limit.",
value=0, value=0,
range=(0, 50000, 1), range=(0, 50000, 1),
invalidate=True,
), ),
desc.IntParam( desc.IntParam(
name="minNumberOfMatches", name="minNumberOfMatches",
@ -223,7 +208,6 @@ It iterates like that, adding cameras and triangulating new 2D features into 3D
"0 means no limit.", "0 means no limit.",
value=0, value=0,
range=(0, 50000, 1), range=(0, 50000, 1),
invalidate=True,
), ),
desc.IntParam( desc.IntParam(
name="minInputTrackLength", name="minInputTrackLength",
@ -231,7 +215,6 @@ It iterates like that, adding cameras and triangulating new 2D features into 3D
description="Minimum track length in input of SfM.", description="Minimum track length in input of SfM.",
value=2, value=2,
range=(2, 10, 1), range=(2, 10, 1),
invalidate=True,
), ),
desc.IntParam( desc.IntParam(
name="minNumberOfObservationsForTriangulation", name="minNumberOfObservationsForTriangulation",
@ -242,7 +225,6 @@ It iterates like that, adding cameras and triangulating new 2D features into 3D
"(from 1.5% to 11% on the tested datasets).", "(from 1.5% to 11% on the tested datasets).",
value=2, value=2,
range=(2, 10, 1), range=(2, 10, 1),
invalidate=True,
advanced=True, advanced=True,
), ),
desc.FloatParam( desc.FloatParam(
@ -251,7 +233,6 @@ It iterates like that, adding cameras and triangulating new 2D features into 3D
description="Minimum angle for triangulation.", description="Minimum angle for triangulation.",
value=3.0, value=3.0,
range=(0.1, 10.0, 0.1), range=(0.1, 10.0, 0.1),
invalidate=True,
advanced=True, advanced=True,
), ),
desc.FloatParam( desc.FloatParam(
@ -260,7 +241,6 @@ It iterates like that, adding cameras and triangulating new 2D features into 3D
description="Minimum angle for landmark.", description="Minimum angle for landmark.",
value=2.0, value=2.0,
range=(0.1, 10.0, 0.1), range=(0.1, 10.0, 0.1),
invalidate=True,
advanced=True, advanced=True,
), ),
desc.FloatParam( desc.FloatParam(
@ -269,7 +249,6 @@ It iterates like that, adding cameras and triangulating new 2D features into 3D
description="Maximum reprojection error.", description="Maximum reprojection error.",
value=4.0, value=4.0,
range=(0.1, 10.0, 0.1), range=(0.1, 10.0, 0.1),
invalidate=True,
advanced=True, advanced=True,
), ),
desc.FloatParam( desc.FloatParam(
@ -278,7 +257,6 @@ It iterates like that, adding cameras and triangulating new 2D features into 3D
description="Minimum angle for the initial pair.", description="Minimum angle for the initial pair.",
value=5.0, value=5.0,
range=(0.1, 10.0, 0.1), range=(0.1, 10.0, 0.1),
invalidate=True,
advanced=True, advanced=True,
), ),
desc.FloatParam( desc.FloatParam(
@ -287,7 +265,6 @@ It iterates like that, adding cameras and triangulating new 2D features into 3D
description="Maximum angle for the initial pair.", description="Maximum angle for the initial pair.",
value=40.0, value=40.0,
range=(0.1, 60.0, 0.1), range=(0.1, 60.0, 0.1),
invalidate=True,
advanced=True, advanced=True,
), ),
desc.BoolParam( desc.BoolParam(
@ -304,7 +281,6 @@ It iterates like that, adding cameras and triangulating new 2D features into 3D
label="Use Rig Constraint", label="Use Rig Constraint",
description="Enable/Disable rig constraint.", description="Enable/Disable rig constraint.",
value=True, value=True,
invalidate=True,
advanced=True, advanced=True,
), ),
desc.IntParam( desc.IntParam(
@ -313,7 +289,6 @@ It iterates like that, adding cameras and triangulating new 2D features into 3D
description="Minimum number of cameras to start the calibration of the rig.", description="Minimum number of cameras to start the calibration of the rig.",
value=20, value=20,
range=(1, 50, 1), range=(1, 50, 1),
invalidate=True,
advanced=True, advanced=True,
), ),
desc.BoolParam( desc.BoolParam(
@ -323,7 +298,6 @@ It iterates like that, adding cameras and triangulating new 2D features into 3D
"principal point, distortion if any) constant during the reconstruction.\n" "principal point, distortion if any) constant during the reconstruction.\n"
"This may be helpful if the input cameras are already fully calibrated.", "This may be helpful if the input cameras are already fully calibrated.",
value=False, value=False,
invalidate=True,
), ),
desc.IntParam( desc.IntParam(
name="minNbCamerasToRefinePrincipalPoint", name="minNbCamerasToRefinePrincipalPoint",
@ -334,7 +308,6 @@ It iterates like that, adding cameras and triangulating new 2D features into 3D
"If minNbCamerasToRefinePrincipalPoint is set to 1, the principal point is always refined.", "If minNbCamerasToRefinePrincipalPoint is set to 1, the principal point is always refined.",
value=3, value=3,
range=(0, 20, 1), range=(0, 20, 1),
invalidate=True,
advanced=True, advanced=True,
), ),
desc.BoolParam( desc.BoolParam(
@ -343,14 +316,12 @@ It iterates like that, adding cameras and triangulating new 2D features into 3D
description="Enable/Disable the track forks removal. A track contains a fork when incoherent matches \n" description="Enable/Disable the track forks removal. A track contains a fork when incoherent matches \n"
"lead to multiple features in the same image for a single track.", "lead to multiple features in the same image for a single track.",
value=False, value=False,
invalidate=True,
), ),
desc.BoolParam( desc.BoolParam(
name="computeStructureColor", name="computeStructureColor",
label="Compute Structure Color", label="Compute Structure Color",
description="Enable/Disable color computation of every 3D point.", description="Enable/Disable color computation of every 3D point.",
value=True, value=True,
invalidate=True,
), ),
desc.BoolParam( desc.BoolParam(
name="useAutoTransform", name="useAutoTransform",
@ -360,21 +331,18 @@ It iterates like that, adding cameras and triangulating new 2D features into 3D
"determines north and scale from GPS information if available,\n" "determines north and scale from GPS information if available,\n"
"and defines ground level from the point cloud.", "and defines ground level from the point cloud.",
value=True, value=True,
invalidate=True,
), ),
desc.File( desc.File(
name="initialPairA", name="initialPairA",
label="Initial Pair A", label="Initial Pair A",
description="View ID or filename of the first image (either with or without the full path).", description="View ID or filename of the first image (either with or without the full path).",
value="", value="",
invalidate=True,
), ),
desc.File( desc.File(
name="initialPairB", name="initialPairB",
label="Initial Pair B", label="Initial Pair B",
description="View ID or filename of the second image (either with or without the full path).", description="View ID or filename of the second image (either with or without the full path).",
value="", value="",
invalidate=True,
), ),
desc.ChoiceParam( desc.ChoiceParam(
name="interFileExtension", name="interFileExtension",
@ -401,7 +369,6 @@ It iterates like that, adding cameras and triangulating new 2D features into 3D
values=VERBOSE_LEVEL, values=VERBOSE_LEVEL,
value="info", value="info",
exclusive=True, exclusive=True,
invalidate=False,
), ),
] ]
@ -411,20 +378,17 @@ It iterates like that, adding cameras and triangulating new 2D features into 3D
label="SfMData", label="SfMData",
description="Path to the output SfM point cloud file (in SfMData format).", description="Path to the output SfM point cloud file (in SfMData format).",
value=desc.Node.internalFolder + "sfm.abc", value=desc.Node.internalFolder + "sfm.abc",
invalidate=False,
), ),
desc.File( desc.File(
name="outputViewsAndPoses", name="outputViewsAndPoses",
label="Views And Poses", label="Views And Poses",
description="Path to the output SfMData file with cameras (views and poses).", description="Path to the output SfMData file with cameras (views and poses).",
value=desc.Node.internalFolder + "cameras.sfm", value=desc.Node.internalFolder + "cameras.sfm",
invalidate=False,
), ),
desc.File( desc.File(
name="extraInfoFolder", name="extraInfoFolder",
label="Folder", label="Folder",
description="Folder for intermediate reconstruction files and additional reconstruction information files.", description="Folder for intermediate reconstruction files and additional reconstruction information files.",
value=desc.Node.internalFolder, value=desc.Node.internalFolder,
invalidate=False,
), ),
] ]

View file

@ -31,7 +31,6 @@ Many cameras are contributing to the low frequencies and only the best ones cont
label="Dense SfMData", label="Dense SfMData",
description="SfMData file.", description="SfMData file.",
value="", value="",
invalidate=True,
), ),
desc.File( desc.File(
name="imagesFolder", name="imagesFolder",
@ -39,21 +38,18 @@ Many cameras are contributing to the low frequencies and only the best ones cont
description="Use images from a specific folder instead of those specified in the SfMData file.\n" description="Use images from a specific folder instead of those specified in the SfMData file.\n"
"Filename should be the image UID.", "Filename should be the image UID.",
value="", value="",
invalidate=True,
), ),
desc.File( desc.File(
name="normalsFolder", name="normalsFolder",
label="Normals Folder", label="Normals Folder",
description="Use normal maps from a specific folder to texture the mesh.\nFilename should be : uid_normalMap.", description="Use normal maps from a specific folder to texture the mesh.\nFilename should be : uid_normalMap.",
value="", value="",
invalidate=True,
), ),
desc.File( desc.File(
name="inputMesh", name="inputMesh",
label="Mesh", label="Mesh",
description="Optional input mesh to texture. By default, it will texture the result of the reconstruction.", description="Optional input mesh to texture. By default, it will texture the result of the reconstruction.",
value="", value="",
invalidate=True,
), ),
desc.File( desc.File(
name="inputRefMesh", name="inputRefMesh",
@ -61,7 +57,6 @@ Many cameras are contributing to the low frequencies and only the best ones cont
description="Optional input mesh to compute height maps and normal maps.\n" description="Optional input mesh to compute height maps and normal maps.\n"
"If not provided, no additional map with geometric information will be generated.", "If not provided, no additional map with geometric information will be generated.",
value="", value="",
invalidate=True,
), ),
desc.ChoiceParam( desc.ChoiceParam(
name="textureSide", name="textureSide",
@ -70,7 +65,6 @@ Many cameras are contributing to the low frequencies and only the best ones cont
value=8192, value=8192,
values=[1024, 2048, 4096, 8192, 16384], values=[1024, 2048, 4096, 8192, 16384],
exclusive=True, exclusive=True,
invalidate=True,
), ),
desc.ChoiceParam( desc.ChoiceParam(
name="downscale", name="downscale",
@ -79,7 +73,6 @@ Many cameras are contributing to the low frequencies and only the best ones cont
value=2, value=2,
values=[1, 2, 4, 8], values=[1, 2, 4, 8],
exclusive=True, exclusive=True,
invalidate=True,
), ),
desc.ChoiceParam( desc.ChoiceParam(
name="outputMeshFileType", name="outputMeshFileType",
@ -88,7 +81,6 @@ Many cameras are contributing to the low frequencies and only the best ones cont
value="obj", value="obj",
values=["obj", "gltf", "fbx", "stl"], values=["obj", "gltf", "fbx", "stl"],
exclusive=True, exclusive=True,
invalidate=True,
), ),
desc.GroupAttribute( desc.GroupAttribute(
name="colorMapping", name="colorMapping",
@ -112,7 +104,6 @@ Many cameras are contributing to the low frequencies and only the best ones cont
value="exr", value="exr",
values=["exr", "png", "tiff", "jpg"], values=["exr", "png", "tiff", "jpg"],
exclusive=True, exclusive=True,
invalidate=True,
enabled=lambda node: node.colorMapping.enable.value, enabled=lambda node: node.colorMapping.enable.value,
), ),
], ],
@ -139,7 +130,6 @@ Many cameras are contributing to the low frequencies and only the best ones cont
value="Normal", value="Normal",
values=["Height", "Normal"], values=["Height", "Normal"],
exclusive=True, exclusive=True,
invalidate=True,
enabled=lambda node: node.bumpMapping.enable.value, enabled=lambda node: node.bumpMapping.enable.value,
), ),
desc.ChoiceParam( desc.ChoiceParam(
@ -149,7 +139,6 @@ Many cameras are contributing to the low frequencies and only the best ones cont
value="exr", value="exr",
values=["exr", "png", "tiff", "jpg"], values=["exr", "png", "tiff", "jpg"],
exclusive=True, exclusive=True,
invalidate=True,
enabled=lambda node: node.bumpMapping.enable.value and node.bumpMapping.bumpType.value == "Normal", enabled=lambda node: node.bumpMapping.enable.value and node.bumpMapping.bumpType.value == "Normal",
), ),
desc.ChoiceParam( desc.ChoiceParam(
@ -159,7 +148,6 @@ Many cameras are contributing to the low frequencies and only the best ones cont
value="exr", value="exr",
values=["exr",], values=["exr",],
exclusive=True, exclusive=True,
invalidate=True,
enabled=lambda node: node.bumpMapping.enable.value and node.bumpMapping.bumpType.value == "Height", enabled=lambda node: node.bumpMapping.enable.value and node.bumpMapping.bumpType.value == "Height",
), ),
], ],
@ -186,7 +174,6 @@ Many cameras are contributing to the low frequencies and only the best ones cont
value="exr", value="exr",
values=["exr"], values=["exr"],
exclusive=True, exclusive=True,
invalidate=True,
enabled=lambda node: node.displacementMapping.enable.value, enabled=lambda node: node.displacementMapping.enable.value,
), ),
], ],
@ -201,21 +188,18 @@ Many cameras are contributing to the low frequencies and only the best ones cont
value="Basic", value="Basic",
values=["Basic", "LSCM", "ABF"], values=["Basic", "LSCM", "ABF"],
exclusive=True, exclusive=True,
invalidate=True,
), ),
desc.BoolParam( desc.BoolParam(
name="useUDIM", name="useUDIM",
label="Use UDIM", label="Use UDIM",
description="Use UDIM UV mapping.", description="Use UDIM UV mapping.",
value=True, value=True,
invalidate=True,
), ),
desc.BoolParam( desc.BoolParam(
name="fillHoles", name="fillHoles",
label="Fill Holes", label="Fill Holes",
description="Fill texture holes with plausible values.", description="Fill texture holes with plausible values.",
value=False, value=False,
invalidate=True,
), ),
desc.IntParam( desc.IntParam(
name="padding", name="padding",
@ -223,7 +207,6 @@ Many cameras are contributing to the low frequencies and only the best ones cont
description="Texture edge padding size in pixels.", description="Texture edge padding size in pixels.",
value=5, value=5,
range=(0, 20, 1), range=(0, 20, 1),
invalidate=True,
advanced=True, advanced=True,
), ),
desc.IntParam( desc.IntParam(
@ -232,7 +215,6 @@ Many cameras are contributing to the low frequencies and only the best ones cont
description="Width of frequency bands for multiband blending.", description="Width of frequency bands for multiband blending.",
value=4, value=4,
range=(0, 8, 2), range=(0, 8, 2),
invalidate=True,
advanced=True, advanced=True,
), ),
desc.GroupAttribute( desc.GroupAttribute(
@ -244,7 +226,6 @@ Many cameras are contributing to the low frequencies and only the best ones cont
label="High Freq", label="High Freq",
description="High frequency band.", description="High frequency band.",
value=1, value=1,
invalidate=True,
range=None, range=None,
), ),
desc.IntParam( desc.IntParam(
@ -252,7 +233,6 @@ Many cameras are contributing to the low frequencies and only the best ones cont
label="Mid-High Freq", label="Mid-High Freq",
description="Mid-high frequency band.", description="Mid-high frequency band.",
value=5, value=5,
invalidate=True,
range=None, range=None,
), ),
desc.IntParam( desc.IntParam(
@ -260,7 +240,6 @@ Many cameras are contributing to the low frequencies and only the best ones cont
label="Mid-Low Freq", label="Mid-Low Freq",
description="Mid-low frequency band.", description="Mid-low frequency band.",
value=10, value=10,
invalidate=True,
range=None, range=None,
), ),
desc.IntParam( desc.IntParam(
@ -268,7 +247,6 @@ Many cameras are contributing to the low frequencies and only the best ones cont
label="Low Freq", label="Low Freq",
description="Low frequency band", description="Low frequency band",
value=0, value=0,
invalidate=True,
range=None, range=None,
), ),
], ],
@ -280,7 +258,6 @@ Many cameras are contributing to the low frequencies and only the best ones cont
label="Use Score", label="Use Score",
description="Use triangles scores (ie. reprojection area) for multi-band blending.", description="Use triangles scores (ie. reprojection area) for multi-band blending.",
value=True, value=True,
invalidate=True,
advanced=True, advanced=True,
), ),
desc.FloatParam( desc.FloatParam(
@ -289,7 +266,6 @@ Many cameras are contributing to the low frequencies and only the best ones cont
description="Setting this parameter to 0.0 disables filtering based on threshold to relative best score.", description="Setting this parameter to 0.0 disables filtering based on threshold to relative best score.",
value=0.1, value=0.1,
range=(0.0, 1.0, 0.01), range=(0.0, 1.0, 0.01),
invalidate=True,
advanced=True, advanced=True,
), ),
desc.FloatParam( desc.FloatParam(
@ -298,7 +274,6 @@ Many cameras are contributing to the low frequencies and only the best ones cont
description="Setting this parameter to 0.0 disables angle hard threshold filtering.", description="Setting this parameter to 0.0 disables angle hard threshold filtering.",
value=90.0, value=90.0,
range=(0.0, 180.0, 0.01), range=(0.0, 180.0, 0.01),
invalidate=True,
advanced=True, advanced=True,
), ),
desc.ChoiceParam( desc.ChoiceParam(
@ -308,7 +283,6 @@ Many cameras are contributing to the low frequencies and only the best ones cont
values=COLORSPACES, values=COLORSPACES,
value="sRGB", value="sRGB",
exclusive=True, exclusive=True,
invalidate=True,
advanced=True, advanced=True,
), ),
desc.ChoiceParam( desc.ChoiceParam(
@ -318,21 +292,18 @@ Many cameras are contributing to the low frequencies and only the best ones cont
values=COLORSPACES, values=COLORSPACES,
value="AUTO", value="AUTO",
exclusive=True, exclusive=True,
invalidate=True,
), ),
desc.BoolParam( desc.BoolParam(
name="correctEV", name="correctEV",
label="Correct Exposure", label="Correct Exposure",
description="Uniformize images exposure values.", description="Uniformize images exposure values.",
value=True, value=True,
invalidate=True,
), ),
desc.BoolParam( desc.BoolParam(
name="forceVisibleByAllVertices", name="forceVisibleByAllVertices",
label="Force Visible By All Vertices", label="Force Visible By All Vertices",
description="Triangle visibility is based on the union of vertices visibility.", description="Triangle visibility is based on the union of vertices visibility.",
value=False, value=False,
invalidate=True,
advanced=True, advanced=True,
), ),
desc.BoolParam( desc.BoolParam(
@ -341,7 +312,6 @@ Many cameras are contributing to the low frequencies and only the best ones cont
description="Option to flip face normals.\n" description="Option to flip face normals.\n"
"It can be needed as it depends on the vertices order in triangles and the convention changes from one software to another.", "It can be needed as it depends on the vertices order in triangles and the convention changes from one software to another.",
value=False, value=False,
invalidate=True,
advanced=True, advanced=True,
), ),
desc.ChoiceParam( desc.ChoiceParam(
@ -351,7 +321,6 @@ Many cameras are contributing to the low frequencies and only the best ones cont
value="PullPush", value="PullPush",
values=["Pull", "Push", "PullPush", "MeshItself"], values=["Pull", "Push", "PullPush", "MeshItself"],
exclusive=True, exclusive=True,
invalidate=True,
advanced=True, advanced=True,
), ),
desc.FloatParam( desc.FloatParam(
@ -363,7 +332,6 @@ Many cameras are contributing to the low frequencies and only the best ones cont
" - 1: full density of the reconstruction).", " - 1: full density of the reconstruction).",
value=0.8, value=0.8,
range=(0.0, 1.0, 0.001), range=(0.0, 1.0, 0.001),
invalidate=True,
advanced=True, advanced=True,
), ),
desc.ChoiceParam( desc.ChoiceParam(
@ -373,7 +341,6 @@ Many cameras are contributing to the low frequencies and only the best ones cont
values=VERBOSE_LEVEL, values=VERBOSE_LEVEL,
value="info", value="info",
exclusive=True, exclusive=True,
invalidate=False,
), ),
] ]
@ -383,14 +350,12 @@ Many cameras are contributing to the low frequencies and only the best ones cont
label="Folder", label="Folder",
description="Folder for output mesh: OBJ, material and texture files.", description="Folder for output mesh: OBJ, material and texture files.",
value=desc.Node.internalFolder, value=desc.Node.internalFolder,
invalidate=False,
), ),
desc.File( desc.File(
name="outputMesh", name="outputMesh",
label="Mesh", label="Mesh",
description="Output mesh file.", description="Output mesh file.",
value=desc.Node.internalFolder + "texturedMesh.{outputMeshFileTypeValue}", value=desc.Node.internalFolder + "texturedMesh.{outputMeshFileTypeValue}",
invalidate=False,
group="", group="",
), ),
desc.File( desc.File(
@ -399,7 +364,6 @@ Many cameras are contributing to the low frequencies and only the best ones cont
label="Material", label="Material",
description="Output material file.", description="Output material file.",
value=desc.Node.internalFolder + "texturedMesh.mtl", value=desc.Node.internalFolder + "texturedMesh.mtl",
invalidate=False,
group="", group="",
), ),
desc.File( desc.File(
@ -407,7 +371,6 @@ Many cameras are contributing to the low frequencies and only the best ones cont
label="Textures", label="Textures",
description="Output texture files.", description="Output texture files.",
value=lambda attr: desc.Node.internalFolder + "texture_*." + attr.node.colorMapping.colorMappingFileType.value if attr.node.colorMapping.enable.value else "", value=lambda attr: desc.Node.internalFolder + "texture_*." + attr.node.colorMapping.colorMappingFileType.value if attr.node.colorMapping.enable.value else "",
invalidate=False,
group="", group="",
), ),
] ]

View file

@ -19,7 +19,6 @@ It fuses all feature matches between image pairs into tracks. Each track represe
label="SfMData", label="SfMData",
description="Input SfMData file.", description="Input SfMData file.",
value="", value="",
invalidate=True,
), ),
desc.ListAttribute( desc.ListAttribute(
elementDesc=desc.File( elementDesc=desc.File(
@ -27,7 +26,6 @@ It fuses all feature matches between image pairs into tracks. Each track represe
label="Features Folder", label="Features Folder",
description="Folder containing some extracted features and descriptors.", description="Folder containing some extracted features and descriptors.",
value="", value="",
invalidate=True,
), ),
name="featuresFolders", name="featuresFolders",
label="Features Folders", label="Features Folders",
@ -39,7 +37,6 @@ It fuses all feature matches between image pairs into tracks. Each track represe
label="Matches Folder", label="Matches Folder",
description="Folder containing some matches.", description="Folder containing some matches.",
value="", value="",
invalidate=True,
), ),
name="matchesFolders", name="matchesFolders",
label="Matches Folders", label="Matches Folders",
@ -52,7 +49,6 @@ It fuses all feature matches between image pairs into tracks. Each track represe
values=DESCRIBER_TYPES, values=DESCRIBER_TYPES,
value=["dspsift"], value=["dspsift"],
exclusive=False, exclusive=False,
invalidate=True,
joinChar=",", joinChar=",",
), ),
desc.IntParam( desc.IntParam(
@ -61,7 +57,6 @@ It fuses all feature matches between image pairs into tracks. Each track represe
description="Minimum track length.", description="Minimum track length.",
value=2, value=2,
range=(2, 10, 1), range=(2, 10, 1),
invalidate=True,
), ),
desc.BoolParam( desc.BoolParam(
name="useOnlyMatchesFromInputFolder", name="useOnlyMatchesFromInputFolder",
@ -78,7 +73,6 @@ It fuses all feature matches between image pairs into tracks. Each track represe
description="Enable/Disable the track forks removal. A track contains a fork when incoherent matches\n" description="Enable/Disable the track forks removal. A track contains a fork when incoherent matches\n"
"lead to multiple features in the same image for a single track.", "lead to multiple features in the same image for a single track.",
value=False, value=False,
invalidate=True,
), ),
desc.ChoiceParam( desc.ChoiceParam(
name="verboseLevel", name="verboseLevel",
@ -87,7 +81,6 @@ It fuses all feature matches between image pairs into tracks. Each track represe
values=VERBOSE_LEVEL, values=VERBOSE_LEVEL,
value="info", value="info",
exclusive=True, exclusive=True,
invalidate=False,
), ),
] ]
@ -97,6 +90,5 @@ It fuses all feature matches between image pairs into tracks. Each track represe
label="Tracks", label="Tracks",
description="Path to the output tracks file.", description="Path to the output tracks file.",
value=desc.Node.internalFolder + "tracksFile.json", value=desc.Node.internalFolder + "tracksFile.json",
invalidate=False,
), ),
] ]

View file

@ -42,28 +42,24 @@ One frame per viewpoint will be rendered, and the undistorted views can optional
label="Cameras", label="Cameras",
description="SfMData with the views, poses and intrinsics to use (in JSON format).", description="SfMData with the views, poses and intrinsics to use (in JSON format).",
value="", value="",
invalidate=True,
), ),
desc.File( desc.File(
name="model", name="model",
label="Model", label="Model",
description="Point cloud (.abc) or mesh (.obj) to render.", description="Point cloud (.abc) or mesh (.obj) to render.",
value="", value="",
invalidate=True,
), ),
desc.BoolParam( desc.BoolParam(
name="useBackground", name="useBackground",
label="Display Background", label="Display Background",
description="Use the undistorted images as background.", description="Use the undistorted images as background.",
value=True, value=True,
invalidate=True,
), ),
desc.File( desc.File(
name="undistortedImages", name="undistortedImages",
label="Undistorted Images", label="Undistorted Images",
description="Folder containing the undistorted images.", description="Folder containing the undistorted images.",
value="", value="",
invalidate=True,
enabled=lambda node: node.useBackground.value, enabled=lambda node: node.useBackground.value,
), ),
desc.BoolParam( desc.BoolParam(
@ -71,14 +67,12 @@ One frame per viewpoint will be rendered, and the undistorted views can optional
label="Apply Masks", label="Apply Masks",
description="Apply mask to the rendered geometry.", description="Apply mask to the rendered geometry.",
value=True, value=True,
invalidate=True,
), ),
desc.File( desc.File(
name="masks", name="masks",
label="Masks", label="Masks",
description="Folder containing the masks.", description="Folder containing the masks.",
value="", value="",
invalidate=True,
enabled=lambda node: node.useMasks.value, enabled=lambda node: node.useMasks.value,
), ),
desc.GroupAttribute( desc.GroupAttribute(
@ -94,7 +88,6 @@ One frame per viewpoint will be rendered, and the undistorted views can optional
description="Scale of particles used for the point cloud.", description="Scale of particles used for the point cloud.",
value=0.01, value=0.01,
range=(0.01, 1.0, 0.01), range=(0.01, 1.0, 0.01),
invalidate=True,
), ),
desc.ChoiceParam( desc.ChoiceParam(
name="particleColor", name="particleColor",
@ -103,7 +96,6 @@ One frame per viewpoint will be rendered, and the undistorted views can optional
value="Red", value="Red",
values=["Grey", "White", "Red", "Green", "Magenta"], values=["Grey", "White", "Red", "Green", "Magenta"],
exclusive=True, exclusive=True,
invalidate=True,
), ),
], ],
), ),
@ -121,7 +113,6 @@ One frame per viewpoint will be rendered, and the undistorted views can optional
value="wireframe", value="wireframe",
values=["wireframe", "line_art"], values=["wireframe", "line_art"],
exclusive=True, exclusive=True,
invalidate=True,
), ),
desc.ChoiceParam( desc.ChoiceParam(
name="edgeColor", name="edgeColor",
@ -130,7 +121,6 @@ One frame per viewpoint will be rendered, and the undistorted views can optional
value="Red", value="Red",
values=["Grey", "White", "Red", "Green", "Magenta"], values=["Grey", "White", "Red", "Green", "Magenta"],
exclusive=True, exclusive=True,
invalidate=True,
), ),
], ],
), ),
@ -142,7 +132,6 @@ One frame per viewpoint will be rendered, and the undistorted views can optional
label="Output", label="Output",
description="Output folder.", description="Output folder.",
value=desc.Node.internalFolder, value=desc.Node.internalFolder,
invalidate=False,
), ),
desc.File( desc.File(
name="frames", name="frames",
@ -150,7 +139,6 @@ One frame per viewpoint will be rendered, and the undistorted views can optional
description="Frames rendered in Blender.", description="Frames rendered in Blender.",
semantic="image", semantic="image",
value=desc.Node.internalFolder + "<FILESTEM>_preview.jpg", value=desc.Node.internalFolder + "<FILESTEM>_preview.jpg",
invalidate=False,
group="", group="",
), ),
] ]