mirror of
https://github.com/alicevision/Meshroom.git
synced 2025-05-15 18:16:57 +02:00
[nodes] Remove invalidate=True
from descriptions
This commit is contained in:
parent
07b65499ce
commit
41a1b47c43
81 changed files with 8 additions and 1076 deletions
|
@ -18,21 +18,18 @@ Overwrite intrinsics with a calibrated intrinsic.
|
|||
label="SfMData",
|
||||
description="Input SfMData file.",
|
||||
value="",
|
||||
invalidate=True,
|
||||
),
|
||||
desc.File(
|
||||
name="calibration",
|
||||
label="Calibration",
|
||||
description="Calibration file (SfmData or Lens calibration file).",
|
||||
value="",
|
||||
invalidate=True,
|
||||
),
|
||||
desc.BoolParam(
|
||||
name="useJson",
|
||||
label="Use Lens Calibration File",
|
||||
description="Calibration is a Lens calibration file generated using 3Dequalizer instead of an sfmData.",
|
||||
value=False,
|
||||
invalidate=True,
|
||||
),
|
||||
desc.ChoiceParam(
|
||||
name="verboseLevel",
|
||||
|
@ -40,7 +37,6 @@ Overwrite intrinsics with a calibrated intrinsic.
|
|||
description="Verbosity level (fatal, error, warning, info, debug, trace).",
|
||||
values=VERBOSE_LEVEL,
|
||||
value="info",
|
||||
invalidate=False,
|
||||
exclusive=True,
|
||||
),
|
||||
]
|
||||
|
@ -51,6 +47,5 @@ Overwrite intrinsics with a calibrated intrinsic.
|
|||
label="SMData",
|
||||
description="Path to the output SfMData file.",
|
||||
value=desc.Node.internalFolder + "sfmData.sfm",
|
||||
invalidate=False,
|
||||
),
|
||||
]
|
||||
|
|
|
@ -20,7 +20,6 @@ class CameraCalibration(desc.AVCommandLineNode):
|
|||
" - image sequence like \"/path/to/seq.@.jpg\".\n"
|
||||
" - video file.",
|
||||
value="",
|
||||
invalidate=True,
|
||||
),
|
||||
desc.ChoiceParam(
|
||||
name="pattern",
|
||||
|
@ -29,7 +28,6 @@ class CameraCalibration(desc.AVCommandLineNode):
|
|||
value="CHESSBOARD",
|
||||
values=["CHESSBOARD", "CIRCLES", "ASYMMETRIC_CIRCLES", "ASYMMETRIC_CCTAG"],
|
||||
exclusive=True,
|
||||
invalidate=True,
|
||||
),
|
||||
desc.GroupAttribute(
|
||||
name="size",
|
||||
|
@ -42,7 +40,6 @@ class CameraCalibration(desc.AVCommandLineNode):
|
|||
description="",
|
||||
value=7,
|
||||
range=(0, 10000, 1),
|
||||
invalidate=True,
|
||||
),
|
||||
desc.IntParam(
|
||||
name="height",
|
||||
|
@ -50,7 +47,6 @@ class CameraCalibration(desc.AVCommandLineNode):
|
|||
description="",
|
||||
value=5,
|
||||
range=(0, 10000, 1),
|
||||
invalidate=True,
|
||||
),
|
||||
],
|
||||
),
|
||||
|
@ -60,7 +56,6 @@ class CameraCalibration(desc.AVCommandLineNode):
|
|||
description="Size of the grid's square cells (mm).",
|
||||
value=1.0,
|
||||
range=(0.0, 100.0, 1.0),
|
||||
invalidate=True,
|
||||
),
|
||||
desc.IntParam(
|
||||
name="nbDistortionCoef",
|
||||
|
@ -68,7 +63,6 @@ class CameraCalibration(desc.AVCommandLineNode):
|
|||
description="Number of distortion coefficients.",
|
||||
value=3,
|
||||
range=(0, 5, 1),
|
||||
invalidate=True,
|
||||
),
|
||||
desc.IntParam(
|
||||
name="maxFrames",
|
||||
|
@ -76,7 +70,6 @@ class CameraCalibration(desc.AVCommandLineNode):
|
|||
description="Maximum number of frames to extract from the video file.",
|
||||
value=0,
|
||||
range=(0, 5, 1),
|
||||
invalidate=True,
|
||||
),
|
||||
desc.IntParam(
|
||||
name="maxCalibFrames",
|
||||
|
@ -84,7 +77,6 @@ class CameraCalibration(desc.AVCommandLineNode):
|
|||
description="Maximum number of frames to use to calibrate from the selected frames.",
|
||||
value=100,
|
||||
range=(0, 1000, 1),
|
||||
invalidate=True,
|
||||
),
|
||||
desc.IntParam(
|
||||
name="calibGridSize",
|
||||
|
@ -92,7 +84,6 @@ class CameraCalibration(desc.AVCommandLineNode):
|
|||
description="Define the number of cells per edge.",
|
||||
value=10,
|
||||
range=(0, 50, 1),
|
||||
invalidate=True,
|
||||
),
|
||||
desc.IntParam(
|
||||
name="minInputFrames",
|
||||
|
@ -100,7 +91,6 @@ class CameraCalibration(desc.AVCommandLineNode):
|
|||
description="Minimum number of frames to limit the refinement loop.",
|
||||
value=10,
|
||||
range=(0, 100, 1),
|
||||
invalidate=True,
|
||||
),
|
||||
desc.FloatParam(
|
||||
name="maxTotalAvgErr",
|
||||
|
@ -108,21 +98,18 @@ class CameraCalibration(desc.AVCommandLineNode):
|
|||
description="Maximum total average error.",
|
||||
value=0.10000000000000001,
|
||||
range=(0.0, 1.0, 0.01),
|
||||
invalidate=True,
|
||||
),
|
||||
desc.File(
|
||||
name="debugRejectedImgFolder",
|
||||
label="Debug Rejected Img Folder",
|
||||
description="Folder to export images that were deleted during the refinement loop.",
|
||||
value="",
|
||||
invalidate=True,
|
||||
),
|
||||
desc.File(
|
||||
name="debugSelectedImgFolder",
|
||||
label="Debug Selected Img Folder",
|
||||
description="Folder to export debug images.",
|
||||
value="",
|
||||
invalidate=True,
|
||||
),
|
||||
desc.ChoiceParam(
|
||||
name="verboseLevel",
|
||||
|
@ -131,7 +118,6 @@ class CameraCalibration(desc.AVCommandLineNode):
|
|||
values=VERBOSE_LEVEL,
|
||||
value="info",
|
||||
exclusive=True,
|
||||
invalidate=False,
|
||||
),
|
||||
]
|
||||
|
||||
|
@ -141,6 +127,5 @@ class CameraCalibration(desc.AVCommandLineNode):
|
|||
label="Output",
|
||||
description="Output filename for intrinsic [and extrinsic] parameters.",
|
||||
value=desc.Node.internalFolder + "/cameraCalibration.cal",
|
||||
invalidate=False,
|
||||
),
|
||||
]
|
||||
|
|
|
@ -17,7 +17,6 @@ Viewpoint = [
|
|||
label="ID",
|
||||
description="Image UID.",
|
||||
value=-1,
|
||||
invalidate=True,
|
||||
range=None,
|
||||
),
|
||||
desc.IntParam(
|
||||
|
@ -25,7 +24,6 @@ Viewpoint = [
|
|||
label="Pose ID",
|
||||
description="Pose ID.",
|
||||
value=-1,
|
||||
invalidate=True,
|
||||
range=None,
|
||||
),
|
||||
desc.File(
|
||||
|
@ -33,14 +31,12 @@ Viewpoint = [
|
|||
label="Image Path",
|
||||
description="Image filepath.",
|
||||
value="",
|
||||
invalidate=True,
|
||||
),
|
||||
desc.IntParam(
|
||||
name="intrinsicId",
|
||||
label="Intrinsic",
|
||||
description="Internal camera parameters.",
|
||||
value=-1,
|
||||
invalidate=True,
|
||||
range=None,
|
||||
),
|
||||
desc.IntParam(
|
||||
|
@ -48,7 +44,6 @@ Viewpoint = [
|
|||
label="Rig",
|
||||
description="Rig parameters.",
|
||||
value=-1,
|
||||
invalidate=True,
|
||||
range=None,
|
||||
),
|
||||
desc.IntParam(
|
||||
|
@ -56,7 +51,6 @@ Viewpoint = [
|
|||
label="Rig Sub-Pose",
|
||||
description="Rig sub-pose parameters.",
|
||||
value=-1,
|
||||
invalidate=True,
|
||||
range=None,
|
||||
),
|
||||
desc.StringParam(
|
||||
|
@ -81,7 +75,6 @@ Intrinsic = [
|
|||
label="ID",
|
||||
description="Intrinsic UID.",
|
||||
value=-1,
|
||||
invalidate=True,
|
||||
range=None,
|
||||
),
|
||||
desc.FloatParam(
|
||||
|
@ -92,7 +85,6 @@ Intrinsic = [
|
|||
"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.",
|
||||
value=-1.0,
|
||||
invalidate=True,
|
||||
range=None,
|
||||
),
|
||||
desc.FloatParam(
|
||||
|
@ -100,7 +92,6 @@ Intrinsic = [
|
|||
label="Focal Length",
|
||||
description="Known/calibrated focal length (in mm).",
|
||||
value=1000.0,
|
||||
invalidate=True,
|
||||
range=(0.0, 10000.0, 1.0),
|
||||
),
|
||||
desc.FloatParam(
|
||||
|
@ -108,7 +99,6 @@ Intrinsic = [
|
|||
label="Pixel Ratio",
|
||||
description="Ratio between the pixel width and the pixel height.",
|
||||
value=1.0,
|
||||
invalidate=True,
|
||||
range=(0.0, 10.0, 0.1),
|
||||
),
|
||||
desc.BoolParam(
|
||||
|
@ -116,28 +106,24 @@ Intrinsic = [
|
|||
label="Pixel Ratio Locked",
|
||||
description="The pixel ratio value is locked for estimation.",
|
||||
value=True,
|
||||
invalidate=True,
|
||||
),
|
||||
desc.BoolParam(
|
||||
name="scaleLocked",
|
||||
label="Focal length Locked",
|
||||
description="The focal length is locked for estimation.",
|
||||
value=False,
|
||||
invalidate=True,
|
||||
),
|
||||
desc.BoolParam(
|
||||
name="offsetLocked",
|
||||
label="Optical Center Locked",
|
||||
description="The optical center coordinates are locked for estimation.",
|
||||
value=False,
|
||||
invalidate=True,
|
||||
),
|
||||
desc.BoolParam(
|
||||
name="distortionLocked",
|
||||
label="Distortion Locked",
|
||||
description="The distortion parameters are locked for estimation.",
|
||||
value=False,
|
||||
invalidate=True,
|
||||
),
|
||||
desc.ChoiceParam(
|
||||
name="type",
|
||||
|
@ -148,7 +134,6 @@ Intrinsic = [
|
|||
value="pinhole",
|
||||
values=["pinhole", "equidistant"],
|
||||
exclusive=True,
|
||||
invalidate=True,
|
||||
),
|
||||
desc.ChoiceParam(
|
||||
name="distortionType",
|
||||
|
@ -163,14 +148,12 @@ Intrinsic = [
|
|||
value="radialk3",
|
||||
values=["none", "radialk1", "radialk3", "radialk3pt", "brown", "fisheye4", "fisheye1"],
|
||||
exclusive=True,
|
||||
invalidate=True,
|
||||
),
|
||||
desc.IntParam(
|
||||
name="width",
|
||||
label="Width",
|
||||
description="Image width.",
|
||||
value=0,
|
||||
invalidate=True,
|
||||
range=(0, 10000, 1),
|
||||
),
|
||||
desc.IntParam(
|
||||
|
@ -178,7 +161,6 @@ Intrinsic = [
|
|||
label="Height",
|
||||
description="Image height.",
|
||||
value=0,
|
||||
invalidate=True,
|
||||
range=(0, 10000, 1),
|
||||
),
|
||||
desc.FloatParam(
|
||||
|
@ -186,7 +168,6 @@ Intrinsic = [
|
|||
label="Sensor Width",
|
||||
description="Sensor width (in mm).",
|
||||
value=36.0,
|
||||
invalidate=True,
|
||||
range=(0.0, 1000.0, 1.0),
|
||||
),
|
||||
desc.FloatParam(
|
||||
|
@ -194,7 +175,6 @@ Intrinsic = [
|
|||
label="Sensor Height",
|
||||
description="Sensor height (in mm).",
|
||||
value=24.0,
|
||||
invalidate=True,
|
||||
range=(0.0, 1000.0, 1.0),
|
||||
),
|
||||
desc.StringParam(
|
||||
|
@ -202,7 +182,6 @@ Intrinsic = [
|
|||
label="Serial Number",
|
||||
description="Device serial number (Camera UID and Lens UID combined).",
|
||||
value="",
|
||||
invalidate=True,
|
||||
),
|
||||
desc.GroupAttribute(
|
||||
name="principalPoint",
|
||||
|
@ -214,7 +193,6 @@ Intrinsic = [
|
|||
label="x",
|
||||
description="",
|
||||
value=0.0,
|
||||
invalidate=True,
|
||||
range=(0.0, 10000.0, 1.0),
|
||||
),
|
||||
desc.FloatParam(
|
||||
|
@ -222,7 +200,6 @@ Intrinsic = [
|
|||
label="y",
|
||||
description="",
|
||||
value=0.0,
|
||||
invalidate=True,
|
||||
range=(0.0, 10000.0, 1.0),
|
||||
),
|
||||
],
|
||||
|
@ -238,7 +215,6 @@ Intrinsic = [
|
|||
values=["calibrated", "estimated", "unknown", "none"],
|
||||
value="none",
|
||||
exclusive=True,
|
||||
invalidate=True,
|
||||
),
|
||||
desc.ChoiceParam(
|
||||
name="distortionInitializationMode",
|
||||
|
@ -251,7 +227,6 @@ Intrinsic = [
|
|||
values=["calibrated", "estimated", "unknown", "none"],
|
||||
value="none",
|
||||
exclusive=True,
|
||||
invalidate=True,
|
||||
),
|
||||
desc.ListAttribute(
|
||||
name="distortionParams",
|
||||
|
@ -260,7 +235,6 @@ Intrinsic = [
|
|||
label="",
|
||||
description="",
|
||||
value=0.0,
|
||||
invalidate=True,
|
||||
range=(-0.1, 0.1, 0.01),
|
||||
),
|
||||
label="Distortion Params",
|
||||
|
@ -276,7 +250,6 @@ Intrinsic = [
|
|||
label="x",
|
||||
description="",
|
||||
value=0.0,
|
||||
invalidate=True,
|
||||
range=(0.0, 10000.0, 1.0),
|
||||
),
|
||||
desc.FloatParam(
|
||||
|
@ -284,7 +257,6 @@ Intrinsic = [
|
|||
label="y",
|
||||
description="",
|
||||
value=0.0,
|
||||
invalidate=True,
|
||||
range=(0.0, 10000.0, 1.0),
|
||||
),
|
||||
],
|
||||
|
@ -296,7 +268,6 @@ Intrinsic = [
|
|||
label="",
|
||||
description="",
|
||||
value=0.0,
|
||||
invalidate=True,
|
||||
range=(-0.1, 0.1, 0.01),
|
||||
),
|
||||
label="Undistortion Params",
|
||||
|
@ -307,7 +278,6 @@ Intrinsic = [
|
|||
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.",
|
||||
value=False,
|
||||
invalidate=True,
|
||||
),
|
||||
]
|
||||
|
||||
|
@ -420,7 +390,6 @@ The needed metadata are:
|
|||
label="LCP Generic Search",
|
||||
description="The lens name and camera maker are used to match the LCP database, but the camera model is ignored.",
|
||||
value=True,
|
||||
invalidate=True,
|
||||
advanced=True,
|
||||
),
|
||||
desc.FloatParam(
|
||||
|
@ -457,7 +426,6 @@ The needed metadata are:
|
|||
values=RAW_COLOR_INTERPRETATION,
|
||||
value="DCPLinearProcessing" if os.environ.get("ALICEVISION_COLOR_PROFILE_DB", "") else "LibRawWhiteBalancing",
|
||||
exclusive=True,
|
||||
invalidate=True,
|
||||
),
|
||||
desc.File(
|
||||
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.",
|
||||
value=True,
|
||||
enabled=lambda node: node.rawColorInterpretation.value.startswith("DCP"),
|
||||
invalidate=True,
|
||||
),
|
||||
desc.ChoiceParam(
|
||||
name="viewIdMethod",
|
||||
|
@ -510,7 +477,6 @@ The needed metadata are:
|
|||
values=VERBOSE_LEVEL,
|
||||
value="info",
|
||||
exclusive=True,
|
||||
invalidate=False,
|
||||
),
|
||||
]
|
||||
|
||||
|
@ -520,7 +486,6 @@ The needed metadata are:
|
|||
label="SfMData",
|
||||
description="Output SfMData.",
|
||||
value=desc.Node.internalFolder + "cameraInit.sfm",
|
||||
invalidate=False,
|
||||
),
|
||||
]
|
||||
|
||||
|
|
|
@ -18,28 +18,24 @@ class CameraLocalization(desc.AVCommandLineNode):
|
|||
label="SfMData",
|
||||
description="The SfMData file generated by AliceVision.",
|
||||
value="",
|
||||
invalidate=True,
|
||||
),
|
||||
desc.File(
|
||||
name="mediafile",
|
||||
label="Media File",
|
||||
description="The folder path or the filename for the media to track.",
|
||||
value="",
|
||||
invalidate=True,
|
||||
),
|
||||
desc.File(
|
||||
name="visualDebug",
|
||||
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.",
|
||||
value="",
|
||||
invalidate=True,
|
||||
),
|
||||
desc.File(
|
||||
name="descriptorPath",
|
||||
label="Descriptor Path",
|
||||
description="Folder containing the descriptors for all the images (ie. the *.desc.).",
|
||||
value="",
|
||||
invalidate=True,
|
||||
),
|
||||
desc.ChoiceParam(
|
||||
name="matchDescTypes",
|
||||
|
@ -48,7 +44,6 @@ class CameraLocalization(desc.AVCommandLineNode):
|
|||
values=DESCRIBER_TYPES,
|
||||
value=["dspsift"],
|
||||
exclusive=False,
|
||||
invalidate=True,
|
||||
joinChar=",",
|
||||
),
|
||||
desc.ChoiceParam(
|
||||
|
@ -58,7 +53,6 @@ class CameraLocalization(desc.AVCommandLineNode):
|
|||
value="normal",
|
||||
values=["low", "medium", "normal", "high", "ultra"],
|
||||
exclusive=True,
|
||||
invalidate=True,
|
||||
),
|
||||
desc.ChoiceParam(
|
||||
name="resectionEstimator",
|
||||
|
@ -67,7 +61,6 @@ class CameraLocalization(desc.AVCommandLineNode):
|
|||
value="acransac",
|
||||
values=["acransac", "loransac"],
|
||||
exclusive=True,
|
||||
invalidate=True,
|
||||
),
|
||||
desc.ChoiceParam(
|
||||
name="matchingEstimator",
|
||||
|
@ -76,21 +69,18 @@ class CameraLocalization(desc.AVCommandLineNode):
|
|||
value="acransac",
|
||||
values=["acransac", "loransac"],
|
||||
exclusive=True,
|
||||
invalidate=True,
|
||||
),
|
||||
desc.File(
|
||||
name="calibration",
|
||||
label="Calibration",
|
||||
description="Calibration file.",
|
||||
value="",
|
||||
invalidate=True,
|
||||
),
|
||||
desc.BoolParam(
|
||||
name="refineIntrinsics",
|
||||
label="Refine Intrinsics",
|
||||
description="Enable/Disable camera intrinsics refinement for each localized image.",
|
||||
value=False,
|
||||
invalidate=True,
|
||||
),
|
||||
desc.FloatParam(
|
||||
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.",
|
||||
value=4.0,
|
||||
range=(0.1, 50.0, 0.1),
|
||||
invalidate=True,
|
||||
),
|
||||
desc.IntParam(
|
||||
name="nbImageMatch",
|
||||
|
@ -106,7 +95,6 @@ class CameraLocalization(desc.AVCommandLineNode):
|
|||
description="[voctree] Number of images to retrieve in database.",
|
||||
value=4,
|
||||
range=(1, 1000, 1),
|
||||
invalidate=True,
|
||||
),
|
||||
desc.IntParam(
|
||||
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.",
|
||||
value=10,
|
||||
range=(1, 100, 1),
|
||||
invalidate=True,
|
||||
),
|
||||
desc.IntParam(
|
||||
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.",
|
||||
value=3,
|
||||
range=(2, 50, 1),
|
||||
invalidate=True,
|
||||
),
|
||||
desc.File(
|
||||
name="voctree",
|
||||
label="Voctree",
|
||||
description="[voctree] Filename for the vocabulary tree.",
|
||||
value="${ALICEVISION_VOCTREE}",
|
||||
invalidate=True,
|
||||
),
|
||||
desc.File(
|
||||
name="voctreeWeights",
|
||||
label="Voctree Weights",
|
||||
description="[voctree] Filename for the vocabulary tree weights.",
|
||||
value="",
|
||||
invalidate=True,
|
||||
),
|
||||
desc.ChoiceParam(
|
||||
name="algorithm",
|
||||
|
@ -145,7 +129,6 @@ class CameraLocalization(desc.AVCommandLineNode):
|
|||
value="AllResults",
|
||||
values=["FirstBest", "AllResults"],
|
||||
exclusive=True,
|
||||
invalidate=True,
|
||||
),
|
||||
desc.FloatParam(
|
||||
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.",
|
||||
value=4.0,
|
||||
range=(0.0, 50.0, 1.0),
|
||||
invalidate=True,
|
||||
),
|
||||
desc.IntParam(
|
||||
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).",
|
||||
value=10,
|
||||
range=(0, 100, 1),
|
||||
invalidate=True,
|
||||
),
|
||||
desc.BoolParam(
|
||||
name="robustMatching",
|
||||
label="Robust Matching",
|
||||
description="[voctree] Enable/Disable the robust matching between query and database images, all putative matches will be considered.",
|
||||
value=True,
|
||||
invalidate=True,
|
||||
),
|
||||
desc.IntParam(
|
||||
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.",
|
||||
value=5,
|
||||
range=(1, 100, 1),
|
||||
invalidate=True,
|
||||
),
|
||||
desc.StringParam(
|
||||
name="globalBundle",
|
||||
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.",
|
||||
value="",
|
||||
invalidate=True,
|
||||
),
|
||||
desc.BoolParam(
|
||||
name="noDistortion",
|
||||
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.",
|
||||
value=False,
|
||||
invalidate=True,
|
||||
),
|
||||
desc.BoolParam(
|
||||
name="noBArefineIntrinsics",
|
||||
label="No BA Refine Intrinsics",
|
||||
description="[bundle adjustment] If set to true, does not refine intrinsics during BA.",
|
||||
value=False,
|
||||
invalidate=True,
|
||||
),
|
||||
desc.IntParam(
|
||||
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.",
|
||||
value=2,
|
||||
range=(2, 50, 1),
|
||||
invalidate=True,
|
||||
),
|
||||
desc.ChoiceParam(
|
||||
name="verboseLevel",
|
||||
|
@ -214,7 +189,6 @@ class CameraLocalization(desc.AVCommandLineNode):
|
|||
values=VERBOSE_LEVEL,
|
||||
value="info",
|
||||
exclusive=True,
|
||||
invalidate=False,
|
||||
),
|
||||
]
|
||||
|
||||
|
@ -224,13 +198,11 @@ class CameraLocalization(desc.AVCommandLineNode):
|
|||
label="Alembic",
|
||||
description="Filename for the SfMData export file (where camera poses will be stored).",
|
||||
value=desc.Node.internalFolder + "trackedCameras.abc",
|
||||
invalidate=False,
|
||||
),
|
||||
desc.File(
|
||||
name="outputJSON",
|
||||
label="JSON File",
|
||||
description="Filename for the localization results as .json.",
|
||||
value=desc.Node.internalFolder + "trackedCameras.json",
|
||||
invalidate=False,
|
||||
),
|
||||
]
|
||||
|
|
|
@ -18,7 +18,6 @@ class CameraRigCalibration(desc.AVCommandLineNode):
|
|||
label="SfMData",
|
||||
description="Input SfMData file.",
|
||||
value="",
|
||||
invalidate=True,
|
||||
),
|
||||
desc.File(
|
||||
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"
|
||||
"(one image path per line) for each camera of the rig (eg. --mediapath /path/to/cam1.mov /path/to/cam2.mov).",
|
||||
value="",
|
||||
invalidate=True,
|
||||
),
|
||||
desc.File(
|
||||
name="cameraIntrinsics",
|
||||
label="Camera Intrinsics",
|
||||
description="The intrinsics calibration file for each camera of the rig (eg. --cameraIntrinsics /path/to/calib1.txt /path/to/calib2.txt).",
|
||||
value="",
|
||||
invalidate=True,
|
||||
),
|
||||
desc.File(
|
||||
name="export",
|
||||
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'.",
|
||||
value="trackedcameras.abc",
|
||||
invalidate=True,
|
||||
),
|
||||
desc.File(
|
||||
name="descriptorPath",
|
||||
label="Descriptor Path",
|
||||
description="Folder containing the .desc.",
|
||||
value="",
|
||||
invalidate=True,
|
||||
),
|
||||
desc.ChoiceParam(
|
||||
name="matchDescTypes",
|
||||
|
@ -56,7 +51,6 @@ class CameraRigCalibration(desc.AVCommandLineNode):
|
|||
values=DESCRIBER_TYPES,
|
||||
value=["dspsift"],
|
||||
exclusive=False,
|
||||
invalidate=True,
|
||||
joinChar=",",
|
||||
),
|
||||
desc.ChoiceParam(
|
||||
|
@ -66,7 +60,6 @@ class CameraRigCalibration(desc.AVCommandLineNode):
|
|||
value="normal",
|
||||
values=["low", "medium", "normal", "high", "ultra"],
|
||||
exclusive=True,
|
||||
invalidate=True,
|
||||
),
|
||||
desc.ChoiceParam(
|
||||
name="resectionEstimator",
|
||||
|
@ -75,7 +68,6 @@ class CameraRigCalibration(desc.AVCommandLineNode):
|
|||
value="acransac",
|
||||
values=["acransac", "loransac"],
|
||||
exclusive=True,
|
||||
invalidate=True,
|
||||
),
|
||||
desc.ChoiceParam(
|
||||
name="matchingEstimator",
|
||||
|
@ -84,14 +76,12 @@ class CameraRigCalibration(desc.AVCommandLineNode):
|
|||
value="acransac",
|
||||
values=["acransac", "loransac"],
|
||||
exclusive=True,
|
||||
invalidate=True,
|
||||
),
|
||||
desc.StringParam(
|
||||
name="refineIntrinsics",
|
||||
label="Refine Intrinsics",
|
||||
description="Enable/Disable camera intrinsics refinement for each localized image.",
|
||||
value="",
|
||||
invalidate=True,
|
||||
),
|
||||
desc.FloatParam(
|
||||
name="reprojectionError",
|
||||
|
@ -100,7 +90,6 @@ class CameraRigCalibration(desc.AVCommandLineNode):
|
|||
"If set to 0, it lets the ACRansac select an optimal value.",
|
||||
value=4.0,
|
||||
range=(0.0, 10.0, 0.1),
|
||||
invalidate=True,
|
||||
),
|
||||
desc.IntParam(
|
||||
name="maxInputFrames",
|
||||
|
@ -108,21 +97,18 @@ class CameraRigCalibration(desc.AVCommandLineNode):
|
|||
description="Maximum number of frames to read in input. 0 means no limit.",
|
||||
value=0,
|
||||
range=(0, 1000, 1),
|
||||
invalidate=True,
|
||||
),
|
||||
desc.File(
|
||||
name="voctree",
|
||||
label="Voctree",
|
||||
description="[voctree] Filename for the vocabulary tree.",
|
||||
value="${ALICEVISION_VOCTREE}",
|
||||
invalidate=True,
|
||||
),
|
||||
desc.File(
|
||||
name="voctreeWeights",
|
||||
label="Voctree Weights",
|
||||
description="[voctree] Filename for the vocabulary tree weights.",
|
||||
value="",
|
||||
invalidate=True,
|
||||
),
|
||||
desc.ChoiceParam(
|
||||
name="algorithm",
|
||||
|
@ -131,7 +117,6 @@ class CameraRigCalibration(desc.AVCommandLineNode):
|
|||
value="AllResults",
|
||||
values=["FirstBest", "AllResults"],
|
||||
exclusive=True,
|
||||
invalidate=True,
|
||||
),
|
||||
desc.IntParam(
|
||||
name="nbImageMatch",
|
||||
|
@ -139,7 +124,6 @@ class CameraRigCalibration(desc.AVCommandLineNode):
|
|||
description="[voctree] Number of images to retrieve in the database.",
|
||||
value=4,
|
||||
range=(0, 50, 1),
|
||||
invalidate=True,
|
||||
),
|
||||
desc.IntParam(
|
||||
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.",
|
||||
value=10,
|
||||
range=(0, 100, 1),
|
||||
invalidate=True,
|
||||
),
|
||||
desc.FloatParam(
|
||||
name="matchingError",
|
||||
|
@ -156,7 +139,6 @@ class CameraRigCalibration(desc.AVCommandLineNode):
|
|||
"If set to 0, it lets the ACRansac select an optimal value.",
|
||||
value=4.0,
|
||||
range=(0.0, 10.0, 0.1),
|
||||
invalidate=True,
|
||||
),
|
||||
desc.IntParam(
|
||||
name="nNearestKeyFrames",
|
||||
|
@ -164,7 +146,6 @@ class CameraRigCalibration(desc.AVCommandLineNode):
|
|||
description="[cctag] Number of images to retrieve in database.",
|
||||
value=5,
|
||||
range=(0, 50, 1),
|
||||
invalidate=True,
|
||||
),
|
||||
desc.ChoiceParam(
|
||||
name="verboseLevel",
|
||||
|
@ -173,7 +154,6 @@ class CameraRigCalibration(desc.AVCommandLineNode):
|
|||
values=VERBOSE_LEVEL,
|
||||
value="info",
|
||||
exclusive=True,
|
||||
invalidate=False,
|
||||
),
|
||||
]
|
||||
|
||||
|
@ -183,6 +163,5 @@ class CameraRigCalibration(desc.AVCommandLineNode):
|
|||
label="Output File",
|
||||
description="The name of the file to store the calibration data in.",
|
||||
value=desc.Node.internalFolder + "cameraRigCalibration.rigCal",
|
||||
invalidate=False,
|
||||
),
|
||||
]
|
||||
|
|
|
@ -18,35 +18,30 @@ class CameraRigLocalization(desc.AVCommandLineNode):
|
|||
label="SfMData",
|
||||
description="The input SfMData file.",
|
||||
value="",
|
||||
invalidate=True,
|
||||
),
|
||||
desc.File(
|
||||
name="mediapath",
|
||||
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).",
|
||||
value="",
|
||||
invalidate=True,
|
||||
),
|
||||
desc.File(
|
||||
name="calibration",
|
||||
label="Rig Calibration File",
|
||||
description="The file containing the calibration data for the rig (subposes).",
|
||||
value="",
|
||||
invalidate=True,
|
||||
),
|
||||
desc.File(
|
||||
name="cameraIntrinsics",
|
||||
label="Camera Intrinsics",
|
||||
description="The intrinsics calibration file for each camera of the rig (eg. --cameraIntrinsics /path/to/calib1.txt /path/to/calib2.txt).",
|
||||
value="",
|
||||
invalidate=True,
|
||||
),
|
||||
desc.File(
|
||||
name="descriptorPath",
|
||||
label="Descriptor Path",
|
||||
description="Folder containing the .desc.",
|
||||
value="",
|
||||
invalidate=True,
|
||||
),
|
||||
desc.ChoiceParam(
|
||||
name="matchDescTypes",
|
||||
|
@ -55,7 +50,6 @@ class CameraRigLocalization(desc.AVCommandLineNode):
|
|||
values=DESCRIBER_TYPES,
|
||||
value=["dspsift"],
|
||||
exclusive=False,
|
||||
invalidate=True,
|
||||
joinChar=",",
|
||||
),
|
||||
desc.ChoiceParam(
|
||||
|
@ -65,7 +59,6 @@ class CameraRigLocalization(desc.AVCommandLineNode):
|
|||
value="normal",
|
||||
values=["low", "medium", "normal", "high", "ultra"],
|
||||
exclusive=True,
|
||||
invalidate=True,
|
||||
),
|
||||
desc.ChoiceParam(
|
||||
name="resectionEstimator",
|
||||
|
@ -74,7 +67,6 @@ class CameraRigLocalization(desc.AVCommandLineNode):
|
|||
value="acransac",
|
||||
values=["acransac", "loransac"],
|
||||
exclusive=True,
|
||||
invalidate=True,
|
||||
),
|
||||
desc.ChoiceParam(
|
||||
name="matchingEstimator",
|
||||
|
@ -83,14 +75,12 @@ class CameraRigLocalization(desc.AVCommandLineNode):
|
|||
value="acransac",
|
||||
values=["acransac", "loransac"],
|
||||
exclusive=True,
|
||||
invalidate=True,
|
||||
),
|
||||
desc.StringParam(
|
||||
name="refineIntrinsics",
|
||||
label="Refine Intrinsics",
|
||||
description="Enable/Disable camera intrinsics refinement for each localized image.",
|
||||
value="",
|
||||
invalidate=True,
|
||||
),
|
||||
desc.FloatParam(
|
||||
name="reprojectionError",
|
||||
|
@ -99,14 +89,12 @@ class CameraRigLocalization(desc.AVCommandLineNode):
|
|||
"If set to 0, it lets the ACRansac select an optimal value.",
|
||||
value=4.0,
|
||||
range=(0.0, 10.0, 0.1),
|
||||
invalidate=True,
|
||||
),
|
||||
desc.BoolParam(
|
||||
name="useLocalizeRigNaive",
|
||||
label="Use Localize Rig Naive",
|
||||
description="Enable/Disable the naive method for rig localization: naive method tries to localize each camera separately.",
|
||||
value=False,
|
||||
invalidate=True,
|
||||
),
|
||||
desc.FloatParam(
|
||||
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.",
|
||||
value=0.1,
|
||||
range=(0.0, 10.0, 0.01),
|
||||
invalidate=True,
|
||||
),
|
||||
desc.File(
|
||||
name="voctree",
|
||||
label="Voctree",
|
||||
description="[voctree] Filename for the vocabulary tree.""",
|
||||
value="${ALICEVISION_VOCTREE}",
|
||||
invalidate=True,
|
||||
),
|
||||
desc.File(
|
||||
name="voctreeWeights",
|
||||
label="Voctree Weights",
|
||||
description="[voctree] Filename for the vocabulary tree weights.",
|
||||
value="",
|
||||
invalidate=True,
|
||||
),
|
||||
desc.ChoiceParam(
|
||||
name="algorithm",
|
||||
|
@ -137,7 +122,6 @@ class CameraRigLocalization(desc.AVCommandLineNode):
|
|||
value="AllResults",
|
||||
values=["FirstBest", "AllResults"],
|
||||
exclusive=True,
|
||||
invalidate=True,
|
||||
),
|
||||
desc.IntParam(
|
||||
name="nbImageMatch",
|
||||
|
@ -145,7 +129,6 @@ class CameraRigLocalization(desc.AVCommandLineNode):
|
|||
description="[voctree] Number of images to retrieve in the database.",
|
||||
value=4,
|
||||
range=(0, 100, 1),
|
||||
invalidate=True,
|
||||
),
|
||||
desc.IntParam(
|
||||
name="maxResults",
|
||||
|
@ -154,7 +137,6 @@ class CameraRigLocalization(desc.AVCommandLineNode):
|
|||
"If set to 0, it is ignored.",
|
||||
value=10,
|
||||
range=(0, 100, 1),
|
||||
invalidate=True,
|
||||
),
|
||||
desc.FloatParam(
|
||||
name="matchingError",
|
||||
|
@ -163,7 +145,6 @@ class CameraRigLocalization(desc.AVCommandLineNode):
|
|||
"If set to 0, it lets the ACRansac select an optimal value.",
|
||||
value=4.0,
|
||||
range=(0.0, 10.0, 0.1),
|
||||
invalidate=True,
|
||||
),
|
||||
desc.IntParam(
|
||||
name="nNearestKeyFrames",
|
||||
|
@ -171,7 +152,6 @@ class CameraRigLocalization(desc.AVCommandLineNode):
|
|||
description="[cctag] Number of images to retrieve in database.",
|
||||
value=5,
|
||||
range=(0, 50, 1),
|
||||
invalidate=True,
|
||||
),
|
||||
desc.ChoiceParam(
|
||||
name="verboseLevel",
|
||||
|
@ -180,7 +160,6 @@ class CameraRigLocalization(desc.AVCommandLineNode):
|
|||
values=VERBOSE_LEVEL,
|
||||
value="info",
|
||||
exclusive=True,
|
||||
invalidate=False,
|
||||
),
|
||||
]
|
||||
|
||||
|
@ -190,6 +169,5 @@ class CameraRigLocalization(desc.AVCommandLineNode):
|
|||
label="Alembic",
|
||||
description="Filename for the SfMData export file (where camera poses will be stored).",
|
||||
value=desc.Node.internalFolder + "trackedcameras.abc",
|
||||
invalidate=False,
|
||||
),
|
||||
]
|
||||
|
|
|
@ -19,14 +19,12 @@ Estimate the camera intrinsics and extrinsincs on a set of checkerboard images.
|
|||
label="Input SfMData",
|
||||
description="SfMData file.",
|
||||
value="",
|
||||
invalidate=True,
|
||||
),
|
||||
desc.File(
|
||||
name="checkerboards",
|
||||
label="Checkerboards Folder",
|
||||
description="Folder containing checkerboard JSON files.",
|
||||
value="",
|
||||
invalidate=True,
|
||||
),
|
||||
desc.FloatParam(
|
||||
name="squareSize",
|
||||
|
@ -34,7 +32,6 @@ Estimate the camera intrinsics and extrinsincs on a set of checkerboard images.
|
|||
description="Checkerboard square width in mm",
|
||||
value=10.,
|
||||
range=(0.1, 100., 0.1),
|
||||
invalidate=True,
|
||||
),
|
||||
desc.ChoiceParam(
|
||||
name="verboseLevel",
|
||||
|
@ -43,7 +40,6 @@ Estimate the camera intrinsics and extrinsincs on a set of checkerboard images.
|
|||
values=VERBOSE_LEVEL,
|
||||
value="info",
|
||||
exclusive=True,
|
||||
invalidate=False,
|
||||
),
|
||||
]
|
||||
|
||||
|
@ -53,6 +49,5 @@ Estimate the camera intrinsics and extrinsincs on a set of checkerboard images.
|
|||
label="SfMData File",
|
||||
description="Path to the output SfMData file.",
|
||||
value=desc.Node.internalFolder + "sfmData.sfm",
|
||||
invalidate=False,
|
||||
)
|
||||
]
|
||||
|
|
|
@ -22,35 +22,30 @@ The detection method also supports nested calibration grids.
|
|||
label="Input",
|
||||
description="Input SfMData file. Viewpoints must correspond to lens calibration grids.",
|
||||
value="",
|
||||
invalidate=True,
|
||||
),
|
||||
desc.BoolParam(
|
||||
name="useNestedGrids",
|
||||
label="Nested Calibration Grid",
|
||||
description="Enable if images contain nested calibration grids. These grids must be centered on the image center.",
|
||||
value=False,
|
||||
invalidate=True,
|
||||
),
|
||||
desc.BoolParam(
|
||||
name="doubleSize",
|
||||
label="Double Size",
|
||||
description="Double the image size prior to processing.",
|
||||
value=False,
|
||||
invalidate=True,
|
||||
),
|
||||
desc.BoolParam(
|
||||
name="ignorePixelAspectRatio",
|
||||
label="Ignore Pixel Aspect Ratio",
|
||||
description="Ignore pixel aspect ratio for detection.",
|
||||
value=False,
|
||||
invalidate=True,
|
||||
),
|
||||
desc.BoolParam(
|
||||
name="exportDebugImages",
|
||||
label="Export Debug Images",
|
||||
description="Export debug images.",
|
||||
value=False,
|
||||
invalidate=True,
|
||||
),
|
||||
desc.ChoiceParam(
|
||||
name="verboseLevel",
|
||||
|
@ -59,7 +54,6 @@ The detection method also supports nested calibration grids.
|
|||
values=VERBOSE_LEVEL,
|
||||
value="info",
|
||||
exclusive=True,
|
||||
invalidate=False,
|
||||
),
|
||||
]
|
||||
|
||||
|
@ -69,7 +63,6 @@ The detection method also supports nested calibration grids.
|
|||
label="Folder",
|
||||
description="Output folder.",
|
||||
value=desc.Node.internalFolder,
|
||||
invalidate=False,
|
||||
),
|
||||
desc.File(
|
||||
name="checkerLines",
|
||||
|
@ -79,6 +72,5 @@ The detection method also supports nested calibration grids.
|
|||
semantic="image",
|
||||
value=desc.Node.internalFolder + "<VIEW_ID>.png",
|
||||
group="", # do not export on the command line
|
||||
invalidate=False,
|
||||
),
|
||||
]
|
||||
|
|
|
@ -28,7 +28,6 @@ If multiple color charts are submitted, only the first one will be taken in acco
|
|||
label="Color Checker Data",
|
||||
description="Position and colorimetric data of the color checker.",
|
||||
value="",
|
||||
invalidate=True,
|
||||
),
|
||||
desc.File(
|
||||
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"
|
||||
"Supported regex: '#' matches a single digit, '@' one or more digits, '?' one character and '*' zero or more.",
|
||||
value="",
|
||||
invalidate=True,
|
||||
),
|
||||
desc.ChoiceParam(
|
||||
name="extension",
|
||||
|
@ -45,7 +43,6 @@ If multiple color charts are submitted, only the first one will be taken in acco
|
|||
value="exr",
|
||||
values=["exr", ""],
|
||||
exclusive=True,
|
||||
invalidate=True,
|
||||
),
|
||||
desc.ChoiceParam(
|
||||
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,
|
||||
value="float",
|
||||
exclusive=True,
|
||||
invalidate=True,
|
||||
),
|
||||
desc.ChoiceParam(
|
||||
name="verboseLevel",
|
||||
|
@ -67,7 +63,6 @@ If multiple color charts are submitted, only the first one will be taken in acco
|
|||
values=VERBOSE_LEVEL,
|
||||
value="info",
|
||||
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",
|
||||
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 "",
|
||||
invalidate=False,
|
||||
group="", # do not export on the command line
|
||||
),
|
||||
desc.File(
|
||||
|
@ -85,6 +79,5 @@ If multiple color charts are submitted, only the first one will be taken in acco
|
|||
label="Folder",
|
||||
description="Output images folder.",
|
||||
value=desc.Node.internalFolder,
|
||||
invalidate=False,
|
||||
),
|
||||
]
|
||||
|
|
|
@ -34,7 +34,6 @@ Dev notes:
|
|||
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.",
|
||||
value="",
|
||||
invalidate=True,
|
||||
),
|
||||
desc.IntParam(
|
||||
name="maxCount",
|
||||
|
@ -42,7 +41,6 @@ Dev notes:
|
|||
description="Maximum color charts count to detect in a single image.",
|
||||
value=1,
|
||||
range=(1, 3, 1),
|
||||
invalidate=True,
|
||||
advanced=True,
|
||||
),
|
||||
desc.BoolParam(
|
||||
|
@ -50,7 +48,6 @@ Dev notes:
|
|||
label="Debug",
|
||||
description="If checked, debug data will be generated.",
|
||||
value=False,
|
||||
invalidate=True,
|
||||
),
|
||||
desc.ChoiceParam(
|
||||
name="verboseLevel",
|
||||
|
@ -59,7 +56,6 @@ Dev notes:
|
|||
values=VERBOSE_LEVEL,
|
||||
value="info",
|
||||
exclusive=True,
|
||||
invalidate=False,
|
||||
),
|
||||
]
|
||||
|
||||
|
@ -69,6 +65,5 @@ Dev notes:
|
|||
label="Color Checker Data",
|
||||
description="Output position and colorimetric data extracted from detected color checkers in the images.",
|
||||
value=desc.Node.internalFolder + "/ccheckers.json",
|
||||
invalidate=False,
|
||||
),
|
||||
]
|
||||
|
|
|
@ -19,7 +19,6 @@ class ConvertDistortion(desc.AVCommandLineNode):
|
|||
label="Input",
|
||||
description="Input SfMData file.",
|
||||
value="",
|
||||
invalidate=True,
|
||||
),
|
||||
desc.ChoiceParam(
|
||||
name="from",
|
||||
|
@ -28,7 +27,6 @@ class ConvertDistortion(desc.AVCommandLineNode):
|
|||
value="distortion",
|
||||
values=["distortion", "undistortion"],
|
||||
exclusive=True,
|
||||
invalidate=True,
|
||||
),
|
||||
desc.ChoiceParam(
|
||||
name="to",
|
||||
|
@ -37,7 +35,6 @@ class ConvertDistortion(desc.AVCommandLineNode):
|
|||
value="undistortion",
|
||||
values=["distortion", "undistortion"],
|
||||
exclusive=True,
|
||||
invalidate=True,
|
||||
),
|
||||
desc.ChoiceParam(
|
||||
name="verboseLevel",
|
||||
|
@ -46,7 +43,6 @@ class ConvertDistortion(desc.AVCommandLineNode):
|
|||
values=VERBOSE_LEVEL,
|
||||
value="info",
|
||||
exclusive=True,
|
||||
invalidate=False,
|
||||
),
|
||||
]
|
||||
|
||||
|
@ -56,6 +52,5 @@ class ConvertDistortion(desc.AVCommandLineNode):
|
|||
label="Output",
|
||||
description="Path to the output SfMData file.",
|
||||
value=desc.Node.internalFolder + "sfm.abc",
|
||||
invalidate=False,
|
||||
),
|
||||
]
|
||||
|
|
|
@ -16,7 +16,6 @@ class ConvertMesh(desc.AVCommandLineNode):
|
|||
label="Input Mesh",
|
||||
description="Input mesh (*.obj, *.mesh, *.meshb, *.ply, *.off, *.stl).",
|
||||
value="",
|
||||
invalidate=True,
|
||||
),
|
||||
desc.ChoiceParam(
|
||||
name="outputMeshFileType",
|
||||
|
@ -25,7 +24,6 @@ class ConvertMesh(desc.AVCommandLineNode):
|
|||
value="obj",
|
||||
values=["gltf", "obj", "fbx", "stl"],
|
||||
exclusive=True,
|
||||
invalidate=True,
|
||||
group="",
|
||||
),
|
||||
desc.ChoiceParam(
|
||||
|
@ -35,7 +33,6 @@ class ConvertMesh(desc.AVCommandLineNode):
|
|||
values=VERBOSE_LEVEL,
|
||||
value="info",
|
||||
exclusive=True,
|
||||
invalidate=False,
|
||||
),
|
||||
]
|
||||
|
||||
|
@ -45,6 +42,5 @@ class ConvertMesh(desc.AVCommandLineNode):
|
|||
label="Mesh",
|
||||
description="Output mesh (*.obj, *.mesh, *.meshb, *.ply, *.off, *.stl).",
|
||||
value=desc.Node.internalFolder + "mesh." + "{outputMeshFileTypeValue}",
|
||||
invalidate=False,
|
||||
),
|
||||
]
|
||||
|
|
|
@ -20,7 +20,6 @@ It can also be used to remove specific parts of from an SfM scene (like filter a
|
|||
label="Input",
|
||||
description="Input SfMData file.",
|
||||
value="",
|
||||
invalidate=True,
|
||||
),
|
||||
desc.ChoiceParam(
|
||||
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",
|
||||
values=["abc", "sfm", "json", "ply", "baf"],
|
||||
exclusive=True,
|
||||
invalidate=True,
|
||||
group="", # exclude from command line
|
||||
),
|
||||
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,
|
||||
value=["dspsift"],
|
||||
exclusive=False,
|
||||
invalidate=True,
|
||||
joinChar=",",
|
||||
),
|
||||
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",
|
||||
description="UID or path of an image to add to the white list.",
|
||||
value="",
|
||||
invalidate=True,
|
||||
),
|
||||
name="imageWhiteList",
|
||||
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",
|
||||
description="Export views.",
|
||||
value=True,
|
||||
invalidate=True,
|
||||
),
|
||||
desc.BoolParam(
|
||||
name="intrinsics",
|
||||
label="Intrinsics",
|
||||
description="Export intrinsics.",
|
||||
value=True,
|
||||
invalidate=True,
|
||||
),
|
||||
desc.BoolParam(
|
||||
name="extrinsics",
|
||||
label="Extrinsics",
|
||||
description="Export extrinsics.",
|
||||
value=True,
|
||||
invalidate=True,
|
||||
),
|
||||
desc.BoolParam(
|
||||
name="structure",
|
||||
label="Structure",
|
||||
description="Export structure.",
|
||||
value=True,
|
||||
invalidate=True,
|
||||
),
|
||||
desc.BoolParam(
|
||||
name="observations",
|
||||
label="Observations",
|
||||
description="Export observations.",
|
||||
value=True,
|
||||
invalidate=True,
|
||||
),
|
||||
desc.ChoiceParam(
|
||||
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,
|
||||
value="info",
|
||||
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",
|
||||
description="Path to the output SfMData file.",
|
||||
value=desc.Node.internalFolder + "sfm.{fileExtValue}",
|
||||
invalidate=False,
|
||||
),
|
||||
]
|
||||
|
|
|
@ -28,7 +28,6 @@ Use a downscale factor of one (full-resolution) only if the quality of the input
|
|||
label="SfMData",
|
||||
description="Input SfMData file.",
|
||||
value="",
|
||||
invalidate=True,
|
||||
),
|
||||
desc.File(
|
||||
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"
|
||||
"Filename should be the image UID.",
|
||||
value="",
|
||||
invalidate=True,
|
||||
),
|
||||
desc.ChoiceParam(
|
||||
name="downscale",
|
||||
|
@ -48,7 +46,6 @@ Use a downscale factor of one (full-resolution) only if the quality of the input
|
|||
value=2,
|
||||
values=[1, 2, 4, 8, 16],
|
||||
exclusive=True,
|
||||
invalidate=True,
|
||||
),
|
||||
desc.FloatParam(
|
||||
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).",
|
||||
value=2.0,
|
||||
range=(0.0, 10.0, 0.1),
|
||||
invalidate=True,
|
||||
advanced=True,
|
||||
),
|
||||
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).",
|
||||
value=70.0,
|
||||
range=(10.0, 120.0, 1.0),
|
||||
invalidate=True,
|
||||
advanced=True,
|
||||
),
|
||||
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.",
|
||||
value=1024,
|
||||
range=(-1, 2000, 10),
|
||||
invalidate=True,
|
||||
),
|
||||
desc.IntParam(
|
||||
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.",
|
||||
value=1024,
|
||||
range=(-1, 2000, 10),
|
||||
invalidate=True,
|
||||
),
|
||||
desc.IntParam(
|
||||
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.",
|
||||
value=64,
|
||||
range=(0, 500, 1),
|
||||
invalidate=True,
|
||||
),
|
||||
desc.BoolParam(
|
||||
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"
|
||||
"(maxTCamsPerTile = maxTCams, adjust step if needed).",
|
||||
value=True,
|
||||
invalidate=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",
|
||||
description="Choose neighbour cameras per tile or globally to the image.",
|
||||
value=True,
|
||||
invalidate=True,
|
||||
advanced=True,
|
||||
),
|
||||
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.",
|
||||
value=10,
|
||||
range=(1, 20, 1),
|
||||
invalidate=True,
|
||||
),
|
||||
desc.GroupAttribute(
|
||||
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).",
|
||||
value=2,
|
||||
range=(-1, 10, 1),
|
||||
invalidate=True,
|
||||
),
|
||||
desc.IntParam(
|
||||
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).",
|
||||
value=2,
|
||||
range=(-1, 10, 1),
|
||||
invalidate=True,
|
||||
),
|
||||
desc.IntParam(
|
||||
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).",
|
||||
value=-1,
|
||||
range=(-1, 10, 1),
|
||||
invalidate=True,
|
||||
),
|
||||
desc.IntParam(
|
||||
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.",
|
||||
value=4,
|
||||
range=(1, 20, 1),
|
||||
invalidate=True,
|
||||
),
|
||||
desc.IntParam(
|
||||
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.",
|
||||
value=4,
|
||||
range=(1, 20, 1),
|
||||
invalidate=True,
|
||||
advanced=True,
|
||||
),
|
||||
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",
|
||||
description="Use landmarks from Structure-from-Motion as input seeds to define min/max depth ranges.",
|
||||
value=True,
|
||||
invalidate=True,
|
||||
advanced=True,
|
||||
),
|
||||
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.",
|
||||
value=0.2,
|
||||
range=(0.0, 2.0, 0.1),
|
||||
invalidate=True,
|
||||
advanced=True,
|
||||
),
|
||||
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.",
|
||||
value=0.0,
|
||||
range=(0.0, 2.0, 0.1),
|
||||
invalidate=True,
|
||||
advanced=True,
|
||||
),
|
||||
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.",
|
||||
value=1.0,
|
||||
range=(0.0, 1.0, 0.01),
|
||||
invalidate=True,
|
||||
advanced=True,
|
||||
),
|
||||
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.",
|
||||
value=5.5,
|
||||
range=(0.0, 30.0, 0.5),
|
||||
invalidate=True,
|
||||
advanced=True,
|
||||
),
|
||||
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.",
|
||||
value=8.0,
|
||||
range=(0.0, 30.0, 0.5),
|
||||
invalidate=True,
|
||||
advanced=True,
|
||||
),
|
||||
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.",
|
||||
value=10.0,
|
||||
range=(0.0, 255.0, 0.5),
|
||||
invalidate=True,
|
||||
advanced=True,
|
||||
),
|
||||
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.",
|
||||
value=100.0,
|
||||
range=(-255.0, 255.0, 0.5),
|
||||
invalidate=True,
|
||||
advanced=True,
|
||||
),
|
||||
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.",
|
||||
value=1500,
|
||||
range=(1, 5000, 1),
|
||||
invalidate=True,
|
||||
advanced=True,
|
||||
),
|
||||
desc.StringParam(
|
||||
|
@ -260,7 +235,6 @@ Use a downscale factor of one (full-resolution) only if the quality of the input
|
|||
label="Filtering Axes",
|
||||
description="Define axes for the filtering of the similarity volume.",
|
||||
value="YX",
|
||||
invalidate=True,
|
||||
advanced=True,
|
||||
),
|
||||
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",
|
||||
description="Select the list of depth planes per tile or globally to the image.",
|
||||
value=True,
|
||||
invalidate=True,
|
||||
advanced=True,
|
||||
),
|
||||
desc.BoolParam(
|
||||
|
@ -276,7 +249,6 @@ Use a downscale factor of one (full-resolution) only if the quality of the input
|
|||
label="Consistent Scale",
|
||||
description="Compare patch with consistent scale for similarity volume computation.",
|
||||
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",
|
||||
description="Enable depth/similarity map refinement process.",
|
||||
value=True,
|
||||
invalidate=True,
|
||||
),
|
||||
desc.IntParam(
|
||||
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).",
|
||||
value=1,
|
||||
range=(-1, 10, 1),
|
||||
invalidate=True,
|
||||
enabled=lambda node: node.refine.refineEnabled.value,
|
||||
),
|
||||
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).",
|
||||
value=1,
|
||||
range=(-1, 10, 1),
|
||||
invalidate=True,
|
||||
enabled=lambda node: node.refine.refineEnabled.value,
|
||||
),
|
||||
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.",
|
||||
value=4,
|
||||
range=(1, 20, 1),
|
||||
invalidate=True,
|
||||
enabled=lambda node: node.refine.refineEnabled.value,
|
||||
),
|
||||
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).",
|
||||
value=10,
|
||||
range=(1, 30, 1),
|
||||
invalidate=True,
|
||||
advanced=True,
|
||||
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.",
|
||||
value=15,
|
||||
range=(1, 50, 1),
|
||||
invalidate=True,
|
||||
advanced=True,
|
||||
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.",
|
||||
value=3,
|
||||
range=(1, 20, 1),
|
||||
invalidate=True,
|
||||
advanced=True,
|
||||
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.",
|
||||
value=15.0,
|
||||
range=(0.0, 30.0, 0.5),
|
||||
invalidate=True,
|
||||
advanced=True,
|
||||
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.",
|
||||
value=15.5,
|
||||
range=(0.0, 30.0, 0.5),
|
||||
invalidate=True,
|
||||
advanced=True,
|
||||
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.",
|
||||
value=8.0,
|
||||
range=(0.0, 30.0, 0.5),
|
||||
invalidate=True,
|
||||
advanced=True,
|
||||
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",
|
||||
description="Enable middle depth bilinear interpolation.",
|
||||
value=False,
|
||||
invalidate=True,
|
||||
enabled=lambda node: node.refine.refineEnabled.value,
|
||||
),
|
||||
desc.BoolParam(
|
||||
|
@ -396,7 +357,6 @@ Use a downscale factor of one (full-resolution) only if the quality of the input
|
|||
label="Consistent Scale",
|
||||
description="Compare patch with consistent scale for similarity volume computation.",
|
||||
value=False,
|
||||
invalidate=True,
|
||||
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",
|
||||
description="Enable depth/similarity map post-process color optimization.",
|
||||
value=True,
|
||||
invalidate=True,
|
||||
),
|
||||
desc.IntParam(
|
||||
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.",
|
||||
value=100,
|
||||
range=(1, 500, 10),
|
||||
invalidate=True,
|
||||
advanced=True,
|
||||
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",
|
||||
description="Enable custom patch pattern for similarity volume computation at the SGM step.",
|
||||
value=False,
|
||||
invalidate=True,
|
||||
advanced=True,
|
||||
),
|
||||
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",
|
||||
description="Enable custom patch pattern for similarity volume computation at the Refine step.",
|
||||
value=False,
|
||||
invalidate=True,
|
||||
advanced=True,
|
||||
),
|
||||
desc.ListAttribute(
|
||||
|
@ -469,7 +425,6 @@ Use a downscale factor of one (full-resolution) only if the quality of the input
|
|||
value="full",
|
||||
values=["full", "circle"],
|
||||
exclusive=True,
|
||||
invalidate=True,
|
||||
),
|
||||
desc.FloatParam(
|
||||
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.",
|
||||
value=2.5,
|
||||
range=(0.5, 30.0, 0.1),
|
||||
invalidate=True,
|
||||
),
|
||||
desc.IntParam(
|
||||
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).",
|
||||
value=12,
|
||||
range=(3, 24, 1),
|
||||
invalidate=True,
|
||||
),
|
||||
desc.IntParam(
|
||||
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.",
|
||||
value=0,
|
||||
range=(0, 2, 1),
|
||||
invalidate=True,
|
||||
),
|
||||
desc.FloatParam(
|
||||
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.",
|
||||
value=1.0,
|
||||
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",
|
||||
description="Group all subparts with the same image level.",
|
||||
value=False,
|
||||
invalidate=True,
|
||||
advanced=True,
|
||||
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",
|
||||
description="Export intermediate depth/similarity maps from the SGM and Refine steps.",
|
||||
value=False,
|
||||
invalidate=True,
|
||||
advanced=True,
|
||||
),
|
||||
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",
|
||||
description="Export intermediate normal maps from the SGM and Refine steps.",
|
||||
value=False,
|
||||
invalidate=True,
|
||||
advanced=True,
|
||||
),
|
||||
desc.BoolParam(
|
||||
|
@ -546,7 +494,6 @@ Use a downscale factor of one (full-resolution) only if the quality of the input
|
|||
label="Export Volumes",
|
||||
description="Export intermediate full similarity volumes from the SGM and Refine steps.",
|
||||
value=False,
|
||||
invalidate=True,
|
||||
advanced=True,
|
||||
),
|
||||
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",
|
||||
description="Export intermediate similarity cross volumes from the SGM and Refine steps.",
|
||||
value=False,
|
||||
invalidate=True,
|
||||
advanced=True,
|
||||
),
|
||||
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",
|
||||
description="Export intermediate similarity topographic cut volumes from the SGM and Refine steps.",
|
||||
value=False,
|
||||
invalidate=True,
|
||||
advanced=True,
|
||||
),
|
||||
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",
|
||||
description="Export intermediate volumes 9 points from the SGM and Refine steps in CSV files.",
|
||||
value=False,
|
||||
invalidate=True,
|
||||
advanced=True,
|
||||
),
|
||||
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",
|
||||
description="Export the bounding boxes of tiles volumes as meshes. This allows to visualize the depth map search areas.",
|
||||
value=False,
|
||||
invalidate=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,
|
||||
value="info",
|
||||
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",
|
||||
description="Output folder for generated depth maps.",
|
||||
value=desc.Node.internalFolder,
|
||||
invalidate=False,
|
||||
),
|
||||
# these attributes are only here to describe more accurately the output of the node
|
||||
# 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.",
|
||||
semantic="image",
|
||||
value=desc.Node.internalFolder + "<VIEW_ID>_depthMap.exr",
|
||||
invalidate=False,
|
||||
group="", # do not export on the command line
|
||||
),
|
||||
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.",
|
||||
semantic="image",
|
||||
value=desc.Node.internalFolder + "<VIEW_ID>_simMap.exr",
|
||||
invalidate=False,
|
||||
group="", # do not export on the command line
|
||||
),
|
||||
desc.File(
|
||||
|
@ -637,7 +576,6 @@ Use a downscale factor of one (full-resolution) only if the quality of the input
|
|||
label="Tile Pattern",
|
||||
description="Debug: Tile pattern.",
|
||||
value=desc.Node.internalFolder + "<VIEW_ID>_tilePattern.obj",
|
||||
invalidate=False,
|
||||
group="", # do not export on the command line
|
||||
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",
|
||||
semantic="image",
|
||||
value=desc.Node.internalFolder + "<VIEW_ID>_depthMap_sgm.exr",
|
||||
invalidate=False,
|
||||
group="", # do not export on the command line
|
||||
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.",
|
||||
semantic="image",
|
||||
value=desc.Node.internalFolder + "<VIEW_ID>_depthMap_sgmUpscaled.exr",
|
||||
invalidate=False,
|
||||
group="", # do not export on the command line
|
||||
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",
|
||||
semantic="image",
|
||||
value=desc.Node.internalFolder + "<VIEW_ID>_depthMap_refinedFused.exr",
|
||||
invalidate=False,
|
||||
group="", # do not export on the command line
|
||||
enabled=lambda node: node.intermediateResults.exportIntermediateDepthSimMaps.value,
|
||||
),
|
||||
|
|
|
@ -23,14 +23,12 @@ This allows to filter unstable points before starting the fusion of all depth ma
|
|||
label="SfMData",
|
||||
description="SfMData file.",
|
||||
value="",
|
||||
invalidate=True,
|
||||
),
|
||||
desc.File(
|
||||
name="depthMapsFolder",
|
||||
label="Depth Maps Folder",
|
||||
description="Input depth maps folder.",
|
||||
value="",
|
||||
invalidate=True,
|
||||
),
|
||||
desc.FloatParam(
|
||||
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.",
|
||||
value=2.0,
|
||||
range=(0.0, 10.0, 0.1),
|
||||
invalidate=True,
|
||||
advanced=True,
|
||||
),
|
||||
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.",
|
||||
value=70.0,
|
||||
range=(10.0, 120.0, 1.0),
|
||||
invalidate=True,
|
||||
advanced=True,
|
||||
),
|
||||
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.",
|
||||
value=10,
|
||||
range=(0, 20, 1),
|
||||
invalidate=True,
|
||||
advanced=True,
|
||||
),
|
||||
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.",
|
||||
value=3,
|
||||
range=(0, 10, 1),
|
||||
invalidate=True,
|
||||
),
|
||||
desc.IntParam(
|
||||
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.",
|
||||
value=4,
|
||||
range=(0, 10, 1),
|
||||
invalidate=True,
|
||||
),
|
||||
desc.FloatParam(
|
||||
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.",
|
||||
value=2.0,
|
||||
range=(0.001, 10.0, 0.1),
|
||||
invalidate=True,
|
||||
advanced=True,
|
||||
),
|
||||
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.",
|
||||
value=0,
|
||||
range=(0, 10, 1),
|
||||
invalidate=True,
|
||||
advanced=True,
|
||||
),
|
||||
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.",
|
||||
value=0,
|
||||
range=(0, 10, 1),
|
||||
invalidate=True,
|
||||
advanced=True,
|
||||
),
|
||||
desc.BoolParam(
|
||||
|
@ -107,7 +97,6 @@ This allows to filter unstable points before starting the fusion of all depth ma
|
|||
label="Compute Normal Maps",
|
||||
description="Compute normal maps for each depth map.",
|
||||
value=False,
|
||||
invalidate=True,
|
||||
advanced=True,
|
||||
),
|
||||
desc.ChoiceParam(
|
||||
|
@ -117,7 +106,6 @@ This allows to filter unstable points before starting the fusion of all depth ma
|
|||
values=VERBOSE_LEVEL,
|
||||
value="info",
|
||||
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",
|
||||
description="Output folder for generated depth maps.",
|
||||
value=desc.Node.internalFolder,
|
||||
invalidate=False,
|
||||
),
|
||||
# these attributes are only here to describe more accurately the output of the node
|
||||
# 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.",
|
||||
semantic="image",
|
||||
value=desc.Node.internalFolder + "<VIEW_ID>_depthMap.exr",
|
||||
invalidate=False,
|
||||
group="", # do not export on the command line
|
||||
),
|
||||
desc.File(
|
||||
|
@ -147,7 +133,6 @@ This allows to filter unstable points before starting the fusion of all depth ma
|
|||
description="Filtered sim maps.",
|
||||
semantic="image",
|
||||
value=desc.Node.internalFolder + "<VIEW_ID>_simMap.exr",
|
||||
invalidate=False,
|
||||
group="", # do not export on the command line
|
||||
),
|
||||
desc.File(
|
||||
|
@ -156,7 +141,6 @@ This allows to filter unstable points before starting the fusion of all depth ma
|
|||
description="Normal maps.",
|
||||
semantic="image",
|
||||
value=desc.Node.internalFolder + "<VIEW_ID>_normalMap.exr",
|
||||
invalidate=False,
|
||||
enabled=lambda node: node.computeNormalMaps.value,
|
||||
group="", # do not export on the command line
|
||||
),
|
||||
|
|
|
@ -19,14 +19,12 @@ Calibration of a camera/lens couple distortion using a full screen checkerboard.
|
|||
label="Input SfMData",
|
||||
description="SfMData file.",
|
||||
value="",
|
||||
invalidate=True,
|
||||
),
|
||||
desc.File(
|
||||
name="checkerboards",
|
||||
label="Checkerboards Folder",
|
||||
description="Folder containing checkerboard JSON files.",
|
||||
value="",
|
||||
invalidate=True,
|
||||
),
|
||||
desc.ChoiceParam(
|
||||
name="undistortionModelName",
|
||||
|
@ -35,21 +33,18 @@ Calibration of a camera/lens couple distortion using a full screen checkerboard.
|
|||
value="3deanamorphic4",
|
||||
values=["3deanamorphic4", "3declassicld", "3deradial4"],
|
||||
exclusive=True,
|
||||
invalidate=True,
|
||||
),
|
||||
desc.BoolParam(
|
||||
name="handleSqueeze",
|
||||
label="Handle Squeeze",
|
||||
description="Estimate squeeze.",
|
||||
value=True,
|
||||
invalidate=True,
|
||||
),
|
||||
desc.BoolParam(
|
||||
name="isDesqueezed",
|
||||
label="Is Desqueezed",
|
||||
description="True if the input image is already desqueezed.",
|
||||
value=False,
|
||||
invalidate=True,
|
||||
),
|
||||
desc.ChoiceParam(
|
||||
name="verboseLevel",
|
||||
|
@ -58,7 +53,6 @@ Calibration of a camera/lens couple distortion using a full screen checkerboard.
|
|||
values=VERBOSE_LEVEL,
|
||||
value="info",
|
||||
exclusive=True,
|
||||
invalidate=False,
|
||||
),
|
||||
]
|
||||
|
||||
|
@ -68,6 +62,5 @@ Calibration of a camera/lens couple distortion using a full screen checkerboard.
|
|||
label="SfMData File",
|
||||
description="Path to the output SfMData file.",
|
||||
value=desc.Node.internalFolder + "sfmData.sfm",
|
||||
invalidate=False,
|
||||
),
|
||||
]
|
||||
|
|
|
@ -20,7 +20,6 @@ Based on the input image filenames, it will recognize the input video sequence t
|
|||
label="Input SfMData",
|
||||
description="SfMData file containing a complete SfM.",
|
||||
value="",
|
||||
invalidate=True,
|
||||
),
|
||||
desc.File(
|
||||
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"
|
||||
"If empty, export all cameras.",
|
||||
value="",
|
||||
invalidate=True,
|
||||
),
|
||||
desc.File(
|
||||
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"
|
||||
"If empty, export all cameras.",
|
||||
value="",
|
||||
invalidate=True,
|
||||
),
|
||||
desc.BoolParam(
|
||||
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"
|
||||
"It represents the absolute pixel positions of an image normalized between 0 and 1.",
|
||||
value=True,
|
||||
invalidate=True,
|
||||
),
|
||||
desc.BoolParam(
|
||||
name="exportUndistortedImages",
|
||||
label="Export Undistorted Images",
|
||||
description="Export undistorted images.",
|
||||
value=False,
|
||||
invalidate=True,
|
||||
),
|
||||
desc.ChoiceParam(
|
||||
name="undistortedImageType",
|
||||
|
@ -60,7 +55,6 @@ Based on the input image filenames, it will recognize the input video sequence t
|
|||
value="exr",
|
||||
values=["jpg", "png", "tif", "exr"],
|
||||
exclusive=True,
|
||||
invalidate=True,
|
||||
enabled=lambda node: node.exportUndistortedImages.value,
|
||||
),
|
||||
desc.BoolParam(
|
||||
|
@ -69,14 +63,12 @@ Based on the input image filenames, it will recognize the input video sequence t
|
|||
description="Export full ROD.",
|
||||
value=False,
|
||||
enabled=lambda node: node.exportUndistortedImages.value and node.undistortedImageType.value == "exr",
|
||||
invalidate=True,
|
||||
),
|
||||
desc.BoolParam(
|
||||
name="correctPrincipalPoint",
|
||||
label="Correct Principal Point",
|
||||
description="Correct principal point.",
|
||||
value=False,
|
||||
invalidate=True,
|
||||
),
|
||||
desc.ChoiceParam(
|
||||
name="verboseLevel",
|
||||
|
@ -85,7 +77,6 @@ Based on the input image filenames, it will recognize the input video sequence t
|
|||
values=VERBOSE_LEVEL,
|
||||
value="info",
|
||||
exclusive=True,
|
||||
invalidate=False,
|
||||
),
|
||||
]
|
||||
|
||||
|
@ -95,7 +86,6 @@ Based on the input image filenames, it will recognize the input video sequence t
|
|||
label="Folder",
|
||||
description="Output folder with animated camera and undistorted images.",
|
||||
value=desc.Node.internalFolder,
|
||||
invalidate=False,
|
||||
),
|
||||
desc.File(
|
||||
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.",
|
||||
value=desc.Node.internalFolder + "camera.abc",
|
||||
group="", # exclude from command line
|
||||
invalidate=False,
|
||||
),
|
||||
desc.File(
|
||||
name="outputUndistorted",
|
||||
|
@ -111,7 +100,6 @@ Based on the input image filenames, it will recognize the input video sequence t
|
|||
description="Output undistorted folder.",
|
||||
value=desc.Node.internalFolder + "undistort/",
|
||||
group="", # exclude from command line
|
||||
invalidate=False,
|
||||
),
|
||||
desc.File(
|
||||
name="outputImages",
|
||||
|
@ -121,6 +109,5 @@ Based on the input image filenames, it will recognize the input video sequence t
|
|||
semantic="image",
|
||||
group="", # exclude from command line
|
||||
enabled=lambda node: node.exportUndistortedImages.value,
|
||||
invalidate=False,
|
||||
),
|
||||
]
|
||||
|
|
|
@ -17,7 +17,6 @@ class ExportColoredPointCloud(desc.AVCommandLineNode):
|
|||
label="Input SfMData",
|
||||
description="SfMData file containing a complete SfM.",
|
||||
value="",
|
||||
invalidate=True,
|
||||
),
|
||||
desc.ChoiceParam(
|
||||
name="verboseLevel",
|
||||
|
@ -26,7 +25,6 @@ class ExportColoredPointCloud(desc.AVCommandLineNode):
|
|||
values=VERBOSE_LEVEL,
|
||||
value="info",
|
||||
exclusive=True,
|
||||
invalidate=False,
|
||||
),
|
||||
]
|
||||
|
||||
|
@ -36,6 +34,5 @@ class ExportColoredPointCloud(desc.AVCommandLineNode):
|
|||
label="Point Cloud Filepath",
|
||||
description="Output point cloud with visibilities as SfMData file.",
|
||||
value=desc.Node.internalFolder + "pointCloud.abc",
|
||||
invalidate=False,
|
||||
),
|
||||
]
|
||||
|
|
|
@ -18,7 +18,6 @@ It also allows to export an undistorted image of the lens grids for validation.
|
|||
label="Input SfMData",
|
||||
description="Input SfMData file.",
|
||||
value="",
|
||||
invalidate=True,
|
||||
),
|
||||
desc.BoolParam(
|
||||
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"
|
||||
"Only supports 3DEqualizer lens models.",
|
||||
value=True,
|
||||
invalidate=True,
|
||||
),
|
||||
desc.BoolParam(
|
||||
name="exportLensGridsUndistorted",
|
||||
label="Export Lens Grids Undistorted",
|
||||
description="Export the lens grids undistorted for validation.",
|
||||
value=True,
|
||||
invalidate=True,
|
||||
),
|
||||
desc.BoolParam(
|
||||
name="exportSTMaps",
|
||||
label="Export STMaps",
|
||||
description="Export STMaps for distortion and undistortion.",
|
||||
value=True,
|
||||
invalidate=True,
|
||||
),
|
||||
desc.ChoiceParam(
|
||||
name="verboseLevel",
|
||||
|
@ -49,7 +45,6 @@ It also allows to export an undistorted image of the lens grids for validation.
|
|||
values=VERBOSE_LEVEL,
|
||||
value="info",
|
||||
exclusive=True,
|
||||
invalidate=False,
|
||||
),
|
||||
]
|
||||
|
||||
|
@ -59,7 +54,6 @@ It also allows to export an undistorted image of the lens grids for validation.
|
|||
label="Folder",
|
||||
description="Output folder.",
|
||||
value=desc.Node.internalFolder,
|
||||
invalidate=False,
|
||||
),
|
||||
desc.File(
|
||||
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.",
|
||||
value=desc.Node.internalFolder + "nukeLensDistortion_<INTRINSIC_ID>.nk",
|
||||
group="", # do not export on the command line
|
||||
invalidate=False,
|
||||
enabled=lambda node: node.exportNukeNode.value,
|
||||
),
|
||||
desc.File(
|
||||
|
@ -77,7 +70,6 @@ It also allows to export an undistorted image of the lens grids for validation.
|
|||
semantic="image",
|
||||
value=desc.Node.internalFolder + "lensgrid_<VIEW_ID>_undistort.exr",
|
||||
group="", # do not export on the command line
|
||||
invalidate=False,
|
||||
enabled=lambda node: node.exportLensGridsUndistorted.value,
|
||||
),
|
||||
desc.File(
|
||||
|
@ -87,7 +79,6 @@ It also allows to export an undistorted image of the lens grids for validation.
|
|||
semantic="image",
|
||||
value=desc.Node.internalFolder + "stmap_<INTRINSIC_ID>_distort.exr",
|
||||
group="", # do not export on the command line
|
||||
invalidate=False,
|
||||
enabled=lambda node: node.exportSTMaps.value,
|
||||
),
|
||||
desc.File(
|
||||
|
@ -97,7 +88,6 @@ It also allows to export an undistorted image of the lens grids for validation.
|
|||
semantic="image",
|
||||
value=desc.Node.internalFolder + "stmap_<INTRINSIC_ID>_undistort.exr",
|
||||
group="", # do not export on the command line
|
||||
invalidate=False,
|
||||
enabled=lambda node: node.exportSTMaps.value,
|
||||
),
|
||||
]
|
||||
|
|
|
@ -18,7 +18,6 @@ class ExportMatches(desc.AVCommandLineNode):
|
|||
label="Input",
|
||||
description="SfMData file.",
|
||||
value="",
|
||||
invalidate=True,
|
||||
),
|
||||
desc.ChoiceParam(
|
||||
name="describerTypes",
|
||||
|
@ -27,7 +26,6 @@ class ExportMatches(desc.AVCommandLineNode):
|
|||
values=DESCRIBER_TYPES,
|
||||
value=["dspsift"],
|
||||
exclusive=False,
|
||||
invalidate=True,
|
||||
joinChar=",",
|
||||
),
|
||||
desc.ListAttribute(
|
||||
|
@ -36,7 +34,6 @@ class ExportMatches(desc.AVCommandLineNode):
|
|||
label="Features Folder",
|
||||
description="Folder containing some extracted features and descriptors.",
|
||||
value="",
|
||||
invalidate=True,
|
||||
),
|
||||
name="featuresFolders",
|
||||
label="Features Folders",
|
||||
|
@ -48,7 +45,6 @@ class ExportMatches(desc.AVCommandLineNode):
|
|||
label="Matches Folder",
|
||||
description="Folder containing some computed matches.",
|
||||
value="",
|
||||
invalidate=True,
|
||||
),
|
||||
name="matchesFolders",
|
||||
label="Matches Folders",
|
||||
|
@ -61,7 +57,6 @@ class ExportMatches(desc.AVCommandLineNode):
|
|||
values=VERBOSE_LEVEL,
|
||||
value="info",
|
||||
exclusive=True,
|
||||
invalidate=False,
|
||||
),
|
||||
]
|
||||
|
||||
|
@ -71,6 +66,5 @@ class ExportMatches(desc.AVCommandLineNode):
|
|||
label="Folder",
|
||||
description="Output path for the features and descriptors files (*.feat, *.desc).",
|
||||
value=desc.Node.internalFolder,
|
||||
invalidate=False,
|
||||
),
|
||||
]
|
||||
|
|
|
@ -21,7 +21,6 @@ MeshroomMaya contains a user interface to browse all cameras.
|
|||
label="Input SfMData",
|
||||
description="Input SfMData file.",
|
||||
value="",
|
||||
invalidate=True,
|
||||
),
|
||||
desc.ChoiceParam(
|
||||
name="verboseLevel",
|
||||
|
@ -30,7 +29,6 @@ MeshroomMaya contains a user interface to browse all cameras.
|
|||
values=VERBOSE_LEVEL,
|
||||
value="info",
|
||||
exclusive=True,
|
||||
invalidate=False,
|
||||
),
|
||||
]
|
||||
|
||||
|
@ -40,6 +38,5 @@ MeshroomMaya contains a user interface to browse all cameras.
|
|||
label="Folder",
|
||||
description="Folder for MeshroomMaya outputs: undistorted images and thumbnails.",
|
||||
value=desc.Node.internalFolder,
|
||||
invalidate=False,
|
||||
),
|
||||
]
|
||||
|
|
|
@ -37,14 +37,12 @@ It is robust to motion-blur, depth-of-field, occlusion. Be careful to have enoug
|
|||
label="SfMData",
|
||||
description="Input SfMData file.",
|
||||
value="",
|
||||
invalidate=True,
|
||||
),
|
||||
desc.File(
|
||||
name="masksFolder",
|
||||
label="Masks Folder",
|
||||
description="Use masks to filter features. Filename should be the same or the image UID.",
|
||||
value="",
|
||||
invalidate=True,
|
||||
),
|
||||
desc.ChoiceParam(
|
||||
name="maskExtension",
|
||||
|
@ -53,14 +51,12 @@ It is robust to motion-blur, depth-of-field, occlusion. Be careful to have enoug
|
|||
value="png",
|
||||
values=["png", "exr", "jpg"],
|
||||
exclusive=True,
|
||||
invalidate=True,
|
||||
),
|
||||
desc.BoolParam(
|
||||
name="maskInvert",
|
||||
label="Invert Masks",
|
||||
description="Invert mask values.",
|
||||
value=False,
|
||||
invalidate=True,
|
||||
),
|
||||
desc.ChoiceParam(
|
||||
name="describerTypes",
|
||||
|
@ -69,7 +65,6 @@ It is robust to motion-blur, depth-of-field, occlusion. Be careful to have enoug
|
|||
values=DESCRIBER_TYPES,
|
||||
value=["dspsift"],
|
||||
exclusive=False,
|
||||
invalidate=True,
|
||||
joinChar=",",
|
||||
),
|
||||
desc.ChoiceParam(
|
||||
|
@ -80,7 +75,6 @@ It is robust to motion-blur, depth-of-field, occlusion. Be careful to have enoug
|
|||
value="normal",
|
||||
values=["low", "medium", "normal", "high", "ultra", "custom"],
|
||||
exclusive=True,
|
||||
invalidate=True,
|
||||
group=lambda node: 'allParams' if node.describerPreset.value != 'custom' else None,
|
||||
),
|
||||
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).",
|
||||
value=0,
|
||||
range=(0, 100000, 1000),
|
||||
invalidate=True,
|
||||
advanced=True,
|
||||
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",
|
||||
values=["low", "medium", "normal", "high", "ultra"],
|
||||
exclusive=True,
|
||||
invalidate=True,
|
||||
),
|
||||
desc.ChoiceParam(
|
||||
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"],
|
||||
exclusive=True,
|
||||
advanced=True,
|
||||
invalidate=True,
|
||||
),
|
||||
desc.FloatParam(
|
||||
name="relativePeakThreshold",
|
||||
|
@ -126,7 +117,6 @@ It is robust to motion-blur, depth-of-field, occlusion. Be careful to have enoug
|
|||
value=0.01,
|
||||
range=(0.01, 1.0, 0.001),
|
||||
advanced=True,
|
||||
invalidate=True,
|
||||
enabled=lambda node: (node.contrastFiltering.value == "AdaptiveToMedianVariance"),
|
||||
),
|
||||
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.",
|
||||
value=True,
|
||||
advanced=True,
|
||||
invalidate=True,
|
||||
),
|
||||
desc.ChoiceParam(
|
||||
name="workingColorSpace",
|
||||
|
@ -144,14 +133,12 @@ It is robust to motion-blur, depth-of-field, occlusion. Be careful to have enoug
|
|||
values=COLORSPACES,
|
||||
value="sRGB",
|
||||
exclusive=True,
|
||||
invalidate=True,
|
||||
),
|
||||
desc.BoolParam(
|
||||
name="forceCpuExtraction",
|
||||
label="Force CPU Extraction",
|
||||
description="Use only CPU feature extraction.",
|
||||
value=True,
|
||||
invalidate=False,
|
||||
advanced=True,
|
||||
),
|
||||
desc.IntParam(
|
||||
|
@ -170,7 +157,6 @@ It is robust to motion-blur, depth-of-field, occlusion. Be careful to have enoug
|
|||
values=VERBOSE_LEVEL,
|
||||
value="info",
|
||||
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",
|
||||
description="Output path for the features and descriptors files (*.feat, *.desc).",
|
||||
value=desc.Node.internalFolder,
|
||||
invalidate=False,
|
||||
),
|
||||
]
|
||||
|
|
|
@ -39,7 +39,6 @@ then it checks the number of features that validates this model and iterate thro
|
|||
label="SfMData",
|
||||
description="Input SfMData file.",
|
||||
value="",
|
||||
invalidate=True,
|
||||
),
|
||||
desc.ListAttribute(
|
||||
elementDesc=desc.File(
|
||||
|
@ -47,7 +46,6 @@ then it checks the number of features that validates this model and iterate thro
|
|||
label="Features Folder",
|
||||
description="Folder containing some extracted features and descriptors.",
|
||||
value="",
|
||||
invalidate=True,
|
||||
),
|
||||
name="featuresFolders",
|
||||
label="Features Folders",
|
||||
|
@ -58,7 +56,6 @@ then it checks the number of features that validates this model and iterate thro
|
|||
label="Image Pairs",
|
||||
description="Path to a file which contains the list of image pairs to match.",
|
||||
value="",
|
||||
invalidate=True,
|
||||
),
|
||||
desc.ChoiceParam(
|
||||
name="describerTypes",
|
||||
|
@ -67,7 +64,6 @@ then it checks the number of features that validates this model and iterate thro
|
|||
values=DESCRIBER_TYPES,
|
||||
value=["dspsift"],
|
||||
exclusive=False,
|
||||
invalidate=True,
|
||||
joinChar=",",
|
||||
),
|
||||
desc.ChoiceParam(
|
||||
|
@ -83,7 +79,6 @@ then it checks the number of features that validates this model and iterate thro
|
|||
value="ANN_L2",
|
||||
values=["BRUTE_FORCE_L2", "ANN_L2", "CASCADE_HASHING_L2", "FAST_CASCADE_HASHING_L2", "BRUTE_FORCE_HAMMING"],
|
||||
exclusive=True,
|
||||
invalidate=True,
|
||||
advanced=True,
|
||||
),
|
||||
desc.ChoiceParam(
|
||||
|
@ -95,7 +90,6 @@ then it checks the number of features that validates this model and iterate thro
|
|||
value="acransac",
|
||||
values=["acransac", "loransac"],
|
||||
exclusive=True,
|
||||
invalidate=True,
|
||||
advanced=True,
|
||||
),
|
||||
desc.ChoiceParam(
|
||||
|
@ -111,7 +105,6 @@ then it checks the number of features that validates this model and iterate thro
|
|||
value="fundamental_matrix",
|
||||
values=["fundamental_matrix", "fundamental_with_distortion", "essential_matrix", "homography_matrix", "homography_growing", "no_filtering"],
|
||||
exclusive=True,
|
||||
invalidate=True,
|
||||
advanced=True,
|
||||
),
|
||||
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.",
|
||||
value=0.8,
|
||||
range=(0.0, 1.0, 0.01),
|
||||
invalidate=True,
|
||||
advanced=True,
|
||||
),
|
||||
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.",
|
||||
value=50000,
|
||||
range=(1, 100000, 1),
|
||||
invalidate=True,
|
||||
advanced=True,
|
||||
),
|
||||
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).",
|
||||
value=0.0,
|
||||
range=(0.0, 10.0, 0.1),
|
||||
invalidate=True,
|
||||
advanced=True,
|
||||
),
|
||||
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.",
|
||||
value=5.0,
|
||||
range=(0.0, 100.0, 1.0),
|
||||
invalidate=True,
|
||||
advanced=True,
|
||||
),
|
||||
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.",
|
||||
value=-1.0,
|
||||
range=(0.0, 10.0, 1.0),
|
||||
invalidate=True,
|
||||
),
|
||||
desc.IntParam(
|
||||
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.",
|
||||
value=0,
|
||||
range=(0, 10000, 1),
|
||||
invalidate=True,
|
||||
advanced=True,
|
||||
),
|
||||
desc.BoolParam(
|
||||
|
@ -177,7 +164,6 @@ then it checks the number of features that validates this model and iterate thro
|
|||
label="Save Putative Matches",
|
||||
description="Save putative matches.",
|
||||
value=False,
|
||||
invalidate=True,
|
||||
advanced=True,
|
||||
),
|
||||
desc.BoolParam(
|
||||
|
@ -185,14 +171,12 @@ then it checks the number of features that validates this model and iterate thro
|
|||
label="Cross Matching",
|
||||
description="Ensure that the matching process is symmetric (same matches for I->J than for J->I).",
|
||||
value=False,
|
||||
invalidate=True,
|
||||
),
|
||||
desc.BoolParam(
|
||||
name="guidedMatching",
|
||||
label="Guided Matching",
|
||||
description="Use the found model to improve the pairwise correspondences.",
|
||||
value=False,
|
||||
invalidate=True,
|
||||
),
|
||||
desc.BoolParam(
|
||||
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"
|
||||
"If some cameras have unknown poses (so there is no geometric prior), the standard feature matching will be performed.",
|
||||
value=False,
|
||||
invalidate=True,
|
||||
),
|
||||
desc.BoolParam(
|
||||
name="exportDebugFiles",
|
||||
|
@ -217,7 +200,6 @@ then it checks the number of features that validates this model and iterate thro
|
|||
values=VERBOSE_LEVEL,
|
||||
value="info",
|
||||
exclusive=True,
|
||||
invalidate=False,
|
||||
),
|
||||
]
|
||||
outputs = [
|
||||
|
@ -226,6 +208,5 @@ then it checks the number of features that validates this model and iterate thro
|
|||
label="Matches Folder",
|
||||
description="Path to a folder in which the computed matches are stored.",
|
||||
value=desc.Node.internalFolder,
|
||||
invalidate=False,
|
||||
),
|
||||
]
|
||||
|
|
|
@ -21,7 +21,6 @@ Compare feature/descriptor matching repeatability on some dataset with known hom
|
|||
label="Input Folder",
|
||||
description="Input folder with evaluation datasets.",
|
||||
value="",
|
||||
invalidate=True,
|
||||
),
|
||||
desc.ChoiceParam(
|
||||
name="describerTypes",
|
||||
|
@ -30,7 +29,6 @@ Compare feature/descriptor matching repeatability on some dataset with known hom
|
|||
values=DESCRIBER_TYPES,
|
||||
value=["sift"],
|
||||
exclusive=False,
|
||||
invalidate=True,
|
||||
joinChar=",",
|
||||
),
|
||||
desc.ChoiceParam(
|
||||
|
@ -41,7 +39,6 @@ Compare feature/descriptor matching repeatability on some dataset with known hom
|
|||
value="normal",
|
||||
values=["low", "medium", "normal", "high", "ultra"],
|
||||
exclusive=True,
|
||||
invalidate=True,
|
||||
),
|
||||
desc.ChoiceParam(
|
||||
name="describerQuality",
|
||||
|
@ -50,7 +47,6 @@ Compare feature/descriptor matching repeatability on some dataset with known hom
|
|||
value="normal",
|
||||
values=["low", "medium", "normal", "high", "ultra"],
|
||||
exclusive=True,
|
||||
invalidate=True,
|
||||
),
|
||||
desc.ChoiceParam(
|
||||
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"],
|
||||
exclusive=True,
|
||||
advanced=True,
|
||||
invalidate=True,
|
||||
),
|
||||
desc.FloatParam(
|
||||
name="relativePeakThreshold",
|
||||
|
@ -76,7 +71,6 @@ Compare feature/descriptor matching repeatability on some dataset with known hom
|
|||
value=0.01,
|
||||
range=(0.01, 1.0, 0.001),
|
||||
advanced=True,
|
||||
invalidate=True,
|
||||
enabled=lambda node: (node.contrastFiltering.value == "AdaptiveToMedianVariance"),
|
||||
),
|
||||
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.",
|
||||
value=True,
|
||||
advanced=True,
|
||||
invalidate=True,
|
||||
),
|
||||
desc.BoolParam(
|
||||
name="forceCpuExtraction",
|
||||
|
@ -102,7 +95,6 @@ Compare feature/descriptor matching repeatability on some dataset with known hom
|
|||
value=0,
|
||||
range=(0, 10000, 1),
|
||||
group="",
|
||||
invalidate=True,
|
||||
),
|
||||
desc.StringParam(
|
||||
name="comments",
|
||||
|
@ -119,7 +111,6 @@ Compare feature/descriptor matching repeatability on some dataset with known hom
|
|||
values=VERBOSE_LEVEL,
|
||||
value="info",
|
||||
exclusive=True,
|
||||
invalidate=False,
|
||||
),
|
||||
]
|
||||
|
||||
|
@ -129,6 +120,5 @@ Compare feature/descriptor matching repeatability on some dataset with known hom
|
|||
label="Folder",
|
||||
description="Output path for the features and descriptors files (*.feat, *.desc).",
|
||||
value=desc.Node.internalFolder,
|
||||
invalidate=False,
|
||||
),
|
||||
]
|
||||
|
|
|
@ -23,7 +23,6 @@ It is known to be faster but less robust to challenging datasets than the Increm
|
|||
label="SfMData",
|
||||
description="Input SfMData file.",
|
||||
value="",
|
||||
invalidate=True,
|
||||
),
|
||||
desc.ListAttribute(
|
||||
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",
|
||||
description="Folder containing some extracted features.",
|
||||
value="",
|
||||
invalidate=True,
|
||||
),
|
||||
name="featuresFolders",
|
||||
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",
|
||||
description="Folder containing some computed matches.",
|
||||
value="",
|
||||
invalidate=True,
|
||||
),
|
||||
name="matchesFolders",
|
||||
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,
|
||||
value=["dspsift"],
|
||||
exclusive=False,
|
||||
invalidate=True,
|
||||
joinChar=",",
|
||||
),
|
||||
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"],
|
||||
value="L2_minimization",
|
||||
exclusive=True,
|
||||
invalidate=True,
|
||||
),
|
||||
desc.ChoiceParam(
|
||||
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"],
|
||||
value="L1_soft_minimization",
|
||||
exclusive=True,
|
||||
invalidate=True,
|
||||
),
|
||||
desc.BoolParam(
|
||||
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"
|
||||
"This may be helpful if the input cameras are already fully calibrated.",
|
||||
value=False,
|
||||
invalidate=True,
|
||||
),
|
||||
desc.ChoiceParam(
|
||||
name="verboseLevel",
|
||||
|
@ -98,7 +91,6 @@ It is known to be faster but less robust to challenging datasets than the Increm
|
|||
values=VERBOSE_LEVEL,
|
||||
value="info",
|
||||
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",
|
||||
description="Path to the output SfMData file.",
|
||||
value=desc.Node.internalFolder + "sfm.abc",
|
||||
invalidate=False,
|
||||
),
|
||||
desc.File(
|
||||
name="outputViewsAndPoses",
|
||||
label="Output Poses",
|
||||
description="Path to the output SfMData file with cameras (views and poses).",
|
||||
value=desc.Node.internalFolder + "cameras.sfm",
|
||||
invalidate=False,
|
||||
),
|
||||
desc.File(
|
||||
name="extraInfoFolder",
|
||||
label="Folder",
|
||||
description="Folder for intermediate reconstruction files and additional reconstruction information files.",
|
||||
value=desc.Node.internalFolder,
|
||||
invalidate=False,
|
||||
),
|
||||
]
|
||||
|
|
|
@ -19,7 +19,6 @@ class ImageMasking(desc.AVCommandLineNode):
|
|||
label="SfMData",
|
||||
description="Input SfMData file.",
|
||||
value="",
|
||||
invalidate=True,
|
||||
),
|
||||
desc.ChoiceParam(
|
||||
name="algorithm",
|
||||
|
@ -28,7 +27,6 @@ class ImageMasking(desc.AVCommandLineNode):
|
|||
value="HSV",
|
||||
values=["HSV", "AutoGrayscaleThreshold"],
|
||||
exclusive=True,
|
||||
invalidate=True,
|
||||
),
|
||||
desc.GroupAttribute(
|
||||
name="hsv",
|
||||
|
@ -48,7 +46,6 @@ class ImageMasking(desc.AVCommandLineNode):
|
|||
semantic="color/hue",
|
||||
value=0.33,
|
||||
range=(0.0, 1.0, 0.01),
|
||||
invalidate=True,
|
||||
),
|
||||
desc.FloatParam(
|
||||
name="hsvHueRange",
|
||||
|
@ -56,7 +53,6 @@ class ImageMasking(desc.AVCommandLineNode):
|
|||
description="Tolerance around the hue value to isolate.",
|
||||
value=0.1,
|
||||
range=(0.0, 1.0, 0.01),
|
||||
invalidate=True,
|
||||
),
|
||||
desc.FloatParam(
|
||||
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.",
|
||||
value=0.3,
|
||||
range=(0.0, 1.0, 0.01),
|
||||
invalidate=True,
|
||||
),
|
||||
desc.FloatParam(
|
||||
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.",
|
||||
value=1.0,
|
||||
range=(0.0, 1.0, 0.01),
|
||||
invalidate=True,
|
||||
),
|
||||
desc.FloatParam(
|
||||
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.",
|
||||
value=0.3,
|
||||
range=(0.0, 1.0, 0.01),
|
||||
invalidate=True,
|
||||
),
|
||||
desc.FloatParam(
|
||||
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.",
|
||||
value=1.0,
|
||||
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"
|
||||
"If not, only the selected area is considered.",
|
||||
value=True,
|
||||
invalidate=True,
|
||||
),
|
||||
desc.IntParam(
|
||||
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.",
|
||||
value=0,
|
||||
range=(0, 50, 1),
|
||||
invalidate=True,
|
||||
),
|
||||
desc.IntParam(
|
||||
name="shrinkRadius",
|
||||
|
@ -115,21 +105,18 @@ class ImageMasking(desc.AVCommandLineNode):
|
|||
description="Shrink the selected area.",
|
||||
value=0,
|
||||
range=(0, 50, 1),
|
||||
invalidate=True,
|
||||
),
|
||||
desc.File(
|
||||
name="depthMapFolder",
|
||||
label="Depth Mask Folder",
|
||||
description="Depth mask folder.",
|
||||
value="",
|
||||
invalidate=True,
|
||||
),
|
||||
desc.StringParam(
|
||||
name="depthMapExp",
|
||||
label="Depth Mask Expression",
|
||||
description="Depth mask expression, like '{inputFolder}/{stem}-depth.{ext}'.",
|
||||
value="",
|
||||
invalidate=True,
|
||||
),
|
||||
desc.ChoiceParam(
|
||||
name="verboseLevel",
|
||||
|
@ -138,7 +125,6 @@ class ImageMasking(desc.AVCommandLineNode):
|
|||
values=VERBOSE_LEVEL,
|
||||
value="info",
|
||||
exclusive=True,
|
||||
invalidate=False,
|
||||
),
|
||||
]
|
||||
|
||||
|
@ -148,6 +134,5 @@ class ImageMasking(desc.AVCommandLineNode):
|
|||
label="Output",
|
||||
description="Output folder.",
|
||||
value=desc.Node.internalFolder,
|
||||
invalidate=False,
|
||||
),
|
||||
]
|
||||
|
|
|
@ -40,7 +40,6 @@ If images have known poses, use frustum intersection else use VocabularuTree.
|
|||
label="SfMData",
|
||||
description="Input SfMData file.",
|
||||
value="",
|
||||
invalidate=True,
|
||||
),
|
||||
desc.ListAttribute(
|
||||
elementDesc=desc.File(
|
||||
|
@ -48,7 +47,6 @@ If images have known poses, use frustum intersection else use VocabularuTree.
|
|||
label="Features Folder",
|
||||
description="Folder containing some extracted features and descriptors.",
|
||||
value="",
|
||||
invalidate=True,
|
||||
),
|
||||
name="featuresFolders",
|
||||
label="Features Folders",
|
||||
|
@ -69,7 +67,6 @@ If images have known poses, use frustum intersection else use VocabularuTree.
|
|||
value="SequentialAndVocabularyTree",
|
||||
values=["VocabularyTree", "Sequential", "SequentialAndVocabularyTree", "Exhaustive", "Frustum", "FrustumOrVocabularyTree"],
|
||||
exclusive=True,
|
||||
invalidate=True,
|
||||
),
|
||||
desc.File(
|
||||
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"
|
||||
"If not provided, the weights will be computed on the database built with the provided set.",
|
||||
value="",
|
||||
invalidate=True,
|
||||
advanced=True,
|
||||
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.",
|
||||
value=200,
|
||||
range=(0, 500, 1),
|
||||
invalidate=True,
|
||||
advanced=True,
|
||||
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.",
|
||||
value=500,
|
||||
range=(0, 100000, 1),
|
||||
invalidate=True,
|
||||
advanced=True,
|
||||
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).",
|
||||
value=40,
|
||||
range=(0, 1000, 1),
|
||||
invalidate=True,
|
||||
advanced=True,
|
||||
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).",
|
||||
value=5,
|
||||
range=(0, 1000, 1),
|
||||
invalidate=True,
|
||||
advanced=True,
|
||||
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,
|
||||
value="info",
|
||||
exclusive=True,
|
||||
invalidate=False,
|
||||
),
|
||||
]
|
||||
|
||||
|
@ -147,6 +138,5 @@ If images have known poses, use frustum intersection else use VocabularuTree.
|
|||
label="Image Pairs",
|
||||
description="Filepath to the output file with the list of selected image pairs.",
|
||||
value=desc.Node.internalFolder + "imageMatches.txt",
|
||||
invalidate=False,
|
||||
),
|
||||
]
|
||||
|
|
|
@ -25,14 +25,12 @@ Thanks to this node, the FeatureMatching node will only compute the matches betw
|
|||
label="Input A",
|
||||
description="First input SfMData file.",
|
||||
value="",
|
||||
invalidate=True,
|
||||
),
|
||||
desc.File(
|
||||
name="inputB",
|
||||
label="Input B",
|
||||
description="Second input SfMData file.",
|
||||
value="",
|
||||
invalidate=True,
|
||||
),
|
||||
desc.ListAttribute(
|
||||
elementDesc=desc.File(
|
||||
|
@ -40,7 +38,6 @@ Thanks to this node, the FeatureMatching node will only compute the matches betw
|
|||
label="Features Folder",
|
||||
description="Folder containing some extracted features and descriptors.",
|
||||
value="",
|
||||
invalidate=True,
|
||||
),
|
||||
name="featuresFolders",
|
||||
label="Features Folders",
|
||||
|
@ -60,7 +57,6 @@ Thanks to this node, the FeatureMatching node will only compute the matches betw
|
|||
value="SequentialAndVocabularyTree",
|
||||
values=["VocabularyTree", "SequentialAndVocabularyTree", "Exhaustive", "Frustum"],
|
||||
exclusive=True,
|
||||
invalidate=True,
|
||||
),
|
||||
desc.File(
|
||||
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"
|
||||
"If not provided, the weights will be computed on the database built with the provided set.",
|
||||
value="",
|
||||
invalidate=True,
|
||||
advanced=True,
|
||||
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",
|
||||
values=["a/a+a/b","a/ab", "a/b"],
|
||||
exclusive=True,
|
||||
invalidate=True,
|
||||
),
|
||||
desc.IntParam(
|
||||
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.",
|
||||
value=200,
|
||||
range=(0, 500, 1),
|
||||
invalidate=True,
|
||||
advanced=True,
|
||||
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.",
|
||||
value=500,
|
||||
range=(0, 100000, 1),
|
||||
invalidate=True,
|
||||
advanced=True,
|
||||
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).",
|
||||
value=40,
|
||||
range=(0, 1000, 1),
|
||||
invalidate=True,
|
||||
advanced=True,
|
||||
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).",
|
||||
value=5,
|
||||
range=(0, 1000, 1),
|
||||
invalidate=True,
|
||||
advanced=True,
|
||||
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,
|
||||
value="info",
|
||||
exclusive=True,
|
||||
invalidate=False,
|
||||
),
|
||||
]
|
||||
|
||||
|
@ -150,13 +139,11 @@ Thanks to this node, the FeatureMatching node will only compute the matches betw
|
|||
label="List File",
|
||||
description="Filepath to the output file with the list of selected image pairs.",
|
||||
value=desc.Node.internalFolder + "imageMatches.txt",
|
||||
invalidate=False,
|
||||
),
|
||||
desc.File(
|
||||
name="outputCombinedSfM",
|
||||
label="Combined SfM",
|
||||
description="Path for the combined SfMData file.",
|
||||
value=desc.Node.internalFolder + "combineSfM.sfm",
|
||||
invalidate=False,
|
||||
),
|
||||
]
|
||||
|
|
|
@ -52,7 +52,6 @@ Convert or apply filtering to the input images.
|
|||
" - '?' matches one character.\n"
|
||||
" - '*' matches zero character or more.",
|
||||
value="",
|
||||
invalidate=True,
|
||||
),
|
||||
desc.ListAttribute(
|
||||
elementDesc=desc.File(
|
||||
|
@ -60,7 +59,6 @@ Convert or apply filtering to the input images.
|
|||
label="Input Folder",
|
||||
description="Folder containing images.",
|
||||
value="",
|
||||
invalidate=True,
|
||||
),
|
||||
name="inputFolders",
|
||||
label="Input Images Folders",
|
||||
|
@ -72,7 +70,6 @@ Convert or apply filtering to the input images.
|
|||
label="Metadata Folder",
|
||||
description="Specific folder containing images with metadata.",
|
||||
value="",
|
||||
invalidate=True,
|
||||
),
|
||||
name="metadataFolders",
|
||||
label="Input Metadata Folders",
|
||||
|
@ -86,49 +83,42 @@ Convert or apply filtering to the input images.
|
|||
value="",
|
||||
values=["", "exr", "jpg", "tiff", "png"],
|
||||
exclusive=True,
|
||||
invalidate=True,
|
||||
),
|
||||
desc.BoolParam(
|
||||
name="reconstructedViewsOnly",
|
||||
label="Only Reconstructed Views",
|
||||
description="Only process reconstructed views.",
|
||||
value=False,
|
||||
invalidate=True,
|
||||
),
|
||||
desc.BoolParam(
|
||||
name="keepImageFilename",
|
||||
label="Keep Image Name",
|
||||
description="Keep the original image name instead of the view name.",
|
||||
value=False,
|
||||
invalidate=True,
|
||||
),
|
||||
desc.BoolParam(
|
||||
name="reorient",
|
||||
label="Automatic Reorientation",
|
||||
description="Automatic image reorientation.",
|
||||
value=False,
|
||||
invalidate=True,
|
||||
),
|
||||
desc.BoolParam(
|
||||
name="fixNonFinite",
|
||||
label="Fix Non-Finite",
|
||||
description="Fix non-finite pixels based on neighboring pixels average.",
|
||||
value=False,
|
||||
invalidate=True,
|
||||
),
|
||||
desc.BoolParam(
|
||||
name="exposureCompensation",
|
||||
label="Exposure Compensation",
|
||||
description="Exposure compensation (only valid for SfMData).",
|
||||
value=False,
|
||||
invalidate=True,
|
||||
),
|
||||
desc.BoolParam(
|
||||
name="rawAutoBright",
|
||||
label="RAW Auto Bright",
|
||||
description="Enable automatic exposure adjustment for RAW images.",
|
||||
value=False,
|
||||
invalidate=True,
|
||||
),
|
||||
desc.FloatParam(
|
||||
name="rawExposureAdjust",
|
||||
|
@ -136,7 +126,6 @@ Convert or apply filtering to the input images.
|
|||
description="Manual exposure adjustment in fstops for RAW images.",
|
||||
value=0.0,
|
||||
range=(-2.0, 3.0, 0.125),
|
||||
invalidate=True,
|
||||
),
|
||||
desc.GroupAttribute(
|
||||
name="lensCorrection",
|
||||
|
@ -149,14 +138,12 @@ Convert or apply filtering to the input images.
|
|||
label="Enable",
|
||||
description="Enable lens correction.",
|
||||
value=False,
|
||||
invalidate=True,
|
||||
),
|
||||
desc.BoolParam(
|
||||
name="geometry",
|
||||
label="Geometry",
|
||||
description="Geometry correction if a model is available in the SfMData.",
|
||||
value=False,
|
||||
invalidate=True,
|
||||
enabled=lambda node: node.lensCorrection.lensCorrectionEnabled.value,
|
||||
),
|
||||
desc.BoolParam(
|
||||
|
@ -164,7 +151,6 @@ Convert or apply filtering to the input images.
|
|||
label="Vignetting",
|
||||
description="Vignetting correction if the model parameters are available in the metadata.",
|
||||
value=False,
|
||||
invalidate=True,
|
||||
enabled=lambda node: node.lensCorrection.lensCorrectionEnabled.value,
|
||||
),
|
||||
desc.BoolParam(
|
||||
|
@ -172,7 +158,6 @@ Convert or apply filtering to the input images.
|
|||
label="Chromatic Aberration",
|
||||
description="Chromatic aberration (fringing) correction if the model parameters are available in the metadata.",
|
||||
value=False,
|
||||
invalidate=True,
|
||||
enabled=lambda node: node.lensCorrection.lensCorrectionEnabled.value,
|
||||
),
|
||||
],
|
||||
|
@ -183,7 +168,6 @@ Convert or apply filtering to the input images.
|
|||
description="Scale factor.",
|
||||
value=1.0,
|
||||
range=(0.0, 1.0, 0.01),
|
||||
invalidate=True,
|
||||
),
|
||||
desc.IntParam(
|
||||
name="maxWidth",
|
||||
|
@ -191,7 +175,6 @@ Convert or apply filtering to the input images.
|
|||
description="Maximum width of the output images (0: ignored).",
|
||||
value=0,
|
||||
range=(0, 10000, 1),
|
||||
invalidate=True,
|
||||
),
|
||||
desc.IntParam(
|
||||
name="maxHeight",
|
||||
|
@ -199,7 +182,6 @@ Convert or apply filtering to the input images.
|
|||
description="Maximum height of the output images (0: ignored).",
|
||||
value=0,
|
||||
range=(0, 10000, 1),
|
||||
invalidate=True,
|
||||
),
|
||||
desc.FloatParam(
|
||||
name="contrast",
|
||||
|
@ -207,7 +189,6 @@ Convert or apply filtering to the input images.
|
|||
description="Contrast.",
|
||||
value=1.0,
|
||||
range=(0.0, 100.0, 0.1),
|
||||
invalidate=True,
|
||||
),
|
||||
desc.IntParam(
|
||||
name="medianFilter",
|
||||
|
@ -215,7 +196,6 @@ Convert or apply filtering to the input images.
|
|||
description="Median filter.",
|
||||
value=0,
|
||||
range=(0, 10, 1),
|
||||
invalidate=True,
|
||||
),
|
||||
desc.BoolParam(
|
||||
name="fillHoles",
|
||||
|
@ -223,7 +203,6 @@ Convert or apply filtering to the input images.
|
|||
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.",
|
||||
value=False,
|
||||
invalidate=True,
|
||||
),
|
||||
desc.GroupAttribute(
|
||||
name="sharpenFilter",
|
||||
|
@ -236,7 +215,6 @@ Convert or apply filtering to the input images.
|
|||
label="Enable",
|
||||
description="Use sharpen filter.",
|
||||
value=False,
|
||||
invalidate=True,
|
||||
),
|
||||
desc.IntParam(
|
||||
name="width",
|
||||
|
@ -244,7 +222,6 @@ Convert or apply filtering to the input images.
|
|||
description="Sharpening width.",
|
||||
value=3,
|
||||
range=(1, 9, 2),
|
||||
invalidate=True,
|
||||
enabled=lambda node: node.sharpenFilter.sharpenFilterEnabled.value,
|
||||
),
|
||||
desc.FloatParam(
|
||||
|
@ -253,7 +230,6 @@ Convert or apply filtering to the input images.
|
|||
description="Sharpening contrast.",
|
||||
value=1.0,
|
||||
range=(0.0, 100.0, 0.1),
|
||||
invalidate=True,
|
||||
enabled=lambda node: node.sharpenFilter.sharpenFilterEnabled.value,
|
||||
),
|
||||
desc.FloatParam(
|
||||
|
@ -262,7 +238,6 @@ Convert or apply filtering to the input images.
|
|||
description="Sharpening threshold.",
|
||||
value=0.0,
|
||||
range=(0.0, 1.0, 0.01),
|
||||
invalidate=True,
|
||||
enabled=lambda node: node.sharpenFilter.sharpenFilterEnabled.value,
|
||||
),
|
||||
],
|
||||
|
@ -278,7 +253,6 @@ Convert or apply filtering to the input images.
|
|||
label="Enable",
|
||||
description="Use bilateral filter.",
|
||||
value=False,
|
||||
invalidate=True,
|
||||
),
|
||||
desc.IntParam(
|
||||
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.",
|
||||
value=0,
|
||||
range=(0, 9, 1),
|
||||
invalidate=True,
|
||||
enabled=lambda node: node.bilateralFilter.bilateralFilterEnabled.value,
|
||||
),
|
||||
desc.FloatParam(
|
||||
|
@ -296,7 +269,6 @@ Convert or apply filtering to the input images.
|
|||
description="Bilateral filter sigma in the coordinate space.",
|
||||
value=0.0,
|
||||
range=(0.0, 150.0, 0.01),
|
||||
invalidate=True,
|
||||
enabled=lambda node: node.bilateralFilter.bilateralFilterEnabled.value,
|
||||
),
|
||||
desc.FloatParam(
|
||||
|
@ -305,7 +277,6 @@ Convert or apply filtering to the input images.
|
|||
description="Bilateral filter sigma in the color space.",
|
||||
value=0.0,
|
||||
range=(0.0, 150.0, 0.01),
|
||||
invalidate=True,
|
||||
enabled=lambda node: node.bilateralFilter.bilateralFilterEnabled.value,
|
||||
),
|
||||
],
|
||||
|
@ -321,7 +292,6 @@ Convert or apply filtering to the input images.
|
|||
label="Enable",
|
||||
description="Use Contrast Limited Adaptive Histogram Equalization (CLAHE) filter.",
|
||||
value=False,
|
||||
invalidate=True,
|
||||
),
|
||||
desc.FloatParam(
|
||||
name="claheClipLimit",
|
||||
|
@ -329,7 +299,6 @@ Convert or apply filtering to the input images.
|
|||
description="Threshold for contrast limiting.",
|
||||
value=4.0,
|
||||
range=(0.0, 8.0, 1.0),
|
||||
invalidate=True,
|
||||
enabled=lambda node: node.claheFilter.claheEnabled.value,
|
||||
),
|
||||
desc.IntParam(
|
||||
|
@ -339,7 +308,6 @@ Convert or apply filtering to the input images.
|
|||
"Input image will be divided into equally sized rectangular tiles.",
|
||||
value=8,
|
||||
range=(4, 64, 4),
|
||||
invalidate=True,
|
||||
enabled=lambda node: node.claheFilter.claheEnabled.value,
|
||||
),
|
||||
],
|
||||
|
@ -355,7 +323,6 @@ Convert or apply filtering to the input images.
|
|||
label="Enable",
|
||||
description="Add noise.",
|
||||
value=False,
|
||||
invalidate=True,
|
||||
),
|
||||
desc.ChoiceParam(
|
||||
name="noiseMethod",
|
||||
|
@ -367,7 +334,6 @@ Convert or apply filtering to the input images.
|
|||
value="uniform",
|
||||
values=["uniform", "gaussian", "salt"],
|
||||
exclusive=True,
|
||||
invalidate=True,
|
||||
enabled=lambda node: node.noiseFilter.noiseEnabled.value,
|
||||
),
|
||||
desc.FloatParam(
|
||||
|
@ -379,7 +345,6 @@ Convert or apply filtering to the input images.
|
|||
" - salt: the value of the specified portion of pixels.",
|
||||
value=0.0,
|
||||
range=(0.0, 1.0, 0.0001),
|
||||
invalidate=True,
|
||||
enabled=lambda node: node.noiseFilter.noiseEnabled.value,
|
||||
),
|
||||
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.",
|
||||
value=1.0,
|
||||
range=(0.0, 1.0, 0.0001),
|
||||
invalidate=True,
|
||||
enabled=lambda node: node.noiseFilter.noiseEnabled.value,
|
||||
),
|
||||
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"
|
||||
"Otherwise, a separate noise value will be computed for each channel.",
|
||||
value=True,
|
||||
invalidate=True,
|
||||
enabled=lambda node: node.noiseFilter.noiseEnabled.value,
|
||||
),
|
||||
],
|
||||
|
@ -417,7 +380,6 @@ Convert or apply filtering to the input images.
|
|||
label="Enable",
|
||||
description="Use Non-Local Mean Denoising from OpenCV to denoise images.",
|
||||
value=False,
|
||||
invalidate=True,
|
||||
),
|
||||
desc.FloatParam(
|
||||
name="nlmFilterH",
|
||||
|
@ -427,7 +389,6 @@ Convert or apply filtering to the input images.
|
|||
"smaller H value preserves details but also preserves some noise.",
|
||||
value=5.0,
|
||||
range=(1.0, 1000.0, 0.01),
|
||||
invalidate=True,
|
||||
enabled=lambda node: node.nlmFilter.nlmFilterEnabled.value,
|
||||
),
|
||||
desc.FloatParam(
|
||||
|
@ -438,7 +399,6 @@ Convert or apply filtering to the input images.
|
|||
"smaller HColor value preserves details but also preserves some noise.",
|
||||
value=10.0,
|
||||
range=(0.0, 1000.0, 0.01),
|
||||
invalidate=True,
|
||||
enabled=lambda node: node.nlmFilter.nlmFilterEnabled.value,
|
||||
),
|
||||
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.",
|
||||
value=7,
|
||||
range=(1, 101, 2),
|
||||
invalidate=True,
|
||||
enabled=lambda node: node.nlmFilter.nlmFilterEnabled.value,
|
||||
),
|
||||
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.",
|
||||
value=21,
|
||||
range=(1, 1001, 2),
|
||||
invalidate=True,
|
||||
enabled=lambda node: node.nlmFilter.nlmFilterEnabled.value,
|
||||
),
|
||||
],
|
||||
|
@ -473,7 +431,6 @@ Convert or apply filtering to the input images.
|
|||
label="Enable",
|
||||
description="Apply pixel aspect ratio.",
|
||||
value=False,
|
||||
invalidate=True,
|
||||
),
|
||||
desc.BoolParam(
|
||||
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"
|
||||
"Otherwise, increase width by upsampling image columns.",
|
||||
value=False,
|
||||
invalidate=True,
|
||||
enabled=lambda node: node.parFilter.parEnabled.value,
|
||||
),
|
||||
],
|
||||
|
@ -493,7 +449,6 @@ Convert or apply filtering to the input images.
|
|||
value="rgba",
|
||||
values=["rgba", "rgb", "grayscale"],
|
||||
exclusive=True,
|
||||
invalidate=True,
|
||||
),
|
||||
desc.ChoiceParam(
|
||||
name="inputColorSpace",
|
||||
|
@ -502,7 +457,6 @@ Convert or apply filtering to the input images.
|
|||
values=COLORSPACES,
|
||||
value="AUTO",
|
||||
exclusive=True,
|
||||
invalidate=True,
|
||||
),
|
||||
desc.ChoiceParam(
|
||||
name="outputColorSpace",
|
||||
|
@ -511,7 +465,6 @@ Convert or apply filtering to the input images.
|
|||
values=COLORSPACES,
|
||||
value="AUTO",
|
||||
exclusive=True,
|
||||
invalidate=True,
|
||||
),
|
||||
desc.ChoiceParam(
|
||||
name="workingColorSpace",
|
||||
|
@ -520,7 +473,6 @@ Convert or apply filtering to the input images.
|
|||
values=COLORSPACES,
|
||||
value="Linear",
|
||||
exclusive=True,
|
||||
invalidate=True,
|
||||
enabled=lambda node: not node.applyDcpMetadata.value,
|
||||
),
|
||||
desc.ChoiceParam(
|
||||
|
@ -530,14 +482,12 @@ Convert or apply filtering to the input images.
|
|||
values=RAW_COLOR_INTERPRETATION,
|
||||
value="DCPLinearProcessing" if os.environ.get("ALICEVISION_COLOR_PROFILE_DB", "") else "LibRawWhiteBalancing",
|
||||
exclusive=True,
|
||||
invalidate=True,
|
||||
),
|
||||
desc.BoolParam(
|
||||
name="applyDcpMetadata",
|
||||
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.",
|
||||
value=False,
|
||||
invalidate=True,
|
||||
),
|
||||
desc.File(
|
||||
name="colorProfileDatabase",
|
||||
|
@ -552,7 +502,6 @@ Convert or apply filtering to the input images.
|
|||
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.",
|
||||
value=True,
|
||||
invalidate=True,
|
||||
enabled=lambda node: (node.rawColorInterpretation.value == "DCPLinearProcessing") or (node.rawColorInterpretation.value == "DCPMetadata"),
|
||||
),
|
||||
desc.BoolParam(
|
||||
|
@ -560,7 +509,6 @@ Convert or apply filtering to the input images.
|
|||
label="Use DCP Color Matrix Only",
|
||||
description="Use only the Color Matrix information from the DCP and ignore the Forward Matrix.",
|
||||
value=True,
|
||||
invalidate=True,
|
||||
enabled=lambda node: (node.rawColorInterpretation.value == "DCPLinearProcessing") or (node.rawColorInterpretation.value == "DCPMetadata"),
|
||||
),
|
||||
desc.BoolParam(
|
||||
|
@ -568,7 +516,6 @@ Convert or apply filtering to the input images.
|
|||
label="WB After Demosaicing",
|
||||
description="Do White Balance after demosaicing, just before DCP profile application.",
|
||||
value=False,
|
||||
invalidate=True,
|
||||
enabled=lambda node: (node.rawColorInterpretation.value == "DCPLinearProcessing") or (node.rawColorInterpretation.value == "DCPMetadata"),
|
||||
),
|
||||
desc.ChoiceParam(
|
||||
|
@ -578,7 +525,6 @@ Convert or apply filtering to the input images.
|
|||
value="AHD",
|
||||
values=["linear", "VNG", "PPG", "AHD", "DCB", "AHD-Mod", "AFD", "VCD", "Mixed", "LMMSE", "AMaZE", "DHT", "AAHD", "none"],
|
||||
exclusive=True,
|
||||
invalidate=True,
|
||||
),
|
||||
desc.ChoiceParam(
|
||||
name="highlightMode",
|
||||
|
@ -591,7 +537,6 @@ Convert or apply filtering to the input images.
|
|||
value=0,
|
||||
values=[0, 1, 2, 3, 4, 5, 6, 7, 8, 9],
|
||||
exclusive=True,
|
||||
invalidate=True,
|
||||
),
|
||||
desc.FloatParam(
|
||||
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.",
|
||||
value=-1.0,
|
||||
range=(-1.0, 10000.0, 1.0),
|
||||
invalidate=True,
|
||||
),
|
||||
desc.File(
|
||||
name="lensCorrectionProfileInfo",
|
||||
|
@ -614,7 +558,6 @@ Convert or apply filtering to the input images.
|
|||
label="LCP Generic Search",
|
||||
description="The lens name and camera maker are used to match the LCP database, but the camera model is ignored.",
|
||||
value=True,
|
||||
invalidate=True,
|
||||
advanced=True,
|
||||
),
|
||||
desc.ChoiceParam(
|
||||
|
@ -628,7 +571,6 @@ Convert or apply filtering to the input images.
|
|||
values=EXR_STORAGE_DATA_TYPE,
|
||||
value="float",
|
||||
exclusive=True,
|
||||
invalidate=True,
|
||||
),
|
||||
desc.ChoiceParam(
|
||||
name="exrCompressionMethod",
|
||||
|
@ -637,7 +579,6 @@ Convert or apply filtering to the input images.
|
|||
value="auto",
|
||||
values=["none", "auto", "rle", "zip", "zips", "piz", "pxr24", "b44", "b44a", "dwaa", "dwab"],
|
||||
exclusive=True,
|
||||
invalidate=True,
|
||||
),
|
||||
desc.IntParam(
|
||||
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.",
|
||||
value=0,
|
||||
range=(0, 500, 1),
|
||||
invalidate=True,
|
||||
enabled=lambda node: node.exrCompressionMethod.value in ["dwaa", "dwab", "zip", "zips"],
|
||||
),
|
||||
desc.BoolParam(
|
||||
|
@ -655,7 +595,6 @@ Convert or apply filtering to the input images.
|
|||
label="JPEG Compress",
|
||||
description="Enable JPEG compression.",
|
||||
value=True,
|
||||
invalidate=True,
|
||||
),
|
||||
desc.IntParam(
|
||||
name="jpegQuality",
|
||||
|
@ -663,7 +602,6 @@ Convert or apply filtering to the input images.
|
|||
description="JPEG images quality after compression.",
|
||||
value=90,
|
||||
range=(0, 100, 1),
|
||||
invalidate=True,
|
||||
enabled=lambda node: node.jpegCompress.value,
|
||||
),
|
||||
desc.ChoiceParam(
|
||||
|
@ -673,7 +611,6 @@ Convert or apply filtering to the input images.
|
|||
values=VERBOSE_LEVEL,
|
||||
value="info",
|
||||
exclusive=True,
|
||||
invalidate=False,
|
||||
),
|
||||
]
|
||||
|
||||
|
@ -683,7 +620,6 @@ Convert or apply filtering to the input images.
|
|||
label="SfMData",
|
||||
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 "",
|
||||
invalidate=False,
|
||||
group="", # do not export on the command line
|
||||
),
|
||||
desc.File(
|
||||
|
@ -691,7 +627,6 @@ Convert or apply filtering to the input images.
|
|||
label="Folder",
|
||||
description="Output images folder.",
|
||||
value=desc.Node.internalFolder,
|
||||
invalidate=False,
|
||||
),
|
||||
desc.File(
|
||||
name="outputImages",
|
||||
|
@ -700,6 +635,5 @@ Convert or apply filtering to the input images.
|
|||
semantic="image",
|
||||
value=outputImagesValueFunct,
|
||||
group="", # do not export on the command line
|
||||
invalidate=False,
|
||||
),
|
||||
]
|
||||
|
|
|
@ -22,14 +22,12 @@ Generate a mask with segmented labels for each pixel.
|
|||
label="Input",
|
||||
description="SfMData file input.",
|
||||
value="",
|
||||
invalidate=True,
|
||||
),
|
||||
desc.File(
|
||||
name="modelPath",
|
||||
label="Segmentation Model",
|
||||
description="Weights file for the internal model.",
|
||||
value="${ALICEVISION_SEMANTIC_SEGMENTATION_MODEL}",
|
||||
invalidate=True,
|
||||
),
|
||||
desc.ChoiceParam(
|
||||
name="validClasses",
|
||||
|
@ -49,14 +47,12 @@ Generate a mask with segmented labels for each pixel.
|
|||
"train", "tvmonitor"
|
||||
],
|
||||
exclusive=False,
|
||||
invalidate=True,
|
||||
),
|
||||
desc.BoolParam(
|
||||
name="maskInvert",
|
||||
label="Invert Masks",
|
||||
description="Invert mask values. If selected, the pixels corresponding to the mask will be set to 0 instead of 255.",
|
||||
value=False,
|
||||
invalidate=True,
|
||||
),
|
||||
desc.BoolParam(
|
||||
name="useGpu",
|
||||
|
@ -70,7 +66,6 @@ Generate a mask with segmented labels for each pixel.
|
|||
label="Keep Filename",
|
||||
description="Keep Input Filename",
|
||||
value=False,
|
||||
invalidate=True,
|
||||
),
|
||||
desc.ChoiceParam(
|
||||
name="verboseLevel",
|
||||
|
@ -79,7 +74,6 @@ Generate a mask with segmented labels for each pixel.
|
|||
values=VERBOSE_LEVEL,
|
||||
value="info",
|
||||
exclusive=True,
|
||||
invalidate=False,
|
||||
),
|
||||
]
|
||||
|
||||
|
@ -89,7 +83,6 @@ Generate a mask with segmented labels for each pixel.
|
|||
label="Masks Folder",
|
||||
description="Output path for the masks.",
|
||||
value=desc.Node.internalFolder,
|
||||
invalidate=False,
|
||||
),
|
||||
desc.File(
|
||||
name="masks",
|
||||
|
@ -98,6 +91,5 @@ Generate a mask with segmented labels for each pixel.
|
|||
semantic="image",
|
||||
value=lambda attr: desc.Node.internalFolder + "<VIEW_ID>.exr" if not attr.node.keepFilename.value else desc.Node.internalFolder + "<FILESTEM>.exr",
|
||||
group="",
|
||||
invalidate=False,
|
||||
),
|
||||
]
|
||||
|
|
|
@ -20,7 +20,6 @@ Import an E57 file and generate an SfMData.
|
|||
label="E57 File",
|
||||
description="Path to an E57 file.",
|
||||
value="",
|
||||
invalidate=True,
|
||||
),
|
||||
name="input",
|
||||
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.",
|
||||
value=0.01,
|
||||
range=(0.0, 0.2, 0.001),
|
||||
invalidate=True,
|
||||
),
|
||||
desc.FloatParam(
|
||||
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.",
|
||||
value=0.03,
|
||||
range=(0.0, 1.0, 0.01),
|
||||
invalidate=True,
|
||||
),
|
||||
desc.IntParam(
|
||||
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).",
|
||||
value=5000000,
|
||||
range=(0, 10000000, 100000),
|
||||
invalidate=True,
|
||||
),
|
||||
desc.ChoiceParam(
|
||||
name="verboseLevel",
|
||||
|
@ -57,7 +53,6 @@ Import an E57 file and generate an SfMData.
|
|||
values=VERBOSE_LEVEL,
|
||||
value="info",
|
||||
exclusive=True,
|
||||
invalidate=False,
|
||||
),
|
||||
]
|
||||
|
||||
|
@ -67,6 +62,5 @@ Import an E57 file and generate an SfMData.
|
|||
label="Output",
|
||||
description="Path to the output JSON file.",
|
||||
value=desc.Node.internalFolder + "inputset.json",
|
||||
invalidate=False,
|
||||
),
|
||||
]
|
||||
|
|
|
@ -18,14 +18,12 @@ class ImportKnownPoses(desc.AVCommandLineNode):
|
|||
label="SfMData",
|
||||
description="Input SfMData file.",
|
||||
value="",
|
||||
invalidate=True,
|
||||
),
|
||||
desc.File(
|
||||
name="knownPosesData",
|
||||
label="Known Poses Data",
|
||||
description="Known poses data in the JSON or XMP format.",
|
||||
value="",
|
||||
invalidate=True,
|
||||
),
|
||||
desc.ChoiceParam(
|
||||
name="verboseLevel",
|
||||
|
@ -34,7 +32,6 @@ class ImportKnownPoses(desc.AVCommandLineNode):
|
|||
values=VERBOSE_LEVEL,
|
||||
value="info",
|
||||
exclusive=True,
|
||||
invalidate=False,
|
||||
),
|
||||
]
|
||||
|
||||
|
@ -44,7 +41,6 @@ class ImportKnownPoses(desc.AVCommandLineNode):
|
|||
label="Output",
|
||||
description="Path to the output SfMData file.",
|
||||
value=desc.Node.internalFolder + "/sfmData.abc",
|
||||
invalidate=False,
|
||||
),
|
||||
]
|
||||
|
||||
|
|
|
@ -73,7 +73,6 @@ You can extract frames at regular interval by configuring only the min/maxFrameS
|
|||
label="Input Path",
|
||||
description="Input path.",
|
||||
value="",
|
||||
invalidate=True,
|
||||
),
|
||||
name="inputPaths",
|
||||
label="Input Paths",
|
||||
|
@ -85,7 +84,6 @@ You can extract frames at regular interval by configuring only the min/maxFrameS
|
|||
label="Brand",
|
||||
description="Camera brand.",
|
||||
value="",
|
||||
invalidate=True,
|
||||
),
|
||||
name="brands",
|
||||
label="Brands",
|
||||
|
@ -97,7 +95,6 @@ You can extract frames at regular interval by configuring only the min/maxFrameS
|
|||
label="Model",
|
||||
description="Camera model.",
|
||||
value="",
|
||||
invalidate=True,
|
||||
),
|
||||
name="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).",
|
||||
value=0.0,
|
||||
range=(0.0, 500.0, 1.0),
|
||||
invalidate=True,
|
||||
),
|
||||
name="mmFocals",
|
||||
label="Focals",
|
||||
|
@ -121,7 +117,6 @@ You can extract frames at regular interval by configuring only the min/maxFrameS
|
|||
label="Sensor Database",
|
||||
description="Camera sensor width database path.",
|
||||
value="${ALICEVISION_SENSOR_DB}",
|
||||
invalidate=True,
|
||||
),
|
||||
desc.ListAttribute(
|
||||
elementDesc=desc.File(
|
||||
|
@ -129,7 +124,6 @@ You can extract frames at regular interval by configuring only the min/maxFrameS
|
|||
label="Masks Path",
|
||||
description="Directory containing masks to apply to the frames.",
|
||||
value="",
|
||||
invalidate=True,
|
||||
),
|
||||
name="maskPaths",
|
||||
label="Masks",
|
||||
|
@ -150,7 +144,6 @@ You can extract frames at regular interval by configuring only the min/maxFrameS
|
|||
label="Use Smart Keyframe Selection",
|
||||
description="Use the smart keyframe selection.",
|
||||
value=True,
|
||||
invalidate=True,
|
||||
),
|
||||
desc.GroupAttribute(
|
||||
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.",
|
||||
value=12,
|
||||
range=(1, 1000, 1),
|
||||
invalidate=True,
|
||||
enabled=lambda node: node.regularSelection.enabled,
|
||||
),
|
||||
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.",
|
||||
value=0,
|
||||
range=(0, 1000, 1),
|
||||
invalidate=True,
|
||||
enabled=lambda node: node.regularSelection.enabled,
|
||||
),
|
||||
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).",
|
||||
value=0,
|
||||
range=(0, 10000, 1),
|
||||
invalidate=True,
|
||||
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.",
|
||||
value=10.0,
|
||||
range=(0.0, 100.0, 1.0),
|
||||
invalidate=True,
|
||||
enabled=lambda node: node.smartSelection.enabled,
|
||||
),
|
||||
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.",
|
||||
value=40,
|
||||
range=(1, 100, 1),
|
||||
invalidate=True,
|
||||
enabled=lambda node: node.smartSelection.enabled,
|
||||
),
|
||||
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.",
|
||||
value=2000,
|
||||
range=(1, 10000, 1),
|
||||
invalidate=True,
|
||||
enabled=lambda node: node.smartSelection.enabled,
|
||||
),
|
||||
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.",
|
||||
value=720,
|
||||
range=(0, 4000, 1),
|
||||
invalidate=True,
|
||||
enabled=lambda node: node.smartSelection.enabled,
|
||||
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.",
|
||||
value=720,
|
||||
range=(0, 4000, 1),
|
||||
invalidate=True,
|
||||
enabled=lambda node: node.smartSelection.enabled,
|
||||
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.",
|
||||
value=200,
|
||||
range=(1, 10000, 1),
|
||||
invalidate=True,
|
||||
enabled=lambda node: node.smartSelection.enabled,
|
||||
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.",
|
||||
value=90,
|
||||
range=(10, 2000, 1),
|
||||
invalidate=True,
|
||||
enabled=lambda node: node.smartSelection.enabled,
|
||||
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].",
|
||||
value=False,
|
||||
enabled=lambda node: node.outputExtension.value != "none",
|
||||
invalidate=True,
|
||||
),
|
||||
desc.ChoiceParam(
|
||||
name="outputExtension",
|
||||
|
@ -305,7 +287,6 @@ You can extract frames at regular interval by configuring only the min/maxFrameS
|
|||
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"),
|
||||
errorMessage="A video input has been provided. The output extension should be different from 'none'.",
|
||||
invalidate=True,
|
||||
),
|
||||
desc.ChoiceParam(
|
||||
name="storageDataType",
|
||||
|
@ -318,7 +299,6 @@ You can extract frames at regular interval by configuring only the min/maxFrameS
|
|||
values=EXR_STORAGE_DATA_TYPE,
|
||||
value="float",
|
||||
exclusive=True,
|
||||
invalidate=True,
|
||||
enabled=lambda node: node.outputExtension.value == "exr",
|
||||
advanced=True,
|
||||
),
|
||||
|
@ -342,14 +322,12 @@ You can extract frames at regular interval by configuring only the min/maxFrameS
|
|||
label="Export Scores To CSV",
|
||||
description="Export the computed sharpness and optical flow scores to a CSV file.",
|
||||
value=False,
|
||||
invalidate=True,
|
||||
),
|
||||
desc.StringParam(
|
||||
name="csvFilename",
|
||||
label="CSV Filename",
|
||||
description="Name of the CSV file to export. It will be written in the node's output folder.",
|
||||
value="scores.csv",
|
||||
invalidate=True,
|
||||
enabled=lambda node: node.debugOptions.debugScores.exportScores.value,
|
||||
),
|
||||
desc.BoolParam(
|
||||
|
@ -357,7 +335,6 @@ You can extract frames at regular interval by configuring only the min/maxFrameS
|
|||
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.",
|
||||
value=False,
|
||||
invalidate=True,
|
||||
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",
|
||||
description="Export each frame's optical flow HSV visualisation as PNG images.",
|
||||
value=False,
|
||||
invalidate=True,
|
||||
enabled=lambda node: node.debugOptions.opticalFlowVisualisation.enabled,
|
||||
),
|
||||
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"
|
||||
"If this option is selected, all the other options will be ignored.",
|
||||
value=False,
|
||||
invalidate=True,
|
||||
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",
|
||||
description="Skip the sharpness score computation. A fixed score of 1.0 will be applied by default to all the frames.",
|
||||
value=False,
|
||||
invalidate=True,
|
||||
enabled=lambda node: node.debugOptions.enabled,
|
||||
),
|
||||
desc.BoolParam(
|
||||
|
@ -401,7 +375,6 @@ You can extract frames at regular interval by configuring only the min/maxFrameS
|
|||
label="Skip Frame Selection",
|
||||
description="Compute the sharpness and optical flow scores, but do not proceed to the frame selection.",
|
||||
value=False,
|
||||
invalidate=True,
|
||||
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,
|
||||
value="info",
|
||||
exclusive=True,
|
||||
invalidate=False,
|
||||
),
|
||||
]
|
||||
|
||||
|
@ -423,14 +395,12 @@ You can extract frames at regular interval by configuring only the min/maxFrameS
|
|||
label="Folder",
|
||||
description="Output keyframes folder for extracted frames.",
|
||||
value=desc.Node.internalFolder,
|
||||
invalidate=False,
|
||||
),
|
||||
desc.File(
|
||||
name="outputSfMDataKeyframes",
|
||||
label="Keyframes SfMData",
|
||||
description="Output SfMData file containing all the selected keyframes.",
|
||||
value=desc.Node.internalFolder + "keyframes.sfm",
|
||||
invalidate=False,
|
||||
),
|
||||
desc.File(
|
||||
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"
|
||||
"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",
|
||||
invalidate=False,
|
||||
),
|
||||
]
|
||||
|
||||
|
|
|
@ -44,14 +44,12 @@ Calibrate LDR to HDR response curve from samples.
|
|||
label="SfMData",
|
||||
description="Input SfMData file.",
|
||||
value="",
|
||||
invalidate=True,
|
||||
),
|
||||
desc.File(
|
||||
name="samples",
|
||||
label="Samples Folder",
|
||||
description="Samples folder.",
|
||||
value=desc.Node.internalFolder,
|
||||
invalidate=True,
|
||||
),
|
||||
desc.IntParam(
|
||||
name="userNbBrackets",
|
||||
|
@ -72,7 +70,6 @@ Calibrate LDR to HDR response curve from samples.
|
|||
"else it is equal to 'userNbBrackets'.",
|
||||
value=0,
|
||||
range=(0, 15, 1),
|
||||
invalidate=True,
|
||||
group="bracketsParams",
|
||||
),
|
||||
desc.BoolParam(
|
||||
|
@ -80,7 +77,6 @@ Calibrate LDR to HDR response curve from samples.
|
|||
label="Bypass",
|
||||
description="Bypass HDR creation and use the medium bracket as the source for the next steps.",
|
||||
value=False,
|
||||
invalidate=True,
|
||||
enabled=lambda node: node.nbBrackets.value != 1,
|
||||
),
|
||||
desc.ChoiceParam(
|
||||
|
@ -95,7 +91,6 @@ Calibrate LDR to HDR response curve from samples.
|
|||
values=["auto", "linear", "debevec", "grossberg", "laguerre"],
|
||||
value="auto",
|
||||
exclusive=True,
|
||||
invalidate=True,
|
||||
enabled=lambda node: node.byPass.enabled and not node.byPass.value,
|
||||
),
|
||||
desc.ChoiceParam(
|
||||
|
@ -109,7 +104,6 @@ Calibrate LDR to HDR response curve from samples.
|
|||
value="default",
|
||||
values=["default", "gaussian", "triangle", "plateau"],
|
||||
exclusive=True,
|
||||
invalidate=True,
|
||||
enabled=lambda node: node.byPass.enabled and not node.byPass.value,
|
||||
),
|
||||
desc.IntParam(
|
||||
|
@ -118,7 +112,6 @@ Calibrate LDR to HDR response curve from samples.
|
|||
description="Quantization level like 8 bits or 10 bits.",
|
||||
value=10,
|
||||
range=(8, 14, 1),
|
||||
invalidate=True,
|
||||
advanced=True,
|
||||
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).",
|
||||
value=1000000,
|
||||
range=(8, 10000000, 1000),
|
||||
invalidate=True,
|
||||
advanced=True,
|
||||
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,
|
||||
value="info",
|
||||
exclusive=True,
|
||||
invalidate=False,
|
||||
),
|
||||
]
|
||||
|
||||
|
@ -163,7 +154,6 @@ Calibrate LDR to HDR response curve from samples.
|
|||
label="Response File",
|
||||
description="Path to the output response file.",
|
||||
value=desc.Node.internalFolder + "response_<INTRINSIC_ID>.csv",
|
||||
invalidate=False,
|
||||
),
|
||||
]
|
||||
|
||||
|
|
|
@ -43,14 +43,12 @@ Merge LDR images into HDR images.
|
|||
label="SfMData",
|
||||
description="Input SfMData file.",
|
||||
value="",
|
||||
invalidate=True,
|
||||
),
|
||||
desc.File(
|
||||
name="response",
|
||||
label="Response File",
|
||||
description="Response file.",
|
||||
value="",
|
||||
invalidate=True,
|
||||
),
|
||||
desc.IntParam(
|
||||
name="userNbBrackets",
|
||||
|
@ -71,7 +69,6 @@ Merge LDR images into HDR images.
|
|||
"is 0, else it is equal to 'userNbBrackets'.",
|
||||
value=0,
|
||||
range=(0, 15, 1),
|
||||
invalidate=True,
|
||||
group="bracketsParams",
|
||||
),
|
||||
desc.BoolParam(
|
||||
|
@ -79,7 +76,6 @@ Merge LDR images into HDR images.
|
|||
label="Manually Specify Ref Bracket",
|
||||
description="Manually specify the reference bracket index to control the exposure of the HDR image.",
|
||||
value=False,
|
||||
invalidate=True,
|
||||
group="user", # not used directly on the command line
|
||||
),
|
||||
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.",
|
||||
value=1,
|
||||
range=(-4, 4, 1),
|
||||
invalidate=True,
|
||||
enabled=lambda node: (node.nbBrackets.value != 1 and node.offsetRefBracketIndexEnabled.value),
|
||||
),
|
||||
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.",
|
||||
value=0.4,
|
||||
range=(0.0, 1.0, 0.01),
|
||||
invalidate=True,
|
||||
enabled=lambda node: (node.nbBrackets.value != 1 and not node.offsetRefBracketIndexEnabled.value),
|
||||
),
|
||||
desc.FloatParam(
|
||||
|
@ -107,7 +101,6 @@ Merge LDR images into HDR images.
|
|||
description="Minimum channel input value to be considered in advanced pixelwise merging.",
|
||||
value=0.05,
|
||||
range=(0.0, 1.0, 0.001),
|
||||
invalidate=True,
|
||||
enabled=lambda node: (node.nbBrackets.value != 1),
|
||||
),
|
||||
desc.FloatParam(
|
||||
|
@ -116,7 +109,6 @@ Merge LDR images into HDR images.
|
|||
description="Maximum channel input value to be considered in advanced pixelwise merging.",
|
||||
value=0.995,
|
||||
range=(0.0, 1.0, 0.001),
|
||||
invalidate=True,
|
||||
enabled=lambda node: (node.nbBrackets.value != 1),
|
||||
),
|
||||
desc.BoolParam(
|
||||
|
@ -124,7 +116,6 @@ Merge LDR images into HDR images.
|
|||
label="Compute Light Masks",
|
||||
description="Compute masks of low and high lights and missing info.",
|
||||
value=False,
|
||||
invalidate=True,
|
||||
enabled=lambda node: node.nbBrackets.value != 1,
|
||||
),
|
||||
desc.BoolParam(
|
||||
|
@ -132,7 +123,6 @@ Merge LDR images into HDR images.
|
|||
label="Bypass",
|
||||
description="Bypass HDR creation and use the medium bracket as the source for the next steps.",
|
||||
value=False,
|
||||
invalidate=True,
|
||||
enabled=lambda node: node.nbBrackets.value != 1,
|
||||
),
|
||||
desc.BoolParam(
|
||||
|
@ -140,7 +130,6 @@ Merge LDR images into HDR images.
|
|||
label="Keep Source Image Name",
|
||||
description="Keep the filename of the input image selected as central image for the output image filename.",
|
||||
value=False,
|
||||
invalidate=True,
|
||||
),
|
||||
desc.ChoiceParam(
|
||||
name="fusionWeight",
|
||||
|
@ -152,7 +141,6 @@ Merge LDR images into HDR images.
|
|||
value="gaussian",
|
||||
values=["gaussian", "triangle", "plateau"],
|
||||
exclusive=True,
|
||||
invalidate=True,
|
||||
enabled=lambda node: node.byPass.enabled and not node.byPass.value,
|
||||
),
|
||||
desc.IntParam(
|
||||
|
@ -161,7 +149,6 @@ Merge LDR images into HDR images.
|
|||
description="Quantization level like 8 bits or 10 bits.",
|
||||
value=10,
|
||||
range=(8, 14, 1),
|
||||
invalidate=True,
|
||||
advanced=True,
|
||||
enabled=lambda node: node.byPass.enabled and not node.byPass.value,
|
||||
),
|
||||
|
@ -173,7 +160,6 @@ Merge LDR images into HDR images.
|
|||
values=COLORSPACES,
|
||||
value="AUTO",
|
||||
exclusive=True,
|
||||
invalidate=True,
|
||||
enabled=lambda node: node.byPass.enabled and not node.byPass.value,
|
||||
),
|
||||
desc.BoolParam(
|
||||
|
@ -181,7 +167,6 @@ Merge LDR images into HDR images.
|
|||
label="Enable Highlight",
|
||||
description="Enable highlights correction.",
|
||||
value=False,
|
||||
invalidate=True,
|
||||
group="user", # not used directly on the command line
|
||||
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.",
|
||||
value=1.0,
|
||||
range=(0.0, 1.0, 0.01),
|
||||
invalidate=True,
|
||||
enabled=lambda node: node.enableHighlight.enabled and node.enableHighlight.value,
|
||||
),
|
||||
desc.FloatParam(
|
||||
|
@ -218,7 +202,6 @@ Merge LDR images into HDR images.
|
|||
" - 150 lux: Home\n",
|
||||
value=120000.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,
|
||||
),
|
||||
desc.ChoiceParam(
|
||||
|
@ -232,7 +215,6 @@ Merge LDR images into HDR images.
|
|||
values=EXR_STORAGE_DATA_TYPE,
|
||||
value="float",
|
||||
exclusive=True,
|
||||
invalidate=True,
|
||||
),
|
||||
desc.ChoiceParam(
|
||||
name="verboseLevel",
|
||||
|
@ -241,7 +223,6 @@ Merge LDR images into HDR images.
|
|||
values=VERBOSE_LEVEL,
|
||||
value="info",
|
||||
exclusive=True,
|
||||
invalidate=False,
|
||||
),
|
||||
]
|
||||
|
||||
|
@ -251,7 +232,6 @@ Merge LDR images into HDR images.
|
|||
label="Folder",
|
||||
description="Path to the folder containing the merged HDR images.",
|
||||
value=desc.Node.internalFolder,
|
||||
invalidate=False,
|
||||
group="", # do not export on the command line
|
||||
),
|
||||
desc.File(
|
||||
|
@ -259,7 +239,6 @@ Merge LDR images into HDR images.
|
|||
label="SfMData",
|
||||
description="Path to the output SfMData file.",
|
||||
value=desc.Node.internalFolder + "sfmData.sfm",
|
||||
invalidate=False,
|
||||
),
|
||||
]
|
||||
|
||||
|
|
|
@ -65,7 +65,6 @@ Sample pixels from Low range images for HDR creation.
|
|||
label="SfMData",
|
||||
description="Input SfMData file.",
|
||||
value="",
|
||||
invalidate=True,
|
||||
),
|
||||
desc.IntParam(
|
||||
name="userNbBrackets",
|
||||
|
@ -86,7 +85,6 @@ Sample pixels from Low range images for HDR creation.
|
|||
"is 0, else it is equal to 'userNbBrackets'.",
|
||||
value=0,
|
||||
range=(0, 15, 1),
|
||||
invalidate=True,
|
||||
group="bracketsParams",
|
||||
),
|
||||
desc.BoolParam(
|
||||
|
@ -94,7 +92,6 @@ Sample pixels from Low range images for HDR creation.
|
|||
label="Bypass",
|
||||
description="Bypass HDR creation and use the medium bracket as the source for the next steps.",
|
||||
value=False,
|
||||
invalidate=True,
|
||||
enabled=lambda node: node.nbBrackets.value != 1,
|
||||
),
|
||||
desc.ChoiceParam(
|
||||
|
@ -109,7 +106,6 @@ Sample pixels from Low range images for HDR creation.
|
|||
values=["auto", "linear", "debevec", "grossberg", "laguerre"],
|
||||
value="auto",
|
||||
exclusive=True,
|
||||
invalidate=True,
|
||||
enabled=lambda node: node.byPass.enabled and not node.byPass.value,
|
||||
),
|
||||
desc.IntParam(
|
||||
|
@ -118,7 +114,6 @@ Sample pixels from Low range images for HDR creation.
|
|||
description="Quantization level like 8 bits or 10 bits.",
|
||||
value=10,
|
||||
range=(8, 14, 1),
|
||||
invalidate=True,
|
||||
advanced=True,
|
||||
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,
|
||||
value="AUTO",
|
||||
exclusive=True,
|
||||
invalidate=True,
|
||||
enabled=lambda node: node.byPass.enabled and not node.byPass.value,
|
||||
),
|
||||
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.",
|
||||
value=256,
|
||||
range=(8, 1024, 1),
|
||||
invalidate=True,
|
||||
advanced=True,
|
||||
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.",
|
||||
value=5,
|
||||
range=(0, 10, 1),
|
||||
invalidate=True,
|
||||
advanced=True,
|
||||
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.",
|
||||
value=200,
|
||||
range=(10, 1000, 10),
|
||||
invalidate=True,
|
||||
advanced=True,
|
||||
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,
|
||||
value="info",
|
||||
exclusive=True,
|
||||
invalidate=False,
|
||||
),
|
||||
]
|
||||
|
||||
|
@ -188,7 +178,6 @@ Sample pixels from Low range images for HDR creation.
|
|||
label="Folder",
|
||||
description="Output path for the samples.",
|
||||
value=desc.Node.internalFolder,
|
||||
invalidate=False,
|
||||
),
|
||||
]
|
||||
|
||||
|
|
|
@ -24,7 +24,6 @@ class LidarDecimating(desc.AVCommandLineNode):
|
|||
label="Input JSON",
|
||||
description="Input JSON file with description of inputs.",
|
||||
value="",
|
||||
invalidate=True,
|
||||
),
|
||||
desc.FloatParam(
|
||||
name="errorLimit",
|
||||
|
@ -32,7 +31,6 @@ class LidarDecimating(desc.AVCommandLineNode):
|
|||
description="Maximal distance (in meters) allowed.",
|
||||
value=0.001,
|
||||
range=(0.0, 1.0, 0.001),
|
||||
invalidate=True,
|
||||
),
|
||||
desc.ChoiceParam(
|
||||
name="verboseLevel",
|
||||
|
@ -41,7 +39,6 @@ class LidarDecimating(desc.AVCommandLineNode):
|
|||
values=VERBOSE_LEVEL,
|
||||
value="info",
|
||||
exclusive=True,
|
||||
invalidate=False,
|
||||
),
|
||||
]
|
||||
|
||||
|
@ -51,13 +48,11 @@ class LidarDecimating(desc.AVCommandLineNode):
|
|||
label="Sub-Meshes Directory",
|
||||
description="Output directory for sub-meshes.",
|
||||
value=desc.Node.internalFolder,
|
||||
invalidate=False,
|
||||
),
|
||||
desc.File(
|
||||
name="outputJson",
|
||||
label="Scene Description",
|
||||
description="Output scene description.",
|
||||
value=desc.Node.internalFolder + "scene.json",
|
||||
invalidate=False,
|
||||
),
|
||||
]
|
||||
|
|
|
@ -20,7 +20,6 @@ class LidarMerging(desc.AVCommandLineNode):
|
|||
label="Input JSON",
|
||||
description="Input JSON file with description of inputs.",
|
||||
value="",
|
||||
invalidate=True,
|
||||
),
|
||||
desc.ChoiceParam(
|
||||
name="verboseLevel",
|
||||
|
@ -29,7 +28,6 @@ class LidarMerging(desc.AVCommandLineNode):
|
|||
values=VERBOSE_LEVEL,
|
||||
value="info",
|
||||
exclusive=True,
|
||||
invalidate=False,
|
||||
),
|
||||
]
|
||||
|
||||
|
@ -39,6 +37,5 @@ class LidarMerging(desc.AVCommandLineNode):
|
|||
label="Mesh Path Output",
|
||||
description="Output directory for mesh.",
|
||||
value=desc.Node.internalFolder + "output.obj",
|
||||
invalidate=False,
|
||||
),
|
||||
]
|
||||
|
|
|
@ -24,7 +24,6 @@ class LidarMeshing(desc.AVCommandLineNode):
|
|||
label="Input JSON",
|
||||
description="Input JSON file with description of inputs.",
|
||||
value="",
|
||||
invalidate=True,
|
||||
),
|
||||
desc.BoolParam(
|
||||
name="useBoundingBox",
|
||||
|
@ -33,7 +32,6 @@ class LidarMeshing(desc.AVCommandLineNode):
|
|||
"If enabled, it takes priority over the 'Estimate Space From SfM' option.\n"
|
||||
"Parameters can be adjusted in advanced settings.",
|
||||
value=False,
|
||||
invalidate=True,
|
||||
group="",
|
||||
),
|
||||
desc.GroupAttribute(
|
||||
|
@ -49,19 +47,16 @@ class LidarMeshing(desc.AVCommandLineNode):
|
|||
desc.FloatParam(
|
||||
name="x", label="x", description="X offset.",
|
||||
value=0.0,
|
||||
invalidate=True,
|
||||
range=(-20.0, 20.0, 0.01),
|
||||
),
|
||||
desc.FloatParam(
|
||||
name="y", label="y", description="Y offset.",
|
||||
value=0.0,
|
||||
invalidate=True,
|
||||
range=(-20.0, 20.0, 0.01),
|
||||
),
|
||||
desc.FloatParam(
|
||||
name="z", label="z", description="Z offset.",
|
||||
value=0.0,
|
||||
invalidate=True,
|
||||
range=(-20.0, 20.0, 0.01),
|
||||
),
|
||||
],
|
||||
|
@ -75,19 +70,16 @@ class LidarMeshing(desc.AVCommandLineNode):
|
|||
desc.FloatParam(
|
||||
name="x", label="x", description="Euler X rotation.",
|
||||
value=0.0,
|
||||
invalidate=True,
|
||||
range=(-90.0, 90.0, 1.0),
|
||||
),
|
||||
desc.FloatParam(
|
||||
name="y", label="y", description="Euler Y rotation.",
|
||||
value=0.0,
|
||||
invalidate=True,
|
||||
range=(-180.0, 180.0, 1.0),
|
||||
),
|
||||
desc.FloatParam(
|
||||
name="z", label="z", description="Euler Z rotation.",
|
||||
value=0.0,
|
||||
invalidate=True,
|
||||
range=(-180.0, 180.0, 1.0),
|
||||
),
|
||||
],
|
||||
|
@ -101,19 +93,16 @@ class LidarMeshing(desc.AVCommandLineNode):
|
|||
desc.FloatParam(
|
||||
name="x", label="x", description="X scale.",
|
||||
value=1.0,
|
||||
invalidate=True,
|
||||
range=(0.0, 20.0, 0.01),
|
||||
),
|
||||
desc.FloatParam(
|
||||
name="y", label="y", description="Y scale.",
|
||||
value=1.0,
|
||||
invalidate=True,
|
||||
range=(0.0, 20.0, 0.01),
|
||||
),
|
||||
desc.FloatParam(
|
||||
name="z", label="z", description="Z scale.",
|
||||
value=1.0,
|
||||
invalidate=True,
|
||||
range=(0.0, 20.0, 0.01),
|
||||
),
|
||||
],
|
||||
|
@ -130,7 +119,6 @@ class LidarMeshing(desc.AVCommandLineNode):
|
|||
values=VERBOSE_LEVEL,
|
||||
value="info",
|
||||
exclusive=True,
|
||||
invalidate=False,
|
||||
),
|
||||
]
|
||||
|
||||
|
@ -140,13 +128,11 @@ class LidarMeshing(desc.AVCommandLineNode):
|
|||
label="Sub-Meshes Directory",
|
||||
description="Output directory for sub-meshes",
|
||||
value=desc.Node.internalFolder,
|
||||
invalidate=False,
|
||||
),
|
||||
desc.File(
|
||||
name="outputJson",
|
||||
label="Scene Description",
|
||||
description="Output scene description.",
|
||||
value=desc.Node.internalFolder + "scene.json",
|
||||
invalidate=False,
|
||||
),
|
||||
]
|
||||
|
|
|
@ -18,28 +18,24 @@ Can also be used to calibrate a lighting dome (RTI type).
|
|||
label="Input SfMData",
|
||||
description="Input SfMData file.",
|
||||
value="",
|
||||
invalidate=True,
|
||||
),
|
||||
desc.File(
|
||||
name="inputDetection",
|
||||
label="Sphere Detection File",
|
||||
description="Input JSON file containing sphere centers and radiuses.",
|
||||
value="",
|
||||
invalidate=True,
|
||||
),
|
||||
desc.BoolParam(
|
||||
name="saveAsModel",
|
||||
label="Save As Model",
|
||||
description="Check if this calibration file will be used with other datasets.",
|
||||
value=False,
|
||||
invalidate=True,
|
||||
),
|
||||
desc.BoolParam(
|
||||
name="ellipticEstimation",
|
||||
label="Use elliptic estimation",
|
||||
description="Consider the right projection of the sphere. Fit the circle tool on the small axe of the ellipse.",
|
||||
value=False,
|
||||
invalidate=True,
|
||||
),
|
||||
desc.ChoiceParam(
|
||||
name="method",
|
||||
|
@ -50,7 +46,6 @@ Can also be used to calibrate a lighting dome (RTI type).
|
|||
values=["brightestPoint", "whiteSphere", "SH"],
|
||||
value="brightestPoint",
|
||||
exclusive=True,
|
||||
invalidate=True,
|
||||
),
|
||||
desc.ChoiceParam(
|
||||
name="verboseLevel",
|
||||
|
@ -59,7 +54,6 @@ Can also be used to calibrate a lighting dome (RTI type).
|
|||
values=VERBOSE_LEVEL,
|
||||
value="info",
|
||||
exclusive=True,
|
||||
invalidate=False,
|
||||
),
|
||||
]
|
||||
|
||||
|
@ -69,7 +63,6 @@ Can also be used to calibrate a lighting dome (RTI type).
|
|||
label="Light File",
|
||||
description="Light information will be written here.",
|
||||
value=desc.Node.internalFolder + "/lights.json",
|
||||
invalidate=False,
|
||||
),
|
||||
desc.File(
|
||||
name="lightingEstimationVisualization",
|
||||
|
@ -77,6 +70,5 @@ Can also be used to calibrate a lighting dome (RTI type).
|
|||
description="Estimated Lighting Visualization.",
|
||||
semantic="image",
|
||||
value=desc.Node.internalFolder + "/<FILESTEM>_{methodValue}.png",
|
||||
invalidate=False,
|
||||
),
|
||||
]
|
||||
|
|
|
@ -17,14 +17,12 @@ class LightingEstimation(desc.AVCommandLineNode):
|
|||
label="Input SfMData",
|
||||
description="Input SfMData file.",
|
||||
value="",
|
||||
invalidate=True,
|
||||
),
|
||||
desc.File(
|
||||
name="depthMapsFilterFolder",
|
||||
label="Filtered Depth Maps Folder",
|
||||
description="Input filtered depth maps folder.",
|
||||
value="",
|
||||
invalidate=True,
|
||||
),
|
||||
desc.File(
|
||||
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"
|
||||
"Filename should be the image UID.",
|
||||
value="",
|
||||
invalidate=True,
|
||||
),
|
||||
desc.ChoiceParam(
|
||||
name="lightingEstimationMode",
|
||||
|
@ -41,7 +38,6 @@ class LightingEstimation(desc.AVCommandLineNode):
|
|||
value="global",
|
||||
values=["global", "per_image"],
|
||||
exclusive=True,
|
||||
invalidate=True,
|
||||
advanced=True,
|
||||
),
|
||||
desc.ChoiceParam(
|
||||
|
@ -51,7 +47,6 @@ class LightingEstimation(desc.AVCommandLineNode):
|
|||
value="RGB",
|
||||
values=["RGB", "Luminance"],
|
||||
exclusive=True,
|
||||
invalidate=True,
|
||||
advanced=True,
|
||||
),
|
||||
desc.ChoiceParam(
|
||||
|
@ -61,7 +56,6 @@ class LightingEstimation(desc.AVCommandLineNode):
|
|||
value="constant",
|
||||
values=["constant", "picture", "median_filter", "blur_filter"],
|
||||
exclusive=True,
|
||||
invalidate=True,
|
||||
advanced=True,
|
||||
),
|
||||
desc.IntParam(
|
||||
|
@ -70,7 +64,6 @@ class LightingEstimation(desc.AVCommandLineNode):
|
|||
description="Albedo filter size for estimation method using filter.",
|
||||
value=3,
|
||||
range=(0, 100, 1),
|
||||
invalidate=True,
|
||||
advanced=True,
|
||||
),
|
||||
desc.ChoiceParam(
|
||||
|
@ -80,7 +73,6 @@ class LightingEstimation(desc.AVCommandLineNode):
|
|||
values=VERBOSE_LEVEL,
|
||||
value="info",
|
||||
exclusive=True,
|
||||
invalidate=False,
|
||||
),
|
||||
]
|
||||
|
||||
|
@ -90,6 +82,5 @@ class LightingEstimation(desc.AVCommandLineNode):
|
|||
label="Folder",
|
||||
description="Folder for output lighting vector files.",
|
||||
value=desc.Node.internalFolder,
|
||||
invalidate=False,
|
||||
),
|
||||
]
|
||||
|
|
|
@ -24,14 +24,12 @@ Operation types used to merge two meshes:
|
|||
label="First Mesh",
|
||||
description="Input first mesh (*.obj, *.mesh, *.meshb, *.ply, *.off, *.stl).",
|
||||
value="",
|
||||
invalidate=True,
|
||||
),
|
||||
desc.File(
|
||||
name="inputSecondMesh",
|
||||
label="Second Mesh",
|
||||
description="Input second mesh (*.obj, *.mesh, *.meshb, *.ply, *.off, *.stl).",
|
||||
value="",
|
||||
invalidate=True,
|
||||
),
|
||||
desc.ChoiceParam(
|
||||
name="mergeOperation",
|
||||
|
@ -40,21 +38,18 @@ Operation types used to merge two meshes:
|
|||
value="boolean_union",
|
||||
values=["boolean_union", "boolean_intersection", "boolean_difference"],
|
||||
exclusive=True,
|
||||
invalidate=True,
|
||||
),
|
||||
desc.BoolParam(
|
||||
name="preProcess",
|
||||
label="Pre-Process",
|
||||
description="Pre-process the input meshes in order to avoid geometric errors in the merging process.",
|
||||
value=True,
|
||||
invalidate=True,
|
||||
),
|
||||
desc.BoolParam(
|
||||
name="postProcess",
|
||||
label="Post-Process",
|
||||
description="Post-process the output mesh in order to avoid future geometric errors.",
|
||||
value=True,
|
||||
invalidate=True,
|
||||
),
|
||||
desc.ChoiceParam(
|
||||
name="verboseLevel",
|
||||
|
@ -63,7 +58,6 @@ Operation types used to merge two meshes:
|
|||
values=VERBOSE_LEVEL,
|
||||
value="info",
|
||||
exclusive=True,
|
||||
invalidate=False,
|
||||
),
|
||||
]
|
||||
|
||||
|
@ -73,6 +67,5 @@ Operation types used to merge two meshes:
|
|||
label="Mesh",
|
||||
description="Output mesh (*.obj, *.mesh, *.meshb, *.ply, *.off, *.stl).",
|
||||
value=desc.Node.internalFolder + "mesh.stl",
|
||||
invalidate=False,
|
||||
),
|
||||
]
|
||||
|
|
|
@ -20,7 +20,6 @@ This node allows to reduce the density of the Mesh.
|
|||
label="Mesh",
|
||||
description="Input mesh in the OBJ format.",
|
||||
value="",
|
||||
invalidate=True,
|
||||
),
|
||||
desc.FloatParam(
|
||||
name="simplificationFactor",
|
||||
|
@ -28,7 +27,6 @@ This node allows to reduce the density of the Mesh.
|
|||
description="Simplification factor for the decimation.",
|
||||
value=0.5,
|
||||
range=(0.0, 1.0, 0.01),
|
||||
invalidate=True,
|
||||
),
|
||||
desc.IntParam(
|
||||
name="nbVertices",
|
||||
|
@ -36,7 +34,6 @@ This node allows to reduce the density of the Mesh.
|
|||
description="Fixed number of output vertices.",
|
||||
value=0,
|
||||
range=(0, 1000000, 1),
|
||||
invalidate=True,
|
||||
),
|
||||
desc.IntParam(
|
||||
name="minVertices",
|
||||
|
@ -44,7 +41,6 @@ This node allows to reduce the density of the Mesh.
|
|||
description="Minimum number of output vertices.",
|
||||
value=0,
|
||||
range=(0, 1000000, 1),
|
||||
invalidate=True,
|
||||
),
|
||||
desc.IntParam(
|
||||
name="maxVertices",
|
||||
|
@ -52,7 +48,6 @@ This node allows to reduce the density of the Mesh.
|
|||
description="Maximum number of output vertices.",
|
||||
value=0,
|
||||
range=(0, 1000000, 1),
|
||||
invalidate=True,
|
||||
),
|
||||
desc.BoolParam(
|
||||
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"
|
||||
"and the convention changes from one software to another.",
|
||||
value=False,
|
||||
invalidate=True,
|
||||
advanced=True,
|
||||
),
|
||||
desc.ChoiceParam(
|
||||
|
@ -71,7 +65,6 @@ This node allows to reduce the density of the Mesh.
|
|||
values=VERBOSE_LEVEL,
|
||||
value="info",
|
||||
exclusive=True,
|
||||
invalidate=False,
|
||||
),
|
||||
]
|
||||
|
||||
|
@ -81,6 +74,5 @@ This node allows to reduce the density of the Mesh.
|
|||
label="Mesh",
|
||||
description="Output mesh in the OBJ file format.",
|
||||
value=desc.Node.internalFolder + "mesh.obj",
|
||||
invalidate=False,
|
||||
),
|
||||
]
|
||||
|
|
|
@ -19,7 +19,6 @@ for now, the parameters are difficult to control and vary a lot from one dataset
|
|||
label="Mesh",
|
||||
description="Input mesh in the OBJ file format.",
|
||||
value="",
|
||||
invalidate=True,
|
||||
),
|
||||
desc.IntParam(
|
||||
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.",
|
||||
value=5,
|
||||
range=(0, 30, 1),
|
||||
invalidate=True,
|
||||
),
|
||||
desc.FloatParam(
|
||||
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.",
|
||||
value=0.001,
|
||||
range=(0.0, 0.1, 0.001),
|
||||
invalidate=True,
|
||||
),
|
||||
desc.FloatParam(
|
||||
name="lambda",
|
||||
|
@ -43,7 +40,6 @@ for now, the parameters are difficult to control and vary a lot from one dataset
|
|||
description="Regularization weight.",
|
||||
value=2.0,
|
||||
range=(0.0, 10.0, 0.01),
|
||||
invalidate=True,
|
||||
),
|
||||
desc.FloatParam(
|
||||
name="eta",
|
||||
|
@ -53,7 +49,6 @@ for now, the parameters are difficult to control and vary a lot from one dataset
|
|||
"Must be positive.",
|
||||
value=1.5,
|
||||
range=(0.0, 20.0, 0.01),
|
||||
invalidate=True,
|
||||
),
|
||||
desc.FloatParam(
|
||||
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.",
|
||||
value=1.5,
|
||||
range=(0.0, 10.0, 0.01),
|
||||
invalidate=True,
|
||||
),
|
||||
desc.FloatParam(
|
||||
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.",
|
||||
value=0.3,
|
||||
range=(0.0, 5.0, 0.01),
|
||||
invalidate=True,
|
||||
),
|
||||
desc.ChoiceParam(
|
||||
name="meshUpdateMethod",
|
||||
|
@ -80,7 +73,6 @@ for now, the parameters are difficult to control and vary a lot from one dataset
|
|||
value=0,
|
||||
values=[0, 1],
|
||||
exclusive=True,
|
||||
invalidate=True,
|
||||
),
|
||||
desc.ChoiceParam(
|
||||
name="verboseLevel",
|
||||
|
@ -89,7 +81,6 @@ for now, the parameters are difficult to control and vary a lot from one dataset
|
|||
values=VERBOSE_LEVEL,
|
||||
value="info",
|
||||
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",
|
||||
description="Output mesh in the OBJ file format.",
|
||||
value=desc.Node.internalFolder + "mesh.obj",
|
||||
invalidate=False,
|
||||
),
|
||||
]
|
||||
|
|
|
@ -18,7 +18,6 @@ This node applies a Laplacian filtering to remove local defects from the raw Mes
|
|||
label="Mesh",
|
||||
description="Input mesh file.",
|
||||
value="",
|
||||
invalidate=True,
|
||||
),
|
||||
desc.ChoiceParam(
|
||||
name="outputMeshFileType",
|
||||
|
@ -27,7 +26,6 @@ This node applies a Laplacian filtering to remove local defects from the raw Mes
|
|||
value="obj",
|
||||
values=["gltf", "obj", "fbx", "stl"],
|
||||
exclusive=True,
|
||||
invalidate=True,
|
||||
group="",
|
||||
),
|
||||
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",
|
||||
description="Keep only the largest connected triangles group.",
|
||||
value=False,
|
||||
invalidate=True,
|
||||
),
|
||||
desc.ChoiceParam(
|
||||
name="smoothingSubset",
|
||||
|
@ -44,7 +41,6 @@ This node applies a Laplacian filtering to remove local defects from the raw Mes
|
|||
value="all",
|
||||
values=["all", "surface_boundaries", "surface_inner_part"],
|
||||
exclusive=True,
|
||||
invalidate=True,
|
||||
advanced=True,
|
||||
),
|
||||
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.",
|
||||
value=0,
|
||||
range=(0, 20, 1),
|
||||
invalidate=True,
|
||||
advanced=True,
|
||||
),
|
||||
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.",
|
||||
value=5,
|
||||
range=(0, 50, 1),
|
||||
invalidate=True,
|
||||
),
|
||||
desc.FloatParam(
|
||||
name="smoothingLambda",
|
||||
|
@ -70,7 +64,6 @@ This node applies a Laplacian filtering to remove local defects from the raw Mes
|
|||
description="Smoothing size.",
|
||||
value=1.0,
|
||||
range=(0.0, 10.0, 0.1),
|
||||
invalidate=True,
|
||||
advanced=True,
|
||||
),
|
||||
desc.ChoiceParam(
|
||||
|
@ -80,7 +73,6 @@ This node applies a Laplacian filtering to remove local defects from the raw Mes
|
|||
value="all",
|
||||
values=["all", "surface_boundaries", "surface_inner_part"],
|
||||
exclusive=True,
|
||||
invalidate=True,
|
||||
advanced=True,
|
||||
),
|
||||
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.",
|
||||
value=1,
|
||||
range=(0, 20, 1),
|
||||
invalidate=True,
|
||||
advanced=True,
|
||||
),
|
||||
desc.FloatParam(
|
||||
|
@ -100,7 +91,6 @@ This node applies a Laplacian filtering to remove local defects from the raw Mes
|
|||
"0 disables the filtering.",
|
||||
value=60.0,
|
||||
range=(0.0, 100.0, 0.1),
|
||||
invalidate=True,
|
||||
),
|
||||
desc.FloatParam(
|
||||
name="filterTrianglesRatio",
|
||||
|
@ -109,7 +99,6 @@ This node applies a Laplacian filtering to remove local defects from the raw Mes
|
|||
"0 disables the filtering.",
|
||||
value=0.0,
|
||||
range=(1.0, 50.0, 0.1),
|
||||
invalidate=True,
|
||||
advanced=True,
|
||||
),
|
||||
desc.ChoiceParam(
|
||||
|
@ -119,7 +108,6 @@ This node applies a Laplacian filtering to remove local defects from the raw Mes
|
|||
values=VERBOSE_LEVEL,
|
||||
value="info",
|
||||
exclusive=True,
|
||||
invalidate=False,
|
||||
),
|
||||
]
|
||||
|
||||
|
@ -129,6 +117,5 @@ This node applies a Laplacian filtering to remove local defects from the raw Mes
|
|||
label="Mesh",
|
||||
description="Output mesh file.",
|
||||
value=desc.Node.internalFolder + "mesh.{outputMeshFileTypeValue}",
|
||||
invalidate=False,
|
||||
),
|
||||
]
|
||||
|
|
|
@ -17,14 +17,12 @@ Decimate triangles based on image masks.
|
|||
label="Dense SfMData",
|
||||
description="Dense SfMData file.",
|
||||
value="",
|
||||
invalidate=True,
|
||||
),
|
||||
desc.File(
|
||||
name="inputMesh",
|
||||
label="Input Mesh",
|
||||
description="Input mesh.",
|
||||
value="",
|
||||
invalidate=True,
|
||||
),
|
||||
desc.ChoiceParam(
|
||||
name="outputMeshFileType",
|
||||
|
@ -33,7 +31,6 @@ Decimate triangles based on image masks.
|
|||
value="obj",
|
||||
values=["obj", "gltf", "fbx", "stl"],
|
||||
exclusive=True,
|
||||
invalidate=True,
|
||||
group="",
|
||||
),
|
||||
desc.ListAttribute(
|
||||
|
@ -42,7 +39,6 @@ Decimate triangles based on image masks.
|
|||
label="Masks Folder",
|
||||
description="Folder containing some masks.",
|
||||
value="",
|
||||
invalidate=True,
|
||||
),
|
||||
name="masksFolders",
|
||||
label="Masks Folders",
|
||||
|
@ -55,7 +51,6 @@ Decimate triangles based on image masks.
|
|||
value="png",
|
||||
values=["exr", "jpg", "png"],
|
||||
exclusive=True,
|
||||
invalidate=True,
|
||||
),
|
||||
desc.IntParam(
|
||||
name="threshold",
|
||||
|
@ -63,14 +58,12 @@ Decimate triangles based on image masks.
|
|||
description="The minimum number of visibilities to keep a vertex.",
|
||||
value=1,
|
||||
range=(1, 100, 1),
|
||||
invalidate=True,
|
||||
),
|
||||
desc.BoolParam(
|
||||
name="smoothBoundary",
|
||||
label="Smooth Boundary",
|
||||
description="Modify the triangles at the boundary to fit the masks.",
|
||||
value=False,
|
||||
invalidate=True,
|
||||
),
|
||||
desc.BoolParam(
|
||||
name="invert",
|
||||
|
@ -78,7 +71,6 @@ Decimate triangles based on image masks.
|
|||
description="If ticked, the selected area is ignored.\n"
|
||||
"If not, only the selected area is considered.",
|
||||
value=False,
|
||||
invalidate=True,
|
||||
),
|
||||
desc.BoolParam(
|
||||
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"
|
||||
"Select it if the masks are drawn on the original images.",
|
||||
value=False,
|
||||
invalidate=True,
|
||||
),
|
||||
desc.BoolParam(
|
||||
name="usePointsVisibilities",
|
||||
|
@ -94,7 +85,6 @@ Decimate triangles based on image masks.
|
|||
description="Use the points visibilities from the meshing to filter triangles.\n"
|
||||
"Example: when they are occluded, back-face, etc.",
|
||||
value=False,
|
||||
invalidate=True
|
||||
),
|
||||
desc.ChoiceParam(
|
||||
name="verboseLevel",
|
||||
|
@ -103,7 +93,6 @@ Decimate triangles based on image masks.
|
|||
values=VERBOSE_LEVEL,
|
||||
value="info",
|
||||
exclusive=True,
|
||||
invalidate=False,
|
||||
),
|
||||
]
|
||||
|
||||
|
@ -113,6 +102,5 @@ Decimate triangles based on image masks.
|
|||
label="Mesh",
|
||||
description="Output mesh file.",
|
||||
value=desc.Node.internalFolder + "mesh.{outputMeshFileTypeValue}",
|
||||
invalidate=False,
|
||||
),
|
||||
]
|
||||
|
|
|
@ -21,14 +21,12 @@ Remove triangles from the mesh when the vertices are not visible by any camera.
|
|||
label="SfMData",
|
||||
description="Input SfMData file.",
|
||||
value="",
|
||||
invalidate=True,
|
||||
),
|
||||
desc.File(
|
||||
name="inputMesh",
|
||||
label="Mesh",
|
||||
description="Input Mesh file.",
|
||||
value="",
|
||||
invalidate=True,
|
||||
),
|
||||
desc.ChoiceParam(
|
||||
name="outputMeshFileType",
|
||||
|
@ -37,7 +35,6 @@ Remove triangles from the mesh when the vertices are not visible by any camera.
|
|||
value="obj",
|
||||
values=["gltf", "obj", "fbx", "stl"],
|
||||
exclusive=True,
|
||||
invalidate=True,
|
||||
group="",
|
||||
),
|
||||
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.",
|
||||
value=1,
|
||||
range=(0, 5, 1),
|
||||
invalidate=True,
|
||||
),
|
||||
desc.IntParam(
|
||||
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.",
|
||||
value=3,
|
||||
range=(1, 3, 1),
|
||||
invalidate=True,
|
||||
),
|
||||
desc.ChoiceParam(
|
||||
name="verboseLevel",
|
||||
|
@ -63,7 +58,6 @@ Remove triangles from the mesh when the vertices are not visible by any camera.
|
|||
values=VERBOSE_LEVEL,
|
||||
value="info",
|
||||
exclusive=True,
|
||||
invalidate=False,
|
||||
),
|
||||
]
|
||||
|
||||
|
@ -73,6 +67,5 @@ Remove triangles from the mesh when the vertices are not visible by any camera.
|
|||
label="Mesh",
|
||||
description="Output mesh file.",
|
||||
value=desc.Node.internalFolder + "mesh.{outputMeshFileTypeValue}",
|
||||
invalidate=False,
|
||||
),
|
||||
]
|
||||
|
|
|
@ -20,7 +20,6 @@ This node allows to recompute the mesh surface with a new topology and uniform d
|
|||
label="Input Mesh",
|
||||
description="Input mesh in the OBJ file format.",
|
||||
value="",
|
||||
invalidate=True,
|
||||
),
|
||||
desc.FloatParam(
|
||||
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.",
|
||||
value=0.5,
|
||||
range=(0.0, 1.0, 0.01),
|
||||
invalidate=True,
|
||||
),
|
||||
desc.IntParam(
|
||||
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.",
|
||||
value=0,
|
||||
range=(0, 1000000, 1),
|
||||
invalidate=True,
|
||||
),
|
||||
desc.IntParam(
|
||||
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.",
|
||||
value=0,
|
||||
range=(0, 1000000, 1),
|
||||
invalidate=True,
|
||||
),
|
||||
desc.IntParam(
|
||||
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.",
|
||||
value=0,
|
||||
range=(0, 1000000, 1),
|
||||
invalidate=True,
|
||||
),
|
||||
desc.IntParam(
|
||||
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.",
|
||||
value=40,
|
||||
range=(0, 100, 1),
|
||||
invalidate=True,
|
||||
),
|
||||
desc.BoolParam(
|
||||
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"
|
||||
"It can be needed as it depends on the vertices order in triangles and the convention changes from one software to another.",
|
||||
value=False,
|
||||
invalidate=True,
|
||||
),
|
||||
desc.ChoiceParam(
|
||||
name="verboseLevel",
|
||||
|
@ -77,7 +70,6 @@ This node allows to recompute the mesh surface with a new topology and uniform d
|
|||
values=VERBOSE_LEVEL,
|
||||
value="info",
|
||||
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",
|
||||
description="Output mesh in the OBJ file format.",
|
||||
value=desc.Node.internalFolder + "mesh.obj",
|
||||
invalidate=False,
|
||||
),
|
||||
]
|
||||
|
|
|
@ -28,14 +28,12 @@ A Graph Cut Max-Flow is applied to optimally cut the volume. This cut represents
|
|||
label="SfmData",
|
||||
description="Input SfMData file.",
|
||||
value="",
|
||||
invalidate=True,
|
||||
),
|
||||
desc.File(
|
||||
name="depthMapsFolder",
|
||||
label="Depth Maps Folder",
|
||||
description="Input depth maps folder.",
|
||||
value="",
|
||||
invalidate=True,
|
||||
),
|
||||
desc.ChoiceParam(
|
||||
name="outputMeshFileType",
|
||||
|
@ -44,7 +42,6 @@ A Graph Cut Max-Flow is applied to optimally cut the volume. This cut represents
|
|||
value="obj",
|
||||
values=["gltf", "obj", "fbx", "stl"],
|
||||
exclusive=True,
|
||||
invalidate=True,
|
||||
group="",
|
||||
),
|
||||
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"
|
||||
"Parameters can be adjusted in advanced settings.",
|
||||
value=False,
|
||||
invalidate=True,
|
||||
group="",
|
||||
),
|
||||
desc.GroupAttribute(
|
||||
|
@ -70,19 +66,16 @@ A Graph Cut Max-Flow is applied to optimally cut the volume. This cut represents
|
|||
desc.FloatParam(
|
||||
name="x", label="x", description="X offset.",
|
||||
value=0.0,
|
||||
invalidate=True,
|
||||
range=(-20.0, 20.0, 0.01),
|
||||
),
|
||||
desc.FloatParam(
|
||||
name="y", label="y", description="Y offset.",
|
||||
value=0.0,
|
||||
invalidate=True,
|
||||
range=(-20.0, 20.0, 0.01),
|
||||
),
|
||||
desc.FloatParam(
|
||||
name="z", label="z", description="Z offset.",
|
||||
value=0.0,
|
||||
invalidate=True,
|
||||
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(
|
||||
name="x", label="x", description="Euler X rotation.",
|
||||
value=0.0,
|
||||
invalidate=True,
|
||||
range=(-90.0, 90.0, 1.0)
|
||||
),
|
||||
desc.FloatParam(
|
||||
name="y", label="y", description="Euler Y rotation.",
|
||||
value=0.0,
|
||||
invalidate=True,
|
||||
range=(-180.0, 180.0, 1.0)
|
||||
),
|
||||
desc.FloatParam(
|
||||
name="z", label="z", description="Euler Z rotation.",
|
||||
value=0.0,
|
||||
invalidate=True,
|
||||
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(
|
||||
name="x", label="x", description="X scale.",
|
||||
value=1.0,
|
||||
invalidate=True,
|
||||
range=(0.0, 20.0, 0.01),
|
||||
),
|
||||
desc.FloatParam(
|
||||
name="y", label="y", description="Y scale.",
|
||||
value=1.0,
|
||||
invalidate=True,
|
||||
range=(0.0, 20.0, 0.01),
|
||||
),
|
||||
desc.FloatParam(
|
||||
name="z", label="z", description="Z scale.",
|
||||
value=1.0,
|
||||
invalidate=True,
|
||||
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",
|
||||
description="Estimate the 3D space from the SfM.",
|
||||
value=True,
|
||||
invalidate=True,
|
||||
advanced=True,
|
||||
),
|
||||
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.",
|
||||
value=3,
|
||||
range=(0, 100, 1),
|
||||
invalidate=True,
|
||||
advanced=True,
|
||||
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.",
|
||||
value=10.0,
|
||||
range=(0.0, 120.0, 1.0),
|
||||
invalidate=True,
|
||||
enabled=lambda node: node.estimateSpaceFromSfM.value,
|
||||
),
|
||||
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.",
|
||||
value=50000000,
|
||||
range=(500000, 500000000, 1000),
|
||||
invalidate=True,
|
||||
),
|
||||
desc.IntParam(
|
||||
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.",
|
||||
value=5000000,
|
||||
range=(100000, 10000000, 1000),
|
||||
invalidate=True,
|
||||
),
|
||||
desc.IntParam(
|
||||
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.",
|
||||
value=1000000,
|
||||
range=(500000, 30000000, 1000),
|
||||
invalidate=True,
|
||||
advanced=True,
|
||||
),
|
||||
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.",
|
||||
value=2,
|
||||
range=(1, 20, 1),
|
||||
invalidate=True,
|
||||
advanced=True,
|
||||
),
|
||||
desc.ChoiceParam(
|
||||
|
@ -214,7 +194,6 @@ A Graph Cut Max-Flow is applied to optimally cut the volume. This cut represents
|
|||
value="singleBlock",
|
||||
values=["singleBlock", "auto"],
|
||||
exclusive=True,
|
||||
invalidate=True,
|
||||
advanced=True,
|
||||
),
|
||||
desc.ChoiceParam(
|
||||
|
@ -224,7 +203,6 @@ A Graph Cut Max-Flow is applied to optimally cut the volume. This cut represents
|
|||
value="multiResolution",
|
||||
values=["multiResolution", "regularGrid"],
|
||||
exclusive=True,
|
||||
invalidate=True,
|
||||
advanced=True,
|
||||
),
|
||||
desc.FloatParam(
|
||||
|
@ -233,7 +211,6 @@ A Graph Cut Max-Flow is applied to optimally cut the volume. This cut represents
|
|||
description="Angle factor.",
|
||||
value=15.0,
|
||||
range=(0.0, 200.0, 1.0),
|
||||
invalidate=True,
|
||||
advanced=True,
|
||||
),
|
||||
desc.FloatParam(
|
||||
|
@ -242,7 +219,6 @@ A Graph Cut Max-Flow is applied to optimally cut the volume. This cut represents
|
|||
description="Sim factor.",
|
||||
value=15.0,
|
||||
range=(0.0, 200.0, 1.0),
|
||||
invalidate=True,
|
||||
advanced=True,
|
||||
),
|
||||
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.",
|
||||
value=2,
|
||||
range=(1, 20, 1),
|
||||
invalidate=True,
|
||||
advanced=True,
|
||||
),
|
||||
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.",
|
||||
value=2.0,
|
||||
range=(0.0, 10.0, 0.1),
|
||||
invalidate=True,
|
||||
advanced=True,
|
||||
),
|
||||
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.",
|
||||
value=4.0,
|
||||
range=(0.0, 10.0, 0.1),
|
||||
invalidate=True,
|
||||
advanced=True,
|
||||
),
|
||||
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.",
|
||||
value=4.0,
|
||||
range=(0.1, 10.0, 0.1),
|
||||
invalidate=True,
|
||||
advanced=True,
|
||||
),
|
||||
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.",
|
||||
value=2.0,
|
||||
range=(0.0, 10.0, 0.1),
|
||||
invalidate=True,
|
||||
advanced=True,
|
||||
),
|
||||
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.",
|
||||
value=10.0,
|
||||
range=(0.0, 50.0, 0.1),
|
||||
invalidate=True,
|
||||
advanced=True,
|
||||
),
|
||||
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.",
|
||||
value=10.0,
|
||||
range=(0.0, 50.0, 0.1),
|
||||
invalidate=True,
|
||||
advanced=True,
|
||||
),
|
||||
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.",
|
||||
value=1.0,
|
||||
range=(0.0, 10.0, 0.01),
|
||||
invalidate=True,
|
||||
advanced=True,
|
||||
),
|
||||
desc.BoolParam(
|
||||
|
@ -322,7 +290,6 @@ A Graph Cut Max-Flow is applied to optimally cut the volume. This cut represents
|
|||
label="Refine Fuse",
|
||||
description="Refine depth map fusion with the new pixels size defined by angle and similarity scores.",
|
||||
value=True,
|
||||
invalidate=True,
|
||||
advanced=True,
|
||||
),
|
||||
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.",
|
||||
value=10,
|
||||
range=(0, 50, 1),
|
||||
invalidate=True,
|
||||
advanced=True,
|
||||
),
|
||||
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.",
|
||||
value=1,
|
||||
range=(0, 5, 1),
|
||||
invalidate=True,
|
||||
advanced=True,
|
||||
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.",
|
||||
value=1,
|
||||
range=(0, 5, 1),
|
||||
invalidate=True,
|
||||
advanced=True,
|
||||
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.",
|
||||
value=20.0,
|
||||
range=(0.0, 10.0, 0.1),
|
||||
invalidate=True,
|
||||
advanced=True,
|
||||
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.",
|
||||
value=4.0,
|
||||
range=(0.0, 10.0, 0.1),
|
||||
invalidate=True,
|
||||
advanced=True,
|
||||
),
|
||||
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.",
|
||||
value=1.0,
|
||||
range=(0.0, 10.0, 0.1),
|
||||
invalidate=True,
|
||||
advanced=True,
|
||||
),
|
||||
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",
|
||||
description="Improve support of weakly supported surfaces with a tetrahedra fullness score filtering.",
|
||||
value=True,
|
||||
invalidate=True,
|
||||
),
|
||||
desc.BoolParam(
|
||||
name="addLandmarksToTheDensePointCloud",
|
||||
label="Add Landmarks To The Dense Point Cloud",
|
||||
description="Add SfM landmarks to the dense point cloud.",
|
||||
value=False,
|
||||
invalidate=True,
|
||||
advanced=True,
|
||||
),
|
||||
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.",
|
||||
value=10,
|
||||
range=(0, 30, 1),
|
||||
invalidate=True,
|
||||
advanced=True,
|
||||
),
|
||||
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.",
|
||||
value=0.2,
|
||||
range=(0.0, 0.5, 0.01),
|
||||
invalidate=True,
|
||||
advanced=True,
|
||||
),
|
||||
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.",
|
||||
value=2,
|
||||
range=(0, 30, 1),
|
||||
invalidate=True,
|
||||
advanced=True,
|
||||
),
|
||||
desc.BoolParam(
|
||||
|
@ -441,7 +397,6 @@ A Graph Cut Max-Flow is applied to optimally cut the volume. This cut represents
|
|||
label="Colorize Output",
|
||||
description="Whether to colorize output dense point cloud and mesh.",
|
||||
value=False,
|
||||
invalidate=True,
|
||||
),
|
||||
desc.BoolParam(
|
||||
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.",
|
||||
value=1.0,
|
||||
range=(0.0, 20.0, 1.0),
|
||||
invalidate=True,
|
||||
advanced=True,
|
||||
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.",
|
||||
value=4,
|
||||
range=(0, 20, 1),
|
||||
invalidate=True,
|
||||
advanced=True,
|
||||
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.",
|
||||
value=50,
|
||||
range=(-1, 100, 1),
|
||||
invalidate=True,
|
||||
advanced=True,
|
||||
),
|
||||
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.",
|
||||
value=0,
|
||||
range=(0, 10000, 1),
|
||||
invalidate=True,
|
||||
advanced=True,
|
||||
),
|
||||
desc.ChoiceParam(
|
||||
|
@ -517,7 +468,6 @@ A Graph Cut Max-Flow is applied to optimally cut the volume. This cut represents
|
|||
values=VERBOSE_LEVEL,
|
||||
value="info",
|
||||
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",
|
||||
description="Output mesh.",
|
||||
value=desc.Node.internalFolder + "mesh.{outputMeshFileTypeValue}",
|
||||
invalidate=False,
|
||||
),
|
||||
desc.File(
|
||||
name="output",
|
||||
label="Dense SfMData",
|
||||
description="Output dense point cloud with visibilities (SfMData file format).",
|
||||
value=desc.Node.internalFolder + "densePointCloud.abc",
|
||||
invalidate=False,
|
||||
),
|
||||
]
|
||||
|
|
|
@ -19,21 +19,18 @@ A Structure-From-Motion node specifically designed to handle pure rotation camer
|
|||
label="SfMData",
|
||||
description="Input SfMData file.",
|
||||
value="",
|
||||
invalidate=True,
|
||||
),
|
||||
desc.File(
|
||||
name="tracksFilename",
|
||||
label="Tracks File",
|
||||
description="Input tracks file.",
|
||||
value="",
|
||||
invalidate=True,
|
||||
),
|
||||
desc.File(
|
||||
name="pairs",
|
||||
label="Pairs File",
|
||||
description="Information on pairs.",
|
||||
value="",
|
||||
invalidate=True,
|
||||
),
|
||||
desc.ChoiceParam(
|
||||
name="verboseLevel",
|
||||
|
@ -42,7 +39,6 @@ A Structure-From-Motion node specifically designed to handle pure rotation camer
|
|||
values=VERBOSE_LEVEL,
|
||||
value="info",
|
||||
exclusive=True,
|
||||
invalidate=False,
|
||||
),
|
||||
]
|
||||
|
||||
|
@ -52,6 +48,5 @@ A Structure-From-Motion node specifically designed to handle pure rotation camer
|
|||
label="SfMData",
|
||||
description="Path to the output SfMData file.",
|
||||
value=desc.Node.internalFolder + "sfm.abc",
|
||||
invalidate=False,
|
||||
),
|
||||
]
|
||||
|
|
|
@ -16,14 +16,12 @@ Evaluate a depth map from a normals map (currently in development)
|
|||
label="Normal Maps Folder",
|
||||
description="Path to the folder containing the normal maps and the masks.",
|
||||
value="",
|
||||
invalidate=True,
|
||||
),
|
||||
desc.File(
|
||||
name="sfmDataFile",
|
||||
label="SfMData",
|
||||
description="Input SfMData file.",
|
||||
value="",
|
||||
invalidate=True,
|
||||
),
|
||||
desc.IntParam(
|
||||
name="downscale",
|
||||
|
@ -32,7 +30,6 @@ Evaluate a depth map from a normals map (currently in development)
|
|||
value=1,
|
||||
range=(1, 10, 1),
|
||||
advanced=True,
|
||||
invalidate=True,
|
||||
),
|
||||
desc.ChoiceParam(
|
||||
name="verboseLevel",
|
||||
|
@ -41,7 +38,6 @@ Evaluate a depth map from a normals map (currently in development)
|
|||
values=VERBOSE_LEVEL,
|
||||
value="info",
|
||||
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.",
|
||||
semantic="image",
|
||||
value=desc.Node.internalFolder + "<POSE_ID>_depthMap.exr",
|
||||
invalidate=False,
|
||||
group="", # do not export on the command line
|
||||
)
|
||||
]
|
||||
|
|
|
@ -29,21 +29,18 @@ Multiple cameras are contributing to the low frequencies and only the best one c
|
|||
label="Input SfMData",
|
||||
description="Input SfMData file.",
|
||||
value="",
|
||||
invalidate=True,
|
||||
),
|
||||
desc.File(
|
||||
name="warpingFolder",
|
||||
label="Warping Folder",
|
||||
description="Panorama warping results folder.",
|
||||
value="",
|
||||
invalidate=True,
|
||||
),
|
||||
desc.File(
|
||||
name="labels",
|
||||
label="Labels Images",
|
||||
description="Panorama seams results images.",
|
||||
value="",
|
||||
invalidate=True,
|
||||
),
|
||||
desc.ChoiceParam(
|
||||
name="compositerType",
|
||||
|
@ -55,7 +52,6 @@ Multiple cameras are contributing to the low frequencies and only the best one c
|
|||
value="multiband",
|
||||
values=["replace", "alpha", "multiband"],
|
||||
exclusive=True,
|
||||
invalidate=True,
|
||||
),
|
||||
desc.IntParam(
|
||||
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.",
|
||||
value=0,
|
||||
range=(0, 16, 1),
|
||||
invalidate=True,
|
||||
enabled=lambda node: node.compositerType.value and node.compositerType.value == "multiband",
|
||||
),
|
||||
desc.IntParam(
|
||||
|
@ -80,7 +75,6 @@ Multiple cameras are contributing to the low frequencies and only the best one c
|
|||
label="Use Tiling",
|
||||
description="Enable tiling mode for parallelization.",
|
||||
value=True,
|
||||
invalidate=True,
|
||||
),
|
||||
desc.ChoiceParam(
|
||||
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,
|
||||
value="float",
|
||||
exclusive=True,
|
||||
invalidate=True,
|
||||
),
|
||||
desc.ChoiceParam(
|
||||
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"],
|
||||
exclusive=True,
|
||||
advanced=True,
|
||||
invalidate=True,
|
||||
),
|
||||
desc.ChoiceParam(
|
||||
name="verboseLevel",
|
||||
|
@ -116,7 +108,6 @@ Multiple cameras are contributing to the low frequencies and only the best one c
|
|||
values=VERBOSE_LEVEL,
|
||||
value="info",
|
||||
exclusive=True,
|
||||
invalidate=False,
|
||||
),
|
||||
]
|
||||
|
||||
|
@ -126,6 +117,5 @@ Multiple cameras are contributing to the low frequencies and only the best one c
|
|||
label="Folder",
|
||||
description="Output folder containing the composited panorama.",
|
||||
value=desc.Node.internalFolder,
|
||||
invalidate=False,
|
||||
),
|
||||
]
|
||||
|
|
|
@ -22,7 +22,6 @@ Estimate relative camera rotations between input images.
|
|||
label="SfMData",
|
||||
description="Input SfMData file.",
|
||||
value="",
|
||||
invalidate=True,
|
||||
),
|
||||
desc.ListAttribute(
|
||||
elementDesc=desc.File(
|
||||
|
@ -30,7 +29,6 @@ Estimate relative camera rotations between input images.
|
|||
label="Features Folder",
|
||||
description="Folder containing some extracted features.",
|
||||
value="",
|
||||
invalidate=True,
|
||||
),
|
||||
name="featuresFolders",
|
||||
label="Features Folders",
|
||||
|
@ -42,7 +40,6 @@ Estimate relative camera rotations between input images.
|
|||
label="Matches Folder",
|
||||
description="Folder containing some matches.",
|
||||
value="",
|
||||
invalidate=True,
|
||||
),
|
||||
name="matchesFolders",
|
||||
label="Matches Folders",
|
||||
|
@ -55,7 +52,6 @@ Estimate relative camera rotations between input images.
|
|||
values=DESCRIBER_TYPES,
|
||||
value=["sift"],
|
||||
exclusive=False,
|
||||
invalidate=True,
|
||||
joinChar=",",
|
||||
),
|
||||
desc.FloatParam(
|
||||
|
@ -64,7 +60,6 @@ Estimate relative camera rotations between input images.
|
|||
description="Offset to the panorama longitude (in degrees).",
|
||||
value=0.0,
|
||||
range=(-180.0, 180.0, 1.0),
|
||||
invalidate=True,
|
||||
),
|
||||
desc.FloatParam(
|
||||
name="offsetLatitude",
|
||||
|
@ -72,7 +67,6 @@ Estimate relative camera rotations between input images.
|
|||
description="Offset to the panorama latitude (in degrees).",
|
||||
value=0.0,
|
||||
range=(-90.0, 90.0, 1.0),
|
||||
invalidate=True,
|
||||
),
|
||||
desc.ChoiceParam(
|
||||
name="rotationAveraging",
|
||||
|
@ -83,7 +77,6 @@ Estimate relative camera rotations between input images.
|
|||
values=["L1_minimization", "L2_minimization"],
|
||||
value="L2_minimization",
|
||||
exclusive=True,
|
||||
invalidate=True,
|
||||
advanced=True,
|
||||
),
|
||||
desc.ChoiceParam(
|
||||
|
@ -96,7 +89,6 @@ Estimate relative camera rotations between input images.
|
|||
values=["essential_matrix", "homography_matrix", "rotation_matrix"],
|
||||
value="rotation_matrix",
|
||||
exclusive=True,
|
||||
invalidate=True,
|
||||
advanced=True,
|
||||
),
|
||||
desc.BoolParam(
|
||||
|
@ -104,7 +96,6 @@ Estimate relative camera rotations between input images.
|
|||
label="Rotation Averaging Weighting",
|
||||
description="Rotation averaging weighting based on the number of feature matches.",
|
||||
value=True,
|
||||
invalidate=True,
|
||||
advanced=True,
|
||||
),
|
||||
desc.BoolParam(
|
||||
|
@ -112,14 +103,12 @@ Estimate relative camera rotations between input images.
|
|||
label="Filter Matches",
|
||||
description="Filter the matches.",
|
||||
value=False,
|
||||
invalidate=True,
|
||||
),
|
||||
desc.BoolParam(
|
||||
name="refine",
|
||||
label="Refine",
|
||||
description="Refine camera relative poses, points and optionally internal camera parameters.",
|
||||
value=True,
|
||||
invalidate=True,
|
||||
),
|
||||
desc.BoolParam(
|
||||
name="lockAllIntrinsics",
|
||||
|
@ -128,7 +117,6 @@ Estimate relative camera rotations between input images.
|
|||
"principal point, distortion if any) constant during the reconstruction.\n"
|
||||
"This may be helpful if the input cameras are already fully calibrated.",
|
||||
value=False,
|
||||
invalidate=True,
|
||||
),
|
||||
desc.FloatParam(
|
||||
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.",
|
||||
value=20.0,
|
||||
range=(0.0, 360.0, 1.0),
|
||||
invalidate=True,
|
||||
advanced=True,
|
||||
),
|
||||
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.",
|
||||
value=2.0,
|
||||
range=(0.0, 360.0, 1.0),
|
||||
invalidate=True,
|
||||
advanced=True,
|
||||
),
|
||||
desc.FloatParam(
|
||||
|
@ -154,7 +140,6 @@ Estimate relative camera rotations between input images.
|
|||
description="Maximum angular error in global rotation averging (in degrees).",
|
||||
value=100.0,
|
||||
range=(0.0, 360.0, 1.0),
|
||||
invalidate=True,
|
||||
advanced=True,
|
||||
),
|
||||
desc.BoolParam(
|
||||
|
@ -162,7 +147,6 @@ Estimate relative camera rotations between input images.
|
|||
label="Intermediate Refine: Focal",
|
||||
description="Intermediate refine with rotation and focal length only.",
|
||||
value=False,
|
||||
invalidate=True,
|
||||
advanced=True,
|
||||
),
|
||||
desc.BoolParam(
|
||||
|
@ -170,7 +154,6 @@ Estimate relative camera rotations between input images.
|
|||
label="Intermediate Refine: Focal And Distortion",
|
||||
description="Intermediate refine with rotation, focal length and distortion.",
|
||||
value=False,
|
||||
invalidate=True,
|
||||
advanced=True,
|
||||
),
|
||||
desc.ChoiceParam(
|
||||
|
@ -180,7 +163,6 @@ Estimate relative camera rotations between input images.
|
|||
values=VERBOSE_LEVEL,
|
||||
value="info",
|
||||
exclusive=True,
|
||||
invalidate=False,
|
||||
),
|
||||
]
|
||||
|
||||
|
@ -190,13 +172,11 @@ Estimate relative camera rotations between input images.
|
|||
label="SfM File",
|
||||
description="Path to the output SfM file.",
|
||||
value=desc.Node.internalFolder + "panorama.abc",
|
||||
invalidate=False,
|
||||
),
|
||||
desc.File(
|
||||
name="outputViewsAndPoses",
|
||||
label="Views And Poses",
|
||||
description="Path to the output SfMData file with cameras (views and poses).",
|
||||
value=desc.Node.internalFolder + "cameras.sfm",
|
||||
invalidate=False,
|
||||
),
|
||||
]
|
||||
|
|
|
@ -27,7 +27,6 @@ This node allows to setup the Panorama:
|
|||
label="SfMData",
|
||||
description="Input SfMData file.",
|
||||
value="",
|
||||
invalidate=True,
|
||||
),
|
||||
desc.ChoiceParam(
|
||||
name="initializeCameras",
|
||||
|
@ -36,14 +35,12 @@ This node allows to setup the Panorama:
|
|||
value="No",
|
||||
values=["No", "File", "Horizontal", "Horizontal+Zenith", "Zenith+Horizontal", "Spherical"],
|
||||
exclusive=True,
|
||||
invalidate=True,
|
||||
),
|
||||
desc.File(
|
||||
name="config",
|
||||
label="XML Config",
|
||||
description="XML data file.",
|
||||
value="",
|
||||
invalidate=True,
|
||||
enabled=lambda node: node.initializeCameras.value == "File",
|
||||
),
|
||||
desc.BoolParam(
|
||||
|
@ -51,7 +48,6 @@ This node allows to setup the Panorama:
|
|||
label="Yaw CW",
|
||||
description="If selected, the yaw rotation will be clockwise. Otherwise, it will be counter-clockwise.",
|
||||
value=True,
|
||||
invalidate=True,
|
||||
enabled=lambda node: ("Horizontal" in node.initializeCameras.value) or (node.initializeCameras.value == "Spherical"),
|
||||
),
|
||||
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"
|
||||
"The contact sheet consists in a preview of the panorama using the input images.",
|
||||
value=True,
|
||||
invalidate=True,
|
||||
enabled=lambda node: node.config.enabled and node.config.value != "",
|
||||
),
|
||||
desc.ListAttribute(
|
||||
|
@ -70,7 +65,6 @@ This node allows to setup the Panorama:
|
|||
description="Number of views for a line.",
|
||||
value=-1,
|
||||
range=(-1, 20, 1),
|
||||
invalidate=True,
|
||||
),
|
||||
name="nbViewsPerLine",
|
||||
label="Spherical: Nb Views Per Line",
|
||||
|
@ -85,14 +79,12 @@ This node allows to setup the Panorama:
|
|||
label="Full Fisheye",
|
||||
description="Set this option to declare a full fisheye panorama setup.",
|
||||
value=False,
|
||||
invalidate=True,
|
||||
),
|
||||
desc.BoolParam(
|
||||
name="estimateFisheyeCircle",
|
||||
label="Estimate Fisheye Circle",
|
||||
description="Automatically estimate the fisheye circle center and radius instead of using user values.",
|
||||
value=True,
|
||||
invalidate=True,
|
||||
enabled=lambda node: node.useFisheye.value,
|
||||
),
|
||||
desc.GroupAttribute(
|
||||
|
@ -105,7 +97,6 @@ This node allows to setup the Panorama:
|
|||
label="x",
|
||||
description="X offset in pixels.",
|
||||
value=0.0,
|
||||
invalidate=True,
|
||||
range=(-1000.0, 10000.0, 1.0),
|
||||
),
|
||||
desc.FloatParam(
|
||||
|
@ -113,7 +104,6 @@ This node allows to setup the Panorama:
|
|||
label="y",
|
||||
description="Y offset in pixels.",
|
||||
value=0.0,
|
||||
invalidate=True,
|
||||
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).",
|
||||
value=96.0,
|
||||
range=(0.0, 150.0, 0.01),
|
||||
invalidate=True,
|
||||
enabled=lambda node: node.useFisheye.value and not node.estimateFisheyeCircle.value,
|
||||
),
|
||||
desc.ChoiceParam(
|
||||
|
@ -136,14 +125,12 @@ This node allows to setup the Panorama:
|
|||
value="None",
|
||||
values=["None", "rotate90", "rotate180", "rotate270"],
|
||||
exclusive=True,
|
||||
invalidate=True,
|
||||
),
|
||||
desc.BoolParam(
|
||||
name="debugFisheyeCircleEstimation",
|
||||
label="Debug Fisheye Circle Detection",
|
||||
description="Debug fisheye circle detection.",
|
||||
value=False,
|
||||
invalidate=True,
|
||||
enabled=lambda node: node.useFisheye.value,
|
||||
advanced=True,
|
||||
),
|
||||
|
@ -154,7 +141,6 @@ This node allows to setup the Panorama:
|
|||
values=VERBOSE_LEVEL,
|
||||
value="info",
|
||||
exclusive=True,
|
||||
invalidate=False,
|
||||
),
|
||||
]
|
||||
|
||||
|
@ -164,6 +150,5 @@ This node allows to setup the Panorama:
|
|||
label="SfMData File",
|
||||
description="Path to the output SfMData file.",
|
||||
value=desc.Node.internalFolder + "sfmData.sfm",
|
||||
invalidate=False,
|
||||
),
|
||||
]
|
||||
|
|
|
@ -24,14 +24,12 @@ Merge all inputs coming from the PanoramaCompositing node.
|
|||
label="Input SfMData",
|
||||
description="Input SfMData file.",
|
||||
value="",
|
||||
invalidate=True,
|
||||
),
|
||||
desc.File(
|
||||
name="compositingFolder",
|
||||
label="Compositing Folder",
|
||||
description="Panorama compositing results.",
|
||||
value="",
|
||||
invalidate=True,
|
||||
),
|
||||
desc.ChoiceParam(
|
||||
name="outputFileType",
|
||||
|
@ -40,7 +38,6 @@ Merge all inputs coming from the PanoramaCompositing node.
|
|||
value="exr",
|
||||
values=["jpg", "png", "tif", "exr"],
|
||||
exclusive=True,
|
||||
invalidate=True,
|
||||
group="", # not part of allParams, as this is not a parameter for the command line
|
||||
),
|
||||
desc.BoolParam(
|
||||
|
@ -48,7 +45,6 @@ Merge all inputs coming from the PanoramaCompositing node.
|
|||
label="Use Tiling",
|
||||
description="Enable tiling mode for parallelization.",
|
||||
value=True,
|
||||
invalidate=True,
|
||||
),
|
||||
desc.ChoiceParam(
|
||||
name="storageDataType",
|
||||
|
@ -61,7 +57,6 @@ Merge all inputs coming from the PanoramaCompositing node.
|
|||
values=EXR_STORAGE_DATA_TYPE,
|
||||
value="float",
|
||||
exclusive=True,
|
||||
invalidate=True,
|
||||
),
|
||||
desc.ChoiceParam(
|
||||
name="verboseLevel",
|
||||
|
@ -70,7 +65,6 @@ Merge all inputs coming from the PanoramaCompositing node.
|
|||
values=VERBOSE_LEVEL,
|
||||
value="info",
|
||||
exclusive=True,
|
||||
invalidate=False,
|
||||
),
|
||||
]
|
||||
|
||||
|
@ -81,6 +75,5 @@ Merge all inputs coming from the PanoramaCompositing node.
|
|||
description="Output merged panorama image.",
|
||||
semantic="image",
|
||||
value=desc.Node.internalFolder + "panorama.{outputFileTypeValue}",
|
||||
invalidate=False,
|
||||
),
|
||||
]
|
||||
|
|
|
@ -23,21 +23,18 @@ Post process the panorama.
|
|||
label="Input Panorama",
|
||||
description="Input panorama image.",
|
||||
value="",
|
||||
invalidate=True,
|
||||
),
|
||||
desc.BoolParam(
|
||||
name="fillHoles",
|
||||
label="Fill Holes Algorithm",
|
||||
description="Fill the non attributed pixels with push pull algorithm if set.",
|
||||
value=False,
|
||||
invalidate=True,
|
||||
),
|
||||
desc.BoolParam(
|
||||
name="exportLevels",
|
||||
label="Export Downscaled Levels",
|
||||
description="Export downscaled panorama levels.",
|
||||
value=False,
|
||||
invalidate=True,
|
||||
),
|
||||
desc.IntParam(
|
||||
name="lastLevelMaxSize",
|
||||
|
@ -45,7 +42,6 @@ Post process the panorama.
|
|||
description="Maximum width of smallest downscaled panorama level.",
|
||||
value=3840,
|
||||
range=(1, 100000),
|
||||
invalidate=True,
|
||||
),
|
||||
desc.IntParam(
|
||||
name="previewSize",
|
||||
|
@ -53,7 +49,6 @@ Post process the panorama.
|
|||
description="The width (in pixels) of the output panorama preview.",
|
||||
value=1000,
|
||||
range=(0, 5000, 100),
|
||||
invalidate=True,
|
||||
),
|
||||
desc.ChoiceParam(
|
||||
name="outputColorSpace",
|
||||
|
@ -62,7 +57,6 @@ Post process the panorama.
|
|||
values=COLORSPACES,
|
||||
value="Linear",
|
||||
exclusive=True,
|
||||
invalidate=True,
|
||||
),
|
||||
desc.ChoiceParam(
|
||||
name="compressionMethod",
|
||||
|
@ -71,7 +65,6 @@ Post process the panorama.
|
|||
value="auto",
|
||||
values=["none", "auto", "rle", "zip", "zips", "piz", "pxr24", "b44", "b44a", "dwaa", "dwab"],
|
||||
exclusive=True,
|
||||
invalidate=True,
|
||||
),
|
||||
desc.IntParam(
|
||||
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.",
|
||||
value=0,
|
||||
range=(0, 500, 1),
|
||||
invalidate=True,
|
||||
enabled=lambda node: node.compressionMethod.value in ["dwaa", "dwab", "zip", "zips"],
|
||||
),
|
||||
desc.StringParam(
|
||||
|
@ -109,7 +101,6 @@ Post process the panorama.
|
|||
values=VERBOSE_LEVEL,
|
||||
value="info",
|
||||
exclusive=True,
|
||||
invalidate=False,
|
||||
),
|
||||
]
|
||||
|
||||
|
@ -120,7 +111,6 @@ Post process the panorama.
|
|||
description="Generated panorama in EXR format.",
|
||||
semantic="image",
|
||||
value=lambda attr: desc.Node.internalFolder + attr.node.panoramaName.value,
|
||||
invalidate=False,
|
||||
),
|
||||
desc.File(
|
||||
name="outputPanoramaPreview",
|
||||
|
@ -128,14 +118,12 @@ Post process the panorama.
|
|||
description="Preview of the generated panorama in JPG format.",
|
||||
semantic="image",
|
||||
value=lambda attr: desc.Node.internalFolder + attr.node.previewName.value,
|
||||
invalidate=False,
|
||||
),
|
||||
desc.File(
|
||||
name="downscaledPanoramaLevels",
|
||||
label="Downscaled Panorama Levels",
|
||||
description="Downscaled versions of the generated panorama.",
|
||||
value=lambda attr: desc.Node.internalFolder + os.path.splitext(attr.node.panoramaName.value)[0] + "_level_*.exr",
|
||||
invalidate=False,
|
||||
group="",
|
||||
),
|
||||
]
|
||||
|
|
|
@ -21,7 +21,6 @@ Prepare images for Panorama pipeline: ensures that images orientations are coher
|
|||
label="Input",
|
||||
description="SfMData file.",
|
||||
value="",
|
||||
invalidate=True,
|
||||
),
|
||||
desc.ChoiceParam(
|
||||
name="verboseLevel",
|
||||
|
@ -30,7 +29,6 @@ Prepare images for Panorama pipeline: ensures that images orientations are coher
|
|||
values=VERBOSE_LEVEL,
|
||||
value="info",
|
||||
exclusive=True,
|
||||
invalidate=False,
|
||||
),
|
||||
]
|
||||
|
||||
|
@ -40,6 +38,5 @@ Prepare images for Panorama pipeline: ensures that images orientations are coher
|
|||
label="SfMData",
|
||||
description="Output SfMData file.",
|
||||
value=lambda attr: desc.Node.internalFolder + os.path.basename(attr.node.input.value),
|
||||
invalidate=False,
|
||||
),
|
||||
]
|
||||
|
|
|
@ -24,14 +24,12 @@ Estimate the seams lines between the inputs to provide an optimal compositing in
|
|||
label="Input SfMData",
|
||||
description="Input SfMData file.",
|
||||
value="",
|
||||
invalidate=True,
|
||||
),
|
||||
desc.File(
|
||||
name="warpingFolder",
|
||||
label="Warping Folder",
|
||||
description="Panorama warping results.",
|
||||
value="",
|
||||
invalidate=True,
|
||||
),
|
||||
desc.IntParam(
|
||||
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.",
|
||||
value=5000,
|
||||
range=(0, 100000, 1),
|
||||
invalidate=True,
|
||||
),
|
||||
desc.BoolParam(
|
||||
name="useGraphCut",
|
||||
label="Use Smart Seams",
|
||||
description="Use a graphcut algorithm to optimize seams for better transitions between images.",
|
||||
value=True,
|
||||
invalidate=True,
|
||||
),
|
||||
desc.ChoiceParam(
|
||||
name="verboseLevel",
|
||||
|
@ -55,7 +51,6 @@ Estimate the seams lines between the inputs to provide an optimal compositing in
|
|||
values=VERBOSE_LEVEL,
|
||||
value="info",
|
||||
exclusive=True,
|
||||
invalidate=False,
|
||||
),
|
||||
]
|
||||
|
||||
|
@ -66,13 +61,11 @@ Estimate the seams lines between the inputs to provide an optimal compositing in
|
|||
description="",
|
||||
semantic="image",
|
||||
value=desc.Node.internalFolder + "labels.exr",
|
||||
invalidate=False,
|
||||
),
|
||||
desc.File(
|
||||
name="outputSfm",
|
||||
label="Output SfMData File",
|
||||
description="Path to the output SfMData file.",
|
||||
value=desc.Node.internalFolder + "panorama.sfm",
|
||||
invalidate=False,
|
||||
),
|
||||
]
|
||||
|
|
|
@ -24,14 +24,12 @@ Compute the image warping for each input image in the panorama coordinate system
|
|||
label="SfMData",
|
||||
description="Input SfMData file.",
|
||||
value="",
|
||||
invalidate=True,
|
||||
),
|
||||
desc.BoolParam(
|
||||
name="estimateResolution",
|
||||
label="Estimate Resolution",
|
||||
description="Estimate output panorama resolution automatically based on the resolution of input images.",
|
||||
value=True,
|
||||
invalidate=True,
|
||||
group=None, # skip group from command line
|
||||
),
|
||||
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).",
|
||||
value=10000,
|
||||
range=(0, 50000, 1000),
|
||||
invalidate=True,
|
||||
enabled=lambda node: (not node.estimateResolution.value),
|
||||
),
|
||||
desc.IntParam(
|
||||
|
@ -55,7 +52,6 @@ Compute the image warping for each input image in the panorama coordinate system
|
|||
value=50,
|
||||
range=(0, 100, 1),
|
||||
enabled=lambda node: (node.estimateResolution.value),
|
||||
invalidate=True,
|
||||
),
|
||||
desc.IntParam(
|
||||
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.",
|
||||
value=70000,
|
||||
range=(0, 100000, 1000),
|
||||
invalidate=True,
|
||||
enabled=lambda node: (node.estimateResolution.value),
|
||||
),
|
||||
desc.ChoiceParam(
|
||||
|
@ -73,7 +68,6 @@ Compute the image warping for each input image in the panorama coordinate system
|
|||
values=COLORSPACES,
|
||||
value="Linear",
|
||||
exclusive=True,
|
||||
invalidate=True,
|
||||
),
|
||||
desc.ChoiceParam(
|
||||
name="storageDataType",
|
||||
|
@ -86,7 +80,6 @@ Compute the image warping for each input image in the panorama coordinate system
|
|||
values=EXR_STORAGE_DATA_TYPE,
|
||||
value="float",
|
||||
exclusive=True,
|
||||
invalidate=True,
|
||||
),
|
||||
desc.ChoiceParam(
|
||||
name="verboseLevel",
|
||||
|
@ -95,7 +88,6 @@ Compute the image warping for each input image in the panorama coordinate system
|
|||
values=VERBOSE_LEVEL,
|
||||
value="info",
|
||||
exclusive=True,
|
||||
invalidate=False,
|
||||
),
|
||||
]
|
||||
|
||||
|
@ -105,6 +97,5 @@ Compute the image warping for each input image in the panorama coordinate system
|
|||
label="Folder",
|
||||
description="Output folder.",
|
||||
value=desc.Node.internalFolder,
|
||||
invalidate=False,
|
||||
),
|
||||
]
|
||||
|
|
|
@ -17,7 +17,6 @@ The lighting conditions are assumed to be known.
|
|||
label="SfMData",
|
||||
description="Input SfMData file.",
|
||||
value="",
|
||||
invalidate=True,
|
||||
),
|
||||
desc.File(
|
||||
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"
|
||||
"If empty, .txt files are expected in the image folder.",
|
||||
value="defaultJSON.txt",
|
||||
invalidate=True,
|
||||
),
|
||||
desc.File(
|
||||
name="maskPath",
|
||||
label="Mask Folder Path",
|
||||
description="Path to a folder containing masks or to a mask directly.",
|
||||
value="",
|
||||
invalidate=True,
|
||||
),
|
||||
desc.ChoiceParam(
|
||||
name="SHOrder",
|
||||
|
@ -45,7 +42,6 @@ The lighting conditions are assumed to be known.
|
|||
value="0",
|
||||
exclusive=True,
|
||||
advanced=True,
|
||||
invalidate=True,
|
||||
),
|
||||
desc.BoolParam(
|
||||
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.",
|
||||
value=False,
|
||||
advanced=True,
|
||||
invalidate=True,
|
||||
),
|
||||
desc.BoolParam(
|
||||
name="isRobust",
|
||||
|
@ -61,7 +56,6 @@ The lighting conditions are assumed to be known.
|
|||
description="True to use the robust algorithm, false otherwise.",
|
||||
value=False,
|
||||
advanced=True,
|
||||
invalidate=True,
|
||||
),
|
||||
desc.IntParam(
|
||||
name="downscale",
|
||||
|
@ -70,7 +64,6 @@ The lighting conditions are assumed to be known.
|
|||
value=1,
|
||||
range=(1, 10, 1),
|
||||
advanced=True,
|
||||
invalidate=True,
|
||||
),
|
||||
desc.ChoiceParam(
|
||||
name="verboseLevel",
|
||||
|
@ -79,7 +72,6 @@ The lighting conditions are assumed to be known.
|
|||
values=VERBOSE_LEVEL,
|
||||
value="info",
|
||||
exclusive=True,
|
||||
invalidate=False,
|
||||
),
|
||||
]
|
||||
|
||||
|
@ -89,14 +81,12 @@ The lighting conditions are assumed to be known.
|
|||
label="Output Folder",
|
||||
description="Path to the output folder.",
|
||||
value=desc.Node.internalFolder,
|
||||
invalidate=False,
|
||||
),
|
||||
desc.File(
|
||||
name="outputSfmDataAlbedo",
|
||||
label="SfMData Albedo",
|
||||
description="Output SfMData file containing the albedo information.",
|
||||
value=desc.Node.internalFolder + "/albedoMaps.sfm",
|
||||
invalidate=False,
|
||||
group="", # remove from command line
|
||||
),
|
||||
desc.File(
|
||||
|
@ -104,7 +94,6 @@ The lighting conditions are assumed to be known.
|
|||
label="SfMData Normal",
|
||||
description="Output SfMData file containing the normal maps information.",
|
||||
value=desc.Node.internalFolder + "/normalMaps.sfm",
|
||||
invalidate=False,
|
||||
group="", # remove from command line
|
||||
),
|
||||
desc.File(
|
||||
|
@ -112,7 +101,6 @@ The lighting conditions are assumed to be known.
|
|||
label="SfMData Normal PNG",
|
||||
description="Output SfMData file containing the normal maps information.",
|
||||
value=desc.Node.internalFolder + "/normalMapsPNG.sfm",
|
||||
invalidate=False,
|
||||
group="", # remove from command line
|
||||
),
|
||||
# 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.",
|
||||
semantic="image",
|
||||
value=desc.Node.internalFolder + "<POSE_ID>_normals.exr",
|
||||
invalidate=False,
|
||||
group="", # do not export on the command line
|
||||
),
|
||||
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).",
|
||||
semantic="image",
|
||||
value=desc.Node.internalFolder + "<POSE_ID>_normals.png",
|
||||
invalidate=False,
|
||||
group="", # do not export on the command line
|
||||
),
|
||||
desc.File(
|
||||
|
@ -142,7 +128,6 @@ The lighting conditions are assumed to be known.
|
|||
description="Generated normal maps in the world coordinate system.",
|
||||
semantic="image",
|
||||
value=desc.Node.internalFolder + "<POSE_ID>_normals_w.exr",
|
||||
invalidate=False,
|
||||
group="", # do not export on the command line
|
||||
),
|
||||
|
||||
|
@ -152,7 +137,6 @@ The lighting conditions are assumed to be known.
|
|||
description="Generated albedo maps.",
|
||||
semantic="image",
|
||||
value=desc.Node.internalFolder + "<POSE_ID>_albedo.png",
|
||||
invalidate=False,
|
||||
group="", # do not export on the command line
|
||||
),
|
||||
]
|
||||
|
|
|
@ -21,7 +21,6 @@ This node export undistorted images so the depth map and texturing can be comput
|
|||
label="SfMData",
|
||||
description="Input SfMData file.",
|
||||
value="",
|
||||
invalidate=True,
|
||||
),
|
||||
desc.ListAttribute(
|
||||
elementDesc=desc.File(
|
||||
|
@ -29,7 +28,6 @@ This node export undistorted images so the depth map and texturing can be comput
|
|||
label="Images Folder",
|
||||
description="",
|
||||
value="",
|
||||
invalidate=True,
|
||||
),
|
||||
name="imagesFolders",
|
||||
label="Images Folders",
|
||||
|
@ -41,7 +39,6 @@ This node export undistorted images so the depth map and texturing can be comput
|
|||
label="Masks Folder",
|
||||
description="",
|
||||
value="",
|
||||
invalidate=True,
|
||||
),
|
||||
name="masksFolders",
|
||||
label="Masks Folders",
|
||||
|
@ -54,7 +51,6 @@ This node export undistorted images so the depth map and texturing can be comput
|
|||
value="png",
|
||||
values=["exr", "jpg", "png"],
|
||||
exclusive=True,
|
||||
invalidate=True,
|
||||
),
|
||||
desc.ChoiceParam(
|
||||
name="outputFileType",
|
||||
|
@ -63,7 +59,6 @@ This node export undistorted images so the depth map and texturing can be comput
|
|||
value="exr",
|
||||
values=["jpg", "png", "tif", "exr"],
|
||||
exclusive=True,
|
||||
invalidate=True,
|
||||
advanced=True,
|
||||
),
|
||||
desc.BoolParam(
|
||||
|
@ -71,7 +66,6 @@ This node export undistorted images so the depth map and texturing can be comput
|
|||
label="Save Metadata",
|
||||
description="Save projections and intrinsics information in images metadata (only for .exr images).",
|
||||
value=True,
|
||||
invalidate=True,
|
||||
advanced=True,
|
||||
),
|
||||
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",
|
||||
description="Save projections and intrinsics information in text files.",
|
||||
value=False,
|
||||
invalidate=True,
|
||||
advanced=True,
|
||||
),
|
||||
desc.BoolParam(
|
||||
|
@ -87,7 +80,6 @@ This node export undistorted images so the depth map and texturing can be comput
|
|||
label="Correct Images Exposure",
|
||||
description="Apply a correction on images' exposure value.",
|
||||
value=False,
|
||||
invalidate=True,
|
||||
advanced=True,
|
||||
),
|
||||
desc.ChoiceParam(
|
||||
|
@ -97,7 +89,6 @@ This node export undistorted images so the depth map and texturing can be comput
|
|||
values=VERBOSE_LEVEL,
|
||||
value="info",
|
||||
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",
|
||||
description="Output folder.",
|
||||
value=desc.Node.internalFolder,
|
||||
invalidate=False,
|
||||
),
|
||||
desc.File(
|
||||
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.",
|
||||
semantic="image",
|
||||
value=desc.Node.internalFolder + "<VIEW_ID>.{outputFileTypeValue}",
|
||||
invalidate=False,
|
||||
group="",
|
||||
advanced=True,
|
||||
),
|
||||
|
|
|
@ -24,7 +24,6 @@ This node allows to copy files into a specific folder.
|
|||
label="Input",
|
||||
description="File or folder to publish.",
|
||||
value="",
|
||||
invalidate=True,
|
||||
),
|
||||
name="inputFiles",
|
||||
label="Input Files",
|
||||
|
@ -36,7 +35,6 @@ This node allows to copy files into a specific folder.
|
|||
label="Output Folder",
|
||||
description="Folder to publish to.",
|
||||
value="",
|
||||
invalidate=True,
|
||||
),
|
||||
desc.ChoiceParam(
|
||||
name="verboseLevel",
|
||||
|
@ -45,7 +43,6 @@ This node allows to copy files into a specific folder.
|
|||
values=VERBOSE_LEVEL,
|
||||
value="info",
|
||||
exclusive=True,
|
||||
invalidate=False,
|
||||
),
|
||||
]
|
||||
|
||||
|
|
|
@ -21,21 +21,18 @@ Estimate relative pose between each pair of views that share tracks.
|
|||
label="SfMData",
|
||||
description="SfMData file.",
|
||||
value="",
|
||||
invalidate=True,
|
||||
),
|
||||
desc.File(
|
||||
name="tracksFilename",
|
||||
label="Tracks File",
|
||||
description="Tracks file.",
|
||||
value="",
|
||||
invalidate=True,
|
||||
),
|
||||
desc.BoolParam(
|
||||
name="enforcePureRotation",
|
||||
label="Enforce pure rotation",
|
||||
description="Enforce pure rotation as a model",
|
||||
value=False,
|
||||
invalidate=True,
|
||||
),
|
||||
desc.ChoiceParam(
|
||||
name="verboseLevel",
|
||||
|
@ -44,7 +41,6 @@ Estimate relative pose between each pair of views that share tracks.
|
|||
values=VERBOSE_LEVEL,
|
||||
value="info",
|
||||
exclusive=True,
|
||||
invalidate=False,
|
||||
),
|
||||
]
|
||||
|
||||
|
@ -54,6 +50,5 @@ Estimate relative pose between each pair of views that share tracks.
|
|||
label="Pairs Info",
|
||||
description="Path to the output Pairs info files directory.",
|
||||
value=desc.Node.internalFolder,
|
||||
invalidate=False,
|
||||
),
|
||||
]
|
||||
|
|
|
@ -21,7 +21,6 @@ Select Connected Views based on SfM landmarks.
|
|||
label="SfMData",
|
||||
description="Input SfMData file.",
|
||||
value="",
|
||||
invalidate=True,
|
||||
),
|
||||
desc.IntParam(
|
||||
name="maxTCams",
|
||||
|
@ -29,7 +28,6 @@ Select Connected Views based on SfM landmarks.
|
|||
description="Maximum number of neighbour cameras per image.",
|
||||
value=10,
|
||||
range=(1, 20, 1),
|
||||
invalidate=True,
|
||||
),
|
||||
desc.FloatParam(
|
||||
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).",
|
||||
value=2.0,
|
||||
range=(0.0, 10.0, 0.1),
|
||||
invalidate=True,
|
||||
advanced=True,
|
||||
),
|
||||
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).",
|
||||
value=70.0,
|
||||
range=(10.0, 120.0, 1.0),
|
||||
invalidate=True,
|
||||
advanced=True,
|
||||
),
|
||||
desc.ChoiceParam(
|
||||
|
@ -56,7 +52,6 @@ Select Connected Views based on SfM landmarks.
|
|||
values=VERBOSE_LEVEL,
|
||||
value="info",
|
||||
exclusive=True,
|
||||
invalidate=False,
|
||||
),
|
||||
]
|
||||
|
||||
|
@ -66,6 +61,5 @@ Select Connected Views based on SfM landmarks.
|
|||
label="Connected Views",
|
||||
description="List of connected views in a text file.",
|
||||
value=desc.Node.internalFolder + "connectedViews.txt",
|
||||
invalidate=False,
|
||||
),
|
||||
]
|
||||
|
|
|
@ -29,14 +29,12 @@ The alignment can be based on:
|
|||
label="Input",
|
||||
description="Input SfMData file .",
|
||||
value="",
|
||||
invalidate=True,
|
||||
),
|
||||
desc.File(
|
||||
name="reference",
|
||||
label="Reference",
|
||||
description="Path to the scene used as the reference coordinate system.",
|
||||
value="",
|
||||
invalidate=True,
|
||||
),
|
||||
desc.ChoiceParam(
|
||||
name="method",
|
||||
|
@ -51,7 +49,6 @@ The alignment can be based on:
|
|||
value="from_cameras_viewid",
|
||||
values=["from_cameras_viewid", "from_cameras_poseid", "from_cameras_filepath", "from_cameras_metadata", "from_markers", 'from_landmarks'],
|
||||
exclusive=True,
|
||||
invalidate=True,
|
||||
),
|
||||
desc.StringParam(
|
||||
name="fileMatchingPattern",
|
||||
|
@ -66,7 +63,6 @@ The alignment can be based on:
|
|||
" - Match the filename prefix before '_': "
|
||||
r'".*\/(.*?)_.*\.\w{3}"',
|
||||
value=r".*\/(.*?)\.\w{3}",
|
||||
invalidate=True,
|
||||
),
|
||||
desc.ListAttribute(
|
||||
elementDesc=desc.File(
|
||||
|
@ -74,7 +70,6 @@ The alignment can be based on:
|
|||
label="Metadata",
|
||||
description="",
|
||||
value="Metadata that should match to create the correspondences.",
|
||||
invalidate=True,
|
||||
),
|
||||
name="metadataMatchingList",
|
||||
label="Metadata Matching List",
|
||||
|
@ -86,21 +81,18 @@ The alignment can be based on:
|
|||
label="Scale",
|
||||
description="Apply scale transformation.",
|
||||
value=True,
|
||||
invalidate=True,
|
||||
),
|
||||
desc.BoolParam(
|
||||
name="applyRotation",
|
||||
label="Rotation",
|
||||
description="Apply rotation transformation.",
|
||||
value=True,
|
||||
invalidate=True,
|
||||
),
|
||||
desc.BoolParam(
|
||||
name="applyTranslation",
|
||||
label="Translation",
|
||||
description="Apply translation transformation.",
|
||||
value=True,
|
||||
invalidate=True,
|
||||
),
|
||||
desc.ChoiceParam(
|
||||
name="verboseLevel",
|
||||
|
@ -109,7 +101,6 @@ The alignment can be based on:
|
|||
values=VERBOSE_LEVEL,
|
||||
value="info",
|
||||
exclusive=True,
|
||||
invalidate=False,
|
||||
),
|
||||
]
|
||||
|
||||
|
@ -119,13 +110,11 @@ The alignment can be based on:
|
|||
label="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",
|
||||
invalidate=False,
|
||||
),
|
||||
desc.File(
|
||||
name="outputViewsAndPoses",
|
||||
label="Poses",
|
||||
description="Path to the output SfMData file with cameras (views and poses).",
|
||||
value=desc.Node.internalFolder + "cameras.sfm",
|
||||
invalidate=False,
|
||||
),
|
||||
]
|
||||
|
|
|
@ -17,7 +17,6 @@ class SfMDistances(desc.AVCommandLineNode):
|
|||
label="Input",
|
||||
description="SfMData file.",
|
||||
value="",
|
||||
invalidate=True,
|
||||
),
|
||||
desc.ChoiceParam(
|
||||
name="objectType",
|
||||
|
@ -26,7 +25,6 @@ class SfMDistances(desc.AVCommandLineNode):
|
|||
value="landmarks",
|
||||
values=["landmarks", "cameras"],
|
||||
exclusive=True,
|
||||
invalidate=True,
|
||||
),
|
||||
desc.ChoiceParam(
|
||||
name="landmarksDescriberTypes",
|
||||
|
@ -35,7 +33,6 @@ class SfMDistances(desc.AVCommandLineNode):
|
|||
values=DESCRIBER_TYPES,
|
||||
value=["cctag3"],
|
||||
exclusive=False,
|
||||
invalidate=True,
|
||||
joinChar=",",
|
||||
),
|
||||
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"
|
||||
"It will list all elements if empty.",
|
||||
value="",
|
||||
invalidate=True,
|
||||
),
|
||||
desc.StringParam(
|
||||
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"
|
||||
"It will list all elements if empty.",
|
||||
value="",
|
||||
invalidate=True,
|
||||
),
|
||||
desc.ChoiceParam(
|
||||
name="verboseLevel",
|
||||
|
@ -63,7 +58,6 @@ class SfMDistances(desc.AVCommandLineNode):
|
|||
values=VERBOSE_LEVEL,
|
||||
value="info",
|
||||
exclusive=True,
|
||||
invalidate=False,
|
||||
),
|
||||
]
|
||||
|
||||
|
|
|
@ -46,14 +46,12 @@ Merges two SfMData files into a single one. Fails if some UID is shared among th
|
|||
label="First SfMData",
|
||||
description="First input SfMData file to merge.",
|
||||
value="",
|
||||
invalidate=True,
|
||||
),
|
||||
desc.File(
|
||||
name="secondinput",
|
||||
label="Second SfMData",
|
||||
description="Second input SfMData file to merge.",
|
||||
value="",
|
||||
invalidate=True,
|
||||
),
|
||||
desc.ChoiceParam(
|
||||
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",
|
||||
values=["simple_copy", 'from_landmarks'],
|
||||
exclusive=True,
|
||||
invalidate=True,
|
||||
),
|
||||
desc.ListAttribute(
|
||||
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",
|
||||
description="",
|
||||
value="",
|
||||
invalidate=True,
|
||||
),
|
||||
name="matchesFolders",
|
||||
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,
|
||||
value=["dspsift"],
|
||||
exclusive=False,
|
||||
invalidate=True,
|
||||
joinChar=",",
|
||||
),
|
||||
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,
|
||||
value="info",
|
||||
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",
|
||||
description="Path to the output SfM file (in SfMData format).",
|
||||
value=lambda attr: desc.Node.internalFolder + "sfmData.sfm",
|
||||
invalidate=False,
|
||||
),
|
||||
]
|
||||
|
|
|
@ -21,7 +21,6 @@ class SfMSplitReconstructed(desc.AVCommandLineNode):
|
|||
label="Input SfMData",
|
||||
description="Input SfMData file.",
|
||||
value="",
|
||||
invalidate=True,
|
||||
),
|
||||
desc.ChoiceParam(
|
||||
name="verboseLevel",
|
||||
|
@ -30,7 +29,6 @@ class SfMSplitReconstructed(desc.AVCommandLineNode):
|
|||
values=VERBOSE_LEVEL,
|
||||
value="info",
|
||||
exclusive=True,
|
||||
invalidate=False,
|
||||
),
|
||||
]
|
||||
|
||||
|
@ -40,13 +38,11 @@ class SfMSplitReconstructed(desc.AVCommandLineNode):
|
|||
label="Reconstructed SfMData File",
|
||||
description="SfMData file containing the reconstructed cameras.",
|
||||
value=desc.Node.internalFolder + "sfmReconstructed.abc",
|
||||
invalidate=False,
|
||||
),
|
||||
desc.File(
|
||||
name="notReconstructedOutput",
|
||||
label="Not Reconstructed SfMData File",
|
||||
description="SfMData file containing the non-reconstructed cameras.",
|
||||
value=desc.Node.internalFolder + "sfmNonReconstructed.abc",
|
||||
invalidate=False,
|
||||
),
|
||||
]
|
||||
|
|
|
@ -20,7 +20,6 @@ Assumes the input SfMData describes a set of cameras capturing a scene at a comm
|
|||
label="SfMData",
|
||||
description="Input SfMData file.",
|
||||
value="",
|
||||
invalidate=True,
|
||||
),
|
||||
desc.ChoiceParam(
|
||||
name="verboseLevel",
|
||||
|
@ -29,7 +28,6 @@ Assumes the input SfMData describes a set of cameras capturing a scene at a comm
|
|||
values=VERBOSE_LEVEL,
|
||||
value="info",
|
||||
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",
|
||||
description="Path to the output SfM file (in SfMData format).",
|
||||
value=lambda attr: desc.Node.internalFolder + "sfmData.sfm",
|
||||
invalidate=False,
|
||||
),
|
||||
]
|
||||
|
|
|
@ -21,14 +21,12 @@ This node allows to transfer poses and/or intrinsics form one SfM scene onto ano
|
|||
label="Input",
|
||||
description="SfMData file.",
|
||||
value="",
|
||||
invalidate=True,
|
||||
),
|
||||
desc.File(
|
||||
name="reference",
|
||||
label="Reference",
|
||||
description="Path to the scene used as the reference to retrieve resolved poses and intrinsics.",
|
||||
value="",
|
||||
invalidate=True,
|
||||
),
|
||||
desc.ChoiceParam(
|
||||
name="method",
|
||||
|
@ -41,7 +39,6 @@ This node allows to transfer poses and/or intrinsics form one SfM scene onto ano
|
|||
value="from_viewid",
|
||||
values=["from_viewid", "from_filepath", "from_metadata", "from_intrinsicid"],
|
||||
exclusive=True,
|
||||
invalidate=True,
|
||||
),
|
||||
desc.StringParam(
|
||||
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 \"_\": "
|
||||
r'".*\/(.*?)_.*\.\w{3}"',
|
||||
value=r'.*\/(.*?)\.\w{3}',
|
||||
invalidate=True,
|
||||
),
|
||||
desc.ListAttribute(
|
||||
elementDesc=desc.File(
|
||||
|
@ -64,7 +60,6 @@ This node allows to transfer poses and/or intrinsics form one SfM scene onto ano
|
|||
label="Metadata",
|
||||
description="Metadata that should match to create correspondences.",
|
||||
value="",
|
||||
invalidate=True,
|
||||
),
|
||||
name="metadataMatchingList",
|
||||
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",
|
||||
description="Transfer poses.",
|
||||
value=True,
|
||||
invalidate=True,
|
||||
),
|
||||
desc.BoolParam(
|
||||
name="transferIntrinsics",
|
||||
label="Intrinsics",
|
||||
description="Transfer cameras intrinsics.",
|
||||
value=True,
|
||||
invalidate=True,
|
||||
),
|
||||
desc.BoolParam(
|
||||
name="transferLandmarks",
|
||||
label="Landmarks",
|
||||
description="Transfer landmarks.",
|
||||
value=True,
|
||||
invalidate=True,
|
||||
),
|
||||
desc.ChoiceParam(
|
||||
name="verboseLevel",
|
||||
|
@ -100,7 +92,6 @@ This node allows to transfer poses and/or intrinsics form one SfM scene onto ano
|
|||
values=VERBOSE_LEVEL,
|
||||
value="info",
|
||||
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",
|
||||
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",
|
||||
invalidate=False,
|
||||
),
|
||||
desc.File(
|
||||
name="outputViewsAndPoses",
|
||||
label="Poses",
|
||||
description="Path to the output SfMData file with cameras (views and poses).",
|
||||
value=desc.Node.internalFolder + "cameras.sfm",
|
||||
invalidate=False,
|
||||
),
|
||||
]
|
||||
|
|
|
@ -31,7 +31,6 @@ The transformation can be based on:
|
|||
label="Input",
|
||||
description="SfMData file.",
|
||||
value="",
|
||||
invalidate=True,
|
||||
),
|
||||
desc.ChoiceParam(
|
||||
name="method",
|
||||
|
@ -52,14 +51,12 @@ The transformation can be based on:
|
|||
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"],
|
||||
exclusive=True,
|
||||
invalidate=True,
|
||||
),
|
||||
desc.File(
|
||||
name="lineUp",
|
||||
label="Line Up File",
|
||||
description="LineUp Json file.",
|
||||
value="",
|
||||
invalidate=True,
|
||||
enabled=lambda node: node.method.value == "from_lineup"
|
||||
),
|
||||
desc.File(
|
||||
|
@ -67,7 +64,6 @@ The transformation can be based on:
|
|||
label="Tracks File",
|
||||
description="Tracks file for lineup.",
|
||||
value="",
|
||||
invalidate=True,
|
||||
enabled=lambda node: node.method.value == "from_lineup"
|
||||
),
|
||||
desc.File(
|
||||
|
@ -75,7 +71,6 @@ The transformation can be based on:
|
|||
label="Mesh File",
|
||||
description="Mesh file for lineup.",
|
||||
value="",
|
||||
invalidate=True,
|
||||
enabled=lambda node: node.method.value == "from_lineup"
|
||||
),
|
||||
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"
|
||||
" - from_single_camera: Camera UID or simplified regular expression to match image filepath (like '*camera2*.jpg').",
|
||||
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",
|
||||
),
|
||||
desc.GroupAttribute(
|
||||
|
@ -103,7 +97,6 @@ The transformation can be based on:
|
|||
label="x",
|
||||
description="X offset.",
|
||||
value=0.0,
|
||||
invalidate=True,
|
||||
range=(-20.0, 20.0, 0.01),
|
||||
),
|
||||
desc.FloatParam(
|
||||
|
@ -111,7 +104,6 @@ The transformation can be based on:
|
|||
label="y",
|
||||
description="Y offset.",
|
||||
value=0.0,
|
||||
invalidate=True,
|
||||
range=(-20.0, 20.0, 0.01),
|
||||
),
|
||||
desc.FloatParam(
|
||||
|
@ -119,7 +111,6 @@ The transformation can be based on:
|
|||
label="z",
|
||||
description="Z offset.",
|
||||
value=0.0,
|
||||
invalidate=True,
|
||||
range=(-20.0, 20.0, 0.01),
|
||||
),
|
||||
],
|
||||
|
@ -135,7 +126,6 @@ The transformation can be based on:
|
|||
label="x",
|
||||
description="Euler X rotation.",
|
||||
value=0.0,
|
||||
invalidate=True,
|
||||
range=(-90.0, 90.0, 1.0),
|
||||
),
|
||||
desc.FloatParam(
|
||||
|
@ -143,7 +133,6 @@ The transformation can be based on:
|
|||
label="y",
|
||||
description="Euler Y rotation.",
|
||||
value=0.0,
|
||||
invalidate=True,
|
||||
range=(-180.0, 180.0, 1.0),
|
||||
),
|
||||
desc.FloatParam(
|
||||
|
@ -151,7 +140,6 @@ The transformation can be based on:
|
|||
label="z",
|
||||
description="Euler Z rotation.",
|
||||
value=0.0,
|
||||
invalidate=True,
|
||||
range=(-180.0, 180.0, 1.0),
|
||||
),
|
||||
],
|
||||
|
@ -162,7 +150,6 @@ The transformation can be based on:
|
|||
label="Scale",
|
||||
description="Uniform scale.",
|
||||
value=1.0,
|
||||
invalidate=True,
|
||||
range=(0.0, 20.0, 0.01),
|
||||
),
|
||||
],
|
||||
|
@ -176,7 +163,6 @@ The transformation can be based on:
|
|||
values=DESCRIBER_TYPES,
|
||||
value=["sift", "dspsift", "akaze"],
|
||||
exclusive=False,
|
||||
invalidate=True,
|
||||
joinChar=",",
|
||||
),
|
||||
desc.FloatParam(
|
||||
|
@ -185,7 +171,6 @@ The transformation can be based on:
|
|||
description="Additional scale to apply.",
|
||||
value=1.0,
|
||||
range=(0.0, 100.0, 0.1),
|
||||
invalidate=True,
|
||||
),
|
||||
desc.ListAttribute(
|
||||
name="markers",
|
||||
|
@ -200,7 +185,6 @@ The transformation can be based on:
|
|||
label="Marker",
|
||||
description="Marker ID.",
|
||||
value=0,
|
||||
invalidate=True,
|
||||
range=(0, 32, 1),
|
||||
),
|
||||
desc.GroupAttribute(
|
||||
|
@ -214,7 +198,6 @@ The transformation can be based on:
|
|||
label="x",
|
||||
description="X coordinates for the marker.",
|
||||
value=0.0,
|
||||
invalidate=True,
|
||||
range=(-2.0, 2.0, 1.0),
|
||||
),
|
||||
desc.FloatParam(
|
||||
|
@ -222,7 +205,6 @@ The transformation can be based on:
|
|||
label="y",
|
||||
description="Y coordinates for the marker.",
|
||||
value=0.0,
|
||||
invalidate=True,
|
||||
range=(-2.0, 2.0, 1.0),
|
||||
),
|
||||
desc.FloatParam(
|
||||
|
@ -230,7 +212,6 @@ The transformation can be based on:
|
|||
label="z",
|
||||
description="Z coordinates for the marker.",
|
||||
value=0.0,
|
||||
invalidate=True,
|
||||
range=(-2.0, 2.0, 1.0),
|
||||
),
|
||||
],
|
||||
|
@ -245,7 +226,6 @@ The transformation can be based on:
|
|||
label="Scale",
|
||||
description="Apply scale transformation.",
|
||||
value=True,
|
||||
invalidate=True,
|
||||
enabled=lambda node: node.method.value != "manual",
|
||||
),
|
||||
desc.BoolParam(
|
||||
|
@ -253,7 +233,6 @@ The transformation can be based on:
|
|||
label="Rotation",
|
||||
description="Apply rotation transformation.",
|
||||
value=True,
|
||||
invalidate=True,
|
||||
enabled=lambda node: node.method.value != "manual",
|
||||
),
|
||||
desc.BoolParam(
|
||||
|
@ -261,7 +240,6 @@ The transformation can be based on:
|
|||
label="Translation",
|
||||
description="Apply translation transformation.",
|
||||
value=True,
|
||||
invalidate=True,
|
||||
enabled=lambda node: node.method.value != "manual",
|
||||
),
|
||||
desc.ChoiceParam(
|
||||
|
@ -271,7 +249,6 @@ The transformation can be based on:
|
|||
values=VERBOSE_LEVEL,
|
||||
value="info",
|
||||
exclusive=True,
|
||||
invalidate=False,
|
||||
),
|
||||
]
|
||||
|
||||
|
@ -281,13 +258,11 @@ The transformation can be based on:
|
|||
label="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",
|
||||
invalidate=False,
|
||||
),
|
||||
desc.File(
|
||||
name="outputViewsAndPoses",
|
||||
label="Poses",
|
||||
description="Path to the output SfMData file with cameras (views and poses).",
|
||||
value=desc.Node.internalFolder + "cameras.sfm",
|
||||
invalidate=False,
|
||||
),
|
||||
]
|
||||
|
|
|
@ -20,7 +20,6 @@ Contrary to the StructureFromMotion node, this node does not infer the camera po
|
|||
label="SfMData",
|
||||
description="SfMData file. Must contain the camera calibration.",
|
||||
value="",
|
||||
invalidate=True,
|
||||
),
|
||||
desc.ListAttribute(
|
||||
elementDesc=desc.File(
|
||||
|
@ -28,7 +27,6 @@ Contrary to the StructureFromMotion node, this node does not infer the camera po
|
|||
label="Features Folder",
|
||||
description="Folder containing some extracted features and descriptors.",
|
||||
value="",
|
||||
invalidate=True,
|
||||
),
|
||||
name="featuresFolders",
|
||||
label="Features Folders",
|
||||
|
@ -40,7 +38,6 @@ Contrary to the StructureFromMotion node, this node does not infer the camera po
|
|||
label="Matches Folder",
|
||||
description="Folder in which some computed matches are stored.",
|
||||
value="",
|
||||
invalidate=True,
|
||||
),
|
||||
name="matchesFolders",
|
||||
label="Matches Folders",
|
||||
|
@ -53,7 +50,6 @@ Contrary to the StructureFromMotion node, this node does not infer the camera po
|
|||
values=DESCRIBER_TYPES,
|
||||
value=["dspsift"],
|
||||
exclusive=False,
|
||||
invalidate=True,
|
||||
joinChar=",",
|
||||
),
|
||||
desc.IntParam(
|
||||
|
@ -64,7 +60,6 @@ Contrary to the StructureFromMotion node, this node does not infer the camera po
|
|||
"0 means no limit.",
|
||||
value=0,
|
||||
range=(0, 50000, 1),
|
||||
invalidate=True,
|
||||
),
|
||||
desc.IntParam(
|
||||
name="minNumberOfMatches",
|
||||
|
@ -74,7 +69,6 @@ Contrary to the StructureFromMotion node, this node does not infer the camera po
|
|||
"0 means no limit.",
|
||||
value=0,
|
||||
range=(0, 50000, 1),
|
||||
invalidate=True,
|
||||
),
|
||||
desc.IntParam(
|
||||
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).",
|
||||
value=2,
|
||||
range=(2, 10, 1),
|
||||
invalidate=True,
|
||||
advanced=True,
|
||||
),
|
||||
desc.FloatParam(
|
||||
|
@ -94,7 +87,6 @@ Contrary to the StructureFromMotion node, this node does not infer the camera po
|
|||
description="Minimum angle for triangulation.",
|
||||
value=3.0,
|
||||
range=(0.1, 10.0, 0.1),
|
||||
invalidate=True,
|
||||
advanced=True,
|
||||
),
|
||||
desc.FloatParam(
|
||||
|
@ -103,7 +95,6 @@ Contrary to the StructureFromMotion node, this node does not infer the camera po
|
|||
description="Minimum angle for landmark.",
|
||||
value=2.0,
|
||||
range=(0.1, 10.0, 0.1),
|
||||
invalidate=True,
|
||||
advanced=True,
|
||||
),
|
||||
desc.BoolParam(
|
||||
|
@ -111,7 +102,6 @@ Contrary to the StructureFromMotion node, this node does not infer the camera po
|
|||
label="Use Rig Constraint",
|
||||
description="Enable/Disable rig constraint.",
|
||||
value=True,
|
||||
invalidate=True,
|
||||
advanced=True,
|
||||
),
|
||||
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.",
|
||||
value=20,
|
||||
range=(1, 50, 1),
|
||||
invalidate=True,
|
||||
advanced=True,
|
||||
),
|
||||
desc.BoolParam(
|
||||
|
@ -128,7 +117,6 @@ Contrary to the StructureFromMotion node, this node does not infer the camera po
|
|||
label="Compute Structure Color",
|
||||
description="Enable/Disable color computation of each 3D point.",
|
||||
value=True,
|
||||
invalidate=True,
|
||||
),
|
||||
desc.ChoiceParam(
|
||||
name="interFileExtension",
|
||||
|
@ -147,7 +135,6 @@ Contrary to the StructureFromMotion node, this node does not infer the camera po
|
|||
values=VERBOSE_LEVEL,
|
||||
value="info",
|
||||
exclusive=True,
|
||||
invalidate=False,
|
||||
),
|
||||
]
|
||||
|
||||
|
@ -157,13 +144,11 @@ Contrary to the StructureFromMotion node, this node does not infer the camera po
|
|||
label="SfMData",
|
||||
description="Path to the output SfMData file.",
|
||||
value=desc.Node.internalFolder + "sfm.abc",
|
||||
invalidate=False,
|
||||
),
|
||||
desc.File(
|
||||
name="extraInfoFolder",
|
||||
label="Folder",
|
||||
description="Folder for intermediate reconstruction files and additional reconstruction information files.",
|
||||
value=desc.Node.internalFolder,
|
||||
invalidate=False,
|
||||
),
|
||||
]
|
||||
|
|
|
@ -18,21 +18,18 @@ class SfMBootStraping(desc.AVCommandLineNode):
|
|||
label="SfMData",
|
||||
description="SfMData file.",
|
||||
value="",
|
||||
invalidate=True,
|
||||
),
|
||||
desc.File(
|
||||
name="tracksFilename",
|
||||
label="Tracks File",
|
||||
description="Tracks file.",
|
||||
value="",
|
||||
invalidate=True,
|
||||
),
|
||||
desc.File(
|
||||
name="pairs",
|
||||
label="Pairs File",
|
||||
description="Information on pairs.",
|
||||
value="",
|
||||
invalidate=True,
|
||||
),
|
||||
desc.ChoiceParam(
|
||||
name="verboseLevel",
|
||||
|
@ -41,7 +38,6 @@ class SfMBootStraping(desc.AVCommandLineNode):
|
|||
values=VERBOSE_LEVEL,
|
||||
value="info",
|
||||
exclusive=True,
|
||||
invalidate=False,
|
||||
),
|
||||
]
|
||||
|
||||
|
@ -51,6 +47,5 @@ class SfMBootStraping(desc.AVCommandLineNode):
|
|||
label="SfMData",
|
||||
description="Path to the output SfMData file.",
|
||||
value=desc.Node.internalFolder + "sfm.json",
|
||||
invalidate=False,
|
||||
),
|
||||
]
|
||||
|
|
|
@ -18,32 +18,19 @@ class SfMExpanding(desc.AVCommandLineNode):
|
|||
label="SfMData",
|
||||
description="SfMData file.",
|
||||
value="",
|
||||
invalidate=True,
|
||||
),
|
||||
desc.File(
|
||||
name="tracksFilename",
|
||||
label="Tracks File",
|
||||
description="Tracks file.",
|
||||
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(
|
||||
name="localizerEstimatorMaxIterations",
|
||||
label="Localizer Max Ransac Iterations",
|
||||
description="Maximum number of iterations allowed in the Ransac step.",
|
||||
value=50000,
|
||||
range=(1, 100000, 1),
|
||||
invalidate=True,
|
||||
advanced=True,
|
||||
),
|
||||
desc.FloatParam(
|
||||
|
@ -54,7 +41,6 @@ class SfMExpanding(desc.AVCommandLineNode):
|
|||
"(if ACRansac, it will analyze the input data to select the optimal value).",
|
||||
value=0.0,
|
||||
range=(0.0, 100.0, 0.1),
|
||||
invalidate=True,
|
||||
advanced=True,
|
||||
),
|
||||
desc.BoolParam(
|
||||
|
@ -63,7 +49,6 @@ class SfMExpanding(desc.AVCommandLineNode):
|
|||
description="Lock previously reconstructed poses and intrinsics.\n"
|
||||
"This option is useful for SfM augmentation.",
|
||||
value=False,
|
||||
invalidate=True,
|
||||
),
|
||||
desc.BoolParam(
|
||||
name="useLocalBA",
|
||||
|
@ -71,7 +56,6 @@ class SfMExpanding(desc.AVCommandLineNode):
|
|||
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.",
|
||||
value=True,
|
||||
invalidate=True,
|
||||
),
|
||||
desc.IntParam(
|
||||
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.",
|
||||
value=1,
|
||||
range=(2, 10, 1),
|
||||
invalidate=True,
|
||||
advanced=True,
|
||||
),
|
||||
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.",
|
||||
value=30,
|
||||
range=(0, 100, 1),
|
||||
invalidate=True,
|
||||
advanced=True,
|
||||
),
|
||||
desc.IntParam(
|
||||
|
@ -100,7 +82,6 @@ class SfMExpanding(desc.AVCommandLineNode):
|
|||
"This prevents adding too much data at once without performing the bundle adjustment.",
|
||||
value=30,
|
||||
range=(0, 100, 1),
|
||||
invalidate=True,
|
||||
advanced=True,
|
||||
),
|
||||
desc.IntParam(
|
||||
|
@ -110,7 +91,6 @@ class SfMExpanding(desc.AVCommandLineNode):
|
|||
"Using a negative value for this threshold will disable BA iterations.",
|
||||
value=50,
|
||||
range=(-1, 1000, 1),
|
||||
invalidate=True,
|
||||
advanced=True,
|
||||
),
|
||||
desc.IntParam(
|
||||
|
@ -122,7 +102,6 @@ class SfMExpanding(desc.AVCommandLineNode):
|
|||
"(from 1.5% to 11% on the tested datasets).",
|
||||
value=2,
|
||||
range=(2, 10, 1),
|
||||
invalidate=True,
|
||||
advanced=True,
|
||||
),
|
||||
desc.FloatParam(
|
||||
|
@ -131,7 +110,6 @@ class SfMExpanding(desc.AVCommandLineNode):
|
|||
description="Minimum angle for triangulation.",
|
||||
value=3.0,
|
||||
range=(0.1, 10.0, 0.1),
|
||||
invalidate=True,
|
||||
advanced=True,
|
||||
),
|
||||
desc.FloatParam(
|
||||
|
@ -140,7 +118,6 @@ class SfMExpanding(desc.AVCommandLineNode):
|
|||
description="Minimum angle for landmark.",
|
||||
value=2.0,
|
||||
range=(0.1, 10.0, 0.1),
|
||||
invalidate=True,
|
||||
advanced=True,
|
||||
),
|
||||
desc.FloatParam(
|
||||
|
@ -149,7 +126,6 @@ class SfMExpanding(desc.AVCommandLineNode):
|
|||
description="Maximum reprojection error.",
|
||||
value=4.0,
|
||||
range=(0.1, 10.0, 0.1),
|
||||
invalidate=True,
|
||||
advanced=True,
|
||||
),
|
||||
desc.BoolParam(
|
||||
|
@ -159,7 +135,6 @@ class SfMExpanding(desc.AVCommandLineNode):
|
|||
"principal point, distortion if any) constant during the reconstruction.\n"
|
||||
"This may be helpful if the input cameras are already fully calibrated.",
|
||||
value=False,
|
||||
invalidate=True,
|
||||
),
|
||||
desc.IntParam(
|
||||
name="minNbCamerasToRefinePrincipalPoint",
|
||||
|
@ -170,9 +145,16 @@ class SfMExpanding(desc.AVCommandLineNode):
|
|||
"If minNbCamerasToRefinePrincipalPoint is set to 1, the principal point is always refined.",
|
||||
value=3,
|
||||
range=(0, 20, 1),
|
||||
invalidate=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 = [
|
||||
|
@ -181,6 +163,5 @@ class SfMExpanding(desc.AVCommandLineNode):
|
|||
label="SfMData",
|
||||
description="Path to the output SfMData file.",
|
||||
value=desc.Node.internalFolder + "sfm.json",
|
||||
invalidate=False,
|
||||
),
|
||||
]
|
||||
|
|
|
@ -66,7 +66,6 @@ Upload a textured mesh on Sketchfab.
|
|||
label="Input",
|
||||
description="",
|
||||
value="",
|
||||
invalidate=True,
|
||||
),
|
||||
name="inputFiles",
|
||||
label="Input Files",
|
||||
|
@ -78,21 +77,18 @@ Upload a textured mesh on Sketchfab.
|
|||
label="API Token",
|
||||
description="Get your token from https://sketchfab.com/settings/password.",
|
||||
value="",
|
||||
invalidate=True,
|
||||
),
|
||||
desc.StringParam(
|
||||
name="title",
|
||||
label="Title",
|
||||
description="Title cannot be longer than 48 characters.",
|
||||
value="",
|
||||
invalidate=True,
|
||||
),
|
||||
desc.StringParam(
|
||||
name="description",
|
||||
label="Description",
|
||||
description="Description cannot be longer than 1024 characters.",
|
||||
value="",
|
||||
invalidate=True,
|
||||
),
|
||||
desc.ChoiceParam(
|
||||
name="license",
|
||||
|
@ -106,7 +102,6 @@ Upload a textured mesh on Sketchfab.
|
|||
"CC Attribution-NonCommercial-ShareAlike",
|
||||
"CC Attribution-NonCommercial-NoDerivs"],
|
||||
exclusive=True,
|
||||
invalidate=True,
|
||||
),
|
||||
desc.ListAttribute(
|
||||
elementDesc=desc.StringParam(
|
||||
|
@ -114,7 +109,6 @@ Upload a textured mesh on Sketchfab.
|
|||
label="Tag",
|
||||
description="Tag cannot be longer than 48 characters.",
|
||||
value="",
|
||||
invalidate=True,
|
||||
),
|
||||
name="tags",
|
||||
label="Tags",
|
||||
|
@ -146,35 +140,30 @@ Upload a textured mesh on Sketchfab.
|
|||
"sports-fitness",
|
||||
"weapons-military"],
|
||||
exclusive=True,
|
||||
invalidate=True,
|
||||
),
|
||||
desc.BoolParam(
|
||||
name="isPublished",
|
||||
label="Publish",
|
||||
description="If the model is not published, it will be saved as a draft.",
|
||||
value=False,
|
||||
invalidate=True,
|
||||
),
|
||||
desc.BoolParam(
|
||||
name="isInspectable",
|
||||
label="Inspectable",
|
||||
description="Allow 2D view in model inspector.",
|
||||
value=True,
|
||||
invalidate=True,
|
||||
),
|
||||
desc.BoolParam(
|
||||
name="isPrivate",
|
||||
label="Private",
|
||||
description="Requires a pro account.",
|
||||
value=False,
|
||||
invalidate=True,
|
||||
),
|
||||
desc.StringParam(
|
||||
name="password",
|
||||
label="Password",
|
||||
description="Requires a pro account.",
|
||||
value="",
|
||||
invalidate=True,
|
||||
),
|
||||
desc.ChoiceParam(
|
||||
name="verboseLevel",
|
||||
|
@ -183,7 +172,6 @@ Upload a textured mesh on Sketchfab.
|
|||
values=VERBOSE_LEVEL,
|
||||
value="info",
|
||||
exclusive=True,
|
||||
invalidate=False,
|
||||
),
|
||||
]
|
||||
|
||||
|
|
|
@ -18,21 +18,18 @@ Spheres can be automatically detected or manually defined in the interface.
|
|||
label="SfMData",
|
||||
description="Input SfMData file.",
|
||||
value="",
|
||||
invalidate=True,
|
||||
),
|
||||
desc.File(
|
||||
name="modelPath",
|
||||
label="Detection Network",
|
||||
description="Deep learning network for automatic calibration sphere detection.",
|
||||
value="${ALICEVISION_SPHERE_DETECTION_MODEL}",
|
||||
invalidate=True,
|
||||
),
|
||||
desc.BoolParam(
|
||||
name="autoDetect",
|
||||
label="Automatic Sphere Detection",
|
||||
description="Automatic detection of calibration spheres.",
|
||||
value=False,
|
||||
invalidate=True,
|
||||
),
|
||||
desc.FloatParam(
|
||||
name="minScore",
|
||||
|
@ -41,7 +38,6 @@ Spheres can be automatically detected or manually defined in the interface.
|
|||
value=0.0,
|
||||
range=(0.0, 50.0, 0.01),
|
||||
advanced=True,
|
||||
invalidate=True,
|
||||
),
|
||||
desc.GroupAttribute(
|
||||
name="sphereCenter",
|
||||
|
@ -53,7 +49,6 @@ Spheres can be automatically detected or manually defined in the interface.
|
|||
label="x",
|
||||
description="X offset in pixels.",
|
||||
value=0.0,
|
||||
invalidate=True,
|
||||
range=(-1000.0, 10000.0, 1.0),
|
||||
),
|
||||
desc.FloatParam(
|
||||
|
@ -61,7 +56,6 @@ Spheres can be automatically detected or manually defined in the interface.
|
|||
label="y",
|
||||
description="Y offset in pixels.",
|
||||
value=0.0,
|
||||
invalidate=True,
|
||||
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,
|
||||
range=(0.0, 10000.0, 0.1),
|
||||
enabled=lambda node: not node.autoDetect.value,
|
||||
invalidate=True,
|
||||
),
|
||||
desc.ChoiceParam(
|
||||
name="verboseLevel",
|
||||
|
@ -84,7 +77,6 @@ Spheres can be automatically detected or manually defined in the interface.
|
|||
values=VERBOSE_LEVEL,
|
||||
value="info",
|
||||
exclusive=True,
|
||||
invalidate=False,
|
||||
),
|
||||
]
|
||||
|
||||
|
@ -94,6 +86,5 @@ Spheres can be automatically detected or manually defined in the interface.
|
|||
label="Output Path",
|
||||
description="Sphere detection information will be written here.",
|
||||
value=desc.Node.internalFolder + "/detection.json",
|
||||
invalidate=False,
|
||||
)
|
||||
]
|
||||
|
|
|
@ -33,7 +33,6 @@ class Split360Images(desc.AVCommandLineNode):
|
|||
label="Input",
|
||||
description="Single image, image folder or SfMData file.",
|
||||
value="",
|
||||
invalidate=True,
|
||||
),
|
||||
desc.ChoiceParam(
|
||||
name="splitMode",
|
||||
|
@ -42,7 +41,6 @@ class Split360Images(desc.AVCommandLineNode):
|
|||
value="equirectangular",
|
||||
values=["equirectangular", "dualfisheye"],
|
||||
exclusive=True,
|
||||
invalidate=True,
|
||||
),
|
||||
desc.GroupAttribute(
|
||||
name="dualFisheyeGroup",
|
||||
|
@ -58,7 +56,6 @@ class Split360Images(desc.AVCommandLineNode):
|
|||
value="center",
|
||||
values=["center", "left", "right"],
|
||||
exclusive=True,
|
||||
invalidate=True,
|
||||
),
|
||||
desc.ChoiceParam(
|
||||
name="dualFisheyeOffsetPresetY",
|
||||
|
@ -67,7 +64,6 @@ class Split360Images(desc.AVCommandLineNode):
|
|||
value="center",
|
||||
values=["center", "top", "bottom"],
|
||||
exclusive=True,
|
||||
invalidate=True,
|
||||
),
|
||||
desc.ChoiceParam(
|
||||
name="dualFisheyeCameraModel",
|
||||
|
@ -76,7 +72,6 @@ class Split360Images(desc.AVCommandLineNode):
|
|||
value="fisheye4",
|
||||
values=["fisheye4", "equidistant_r3"],
|
||||
exclusive=True,
|
||||
invalidate=True,
|
||||
),
|
||||
],
|
||||
),
|
||||
|
@ -93,7 +88,6 @@ class Split360Images(desc.AVCommandLineNode):
|
|||
description="Equirectangular number of splits.",
|
||||
value=2,
|
||||
range=(1, 100, 1),
|
||||
invalidate=True,
|
||||
),
|
||||
desc.IntParam(
|
||||
name="equirectangularSplitResolution",
|
||||
|
@ -101,14 +95,12 @@ class Split360Images(desc.AVCommandLineNode):
|
|||
description="Equirectangular split resolution.",
|
||||
value=1200,
|
||||
range=(100, 10000, 1),
|
||||
invalidate=True,
|
||||
),
|
||||
desc.BoolParam(
|
||||
name="equirectangularPreviewMode",
|
||||
label="Preview Mode",
|
||||
description="Export a SVG file that simulates the split.",
|
||||
value=False,
|
||||
invalidate=True,
|
||||
),
|
||||
desc.FloatParam(
|
||||
name="fov",
|
||||
|
@ -116,7 +108,6 @@ class Split360Images(desc.AVCommandLineNode):
|
|||
description="Field of View to extract (in degrees).",
|
||||
value=110.0,
|
||||
range=(0.0, 180.0, 1.0),
|
||||
invalidate=True,
|
||||
),
|
||||
],
|
||||
),
|
||||
|
@ -127,7 +118,6 @@ class Split360Images(desc.AVCommandLineNode):
|
|||
value="",
|
||||
values=["", "exr", "jpg", "tiff", "png"],
|
||||
exclusive=True,
|
||||
invalidate=True,
|
||||
),
|
||||
desc.ChoiceParam(
|
||||
name="verboseLevel",
|
||||
|
@ -136,7 +126,6 @@ class Split360Images(desc.AVCommandLineNode):
|
|||
values=VERBOSE_LEVEL,
|
||||
value="info",
|
||||
exclusive=True,
|
||||
invalidate=False,
|
||||
),
|
||||
]
|
||||
|
||||
|
@ -146,13 +135,11 @@ class Split360Images(desc.AVCommandLineNode):
|
|||
label="Folder",
|
||||
description="Output folder for extracted frames.",
|
||||
value=desc.Node.internalFolder,
|
||||
invalidate=False,
|
||||
),
|
||||
desc.File(
|
||||
name="outSfMData",
|
||||
label="SfMData File",
|
||||
description="Output SfMData file.",
|
||||
value=desc.Node.internalFolder + "rig.sfm",
|
||||
invalidate=False,
|
||||
),
|
||||
]
|
||||
|
|
|
@ -71,7 +71,6 @@ It iterates like that, adding cameras and triangulating new 2D features into 3D
|
|||
label="SfMData",
|
||||
description="Input SfMData file.",
|
||||
value="",
|
||||
invalidate=True,
|
||||
),
|
||||
desc.ListAttribute(
|
||||
elementDesc=desc.File(
|
||||
|
@ -79,7 +78,6 @@ It iterates like that, adding cameras and triangulating new 2D features into 3D
|
|||
label="Features Folder",
|
||||
description="",
|
||||
value="",
|
||||
invalidate=True,
|
||||
),
|
||||
name="featuresFolders",
|
||||
label="Features Folders",
|
||||
|
@ -91,7 +89,6 @@ It iterates like that, adding cameras and triangulating new 2D features into 3D
|
|||
label="Matches Folder",
|
||||
description="",
|
||||
value="",
|
||||
invalidate=True,
|
||||
),
|
||||
name="matchesFolders",
|
||||
label="Matches Folders",
|
||||
|
@ -104,7 +101,6 @@ It iterates like that, adding cameras and triangulating new 2D features into 3D
|
|||
values=DESCRIBER_TYPES,
|
||||
value=["dspsift"],
|
||||
exclusive=False,
|
||||
invalidate=True,
|
||||
joinChar=",",
|
||||
),
|
||||
desc.ChoiceParam(
|
||||
|
@ -114,7 +110,6 @@ It iterates like that, adding cameras and triangulating new 2D features into 3D
|
|||
value="acransac",
|
||||
values=["acransac", "ransac", "lsmeds", "loransac", "maxconsensus"],
|
||||
exclusive=True,
|
||||
invalidate=True,
|
||||
advanced=True,
|
||||
),
|
||||
desc.ChoiceParam(
|
||||
|
@ -126,7 +121,6 @@ It iterates like that, adding cameras and triangulating new 2D features into 3D
|
|||
value="Scale",
|
||||
values=["Basic", "Scale"],
|
||||
exclusive=True,
|
||||
invalidate=True,
|
||||
advanced=True,
|
||||
),
|
||||
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.",
|
||||
value=50000,
|
||||
range=(1, 100000, 1),
|
||||
invalidate=True,
|
||||
advanced=True,
|
||||
),
|
||||
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).",
|
||||
value=0.0,
|
||||
range=(0.0, 100.0, 0.1),
|
||||
invalidate=True,
|
||||
advanced=True,
|
||||
),
|
||||
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"
|
||||
"This option is useful for SfM augmentation.",
|
||||
value=False,
|
||||
invalidate=True,
|
||||
),
|
||||
desc.BoolParam(
|
||||
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"
|
||||
"by avoiding computation of the Bundle Adjustment on areas that are not changing.",
|
||||
value=True,
|
||||
invalidate=True,
|
||||
),
|
||||
desc.IntParam(
|
||||
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.",
|
||||
value=1,
|
||||
range=(2, 10, 1),
|
||||
invalidate=True,
|
||||
advanced=True,
|
||||
),
|
||||
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.",
|
||||
value=30,
|
||||
range=(0, 100, 1),
|
||||
invalidate=True,
|
||||
advanced=True,
|
||||
),
|
||||
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.",
|
||||
value=30,
|
||||
range=(0, 100, 1),
|
||||
invalidate=True,
|
||||
advanced=True,
|
||||
),
|
||||
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.",
|
||||
value=50,
|
||||
range=(-1, 1000, 1),
|
||||
invalidate=True,
|
||||
advanced=True,
|
||||
),
|
||||
desc.IntParam(
|
||||
|
@ -213,7 +199,6 @@ It iterates like that, adding cameras and triangulating new 2D features into 3D
|
|||
"0 means no limit.",
|
||||
value=0,
|
||||
range=(0, 50000, 1),
|
||||
invalidate=True,
|
||||
),
|
||||
desc.IntParam(
|
||||
name="minNumberOfMatches",
|
||||
|
@ -223,7 +208,6 @@ It iterates like that, adding cameras and triangulating new 2D features into 3D
|
|||
"0 means no limit.",
|
||||
value=0,
|
||||
range=(0, 50000, 1),
|
||||
invalidate=True,
|
||||
),
|
||||
desc.IntParam(
|
||||
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.",
|
||||
value=2,
|
||||
range=(2, 10, 1),
|
||||
invalidate=True,
|
||||
),
|
||||
desc.IntParam(
|
||||
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).",
|
||||
value=2,
|
||||
range=(2, 10, 1),
|
||||
invalidate=True,
|
||||
advanced=True,
|
||||
),
|
||||
desc.FloatParam(
|
||||
|
@ -251,7 +233,6 @@ It iterates like that, adding cameras and triangulating new 2D features into 3D
|
|||
description="Minimum angle for triangulation.",
|
||||
value=3.0,
|
||||
range=(0.1, 10.0, 0.1),
|
||||
invalidate=True,
|
||||
advanced=True,
|
||||
),
|
||||
desc.FloatParam(
|
||||
|
@ -260,7 +241,6 @@ It iterates like that, adding cameras and triangulating new 2D features into 3D
|
|||
description="Minimum angle for landmark.",
|
||||
value=2.0,
|
||||
range=(0.1, 10.0, 0.1),
|
||||
invalidate=True,
|
||||
advanced=True,
|
||||
),
|
||||
desc.FloatParam(
|
||||
|
@ -269,7 +249,6 @@ It iterates like that, adding cameras and triangulating new 2D features into 3D
|
|||
description="Maximum reprojection error.",
|
||||
value=4.0,
|
||||
range=(0.1, 10.0, 0.1),
|
||||
invalidate=True,
|
||||
advanced=True,
|
||||
),
|
||||
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.",
|
||||
value=5.0,
|
||||
range=(0.1, 10.0, 0.1),
|
||||
invalidate=True,
|
||||
advanced=True,
|
||||
),
|
||||
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.",
|
||||
value=40.0,
|
||||
range=(0.1, 60.0, 0.1),
|
||||
invalidate=True,
|
||||
advanced=True,
|
||||
),
|
||||
desc.BoolParam(
|
||||
|
@ -304,7 +281,6 @@ It iterates like that, adding cameras and triangulating new 2D features into 3D
|
|||
label="Use Rig Constraint",
|
||||
description="Enable/Disable rig constraint.",
|
||||
value=True,
|
||||
invalidate=True,
|
||||
advanced=True,
|
||||
),
|
||||
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.",
|
||||
value=20,
|
||||
range=(1, 50, 1),
|
||||
invalidate=True,
|
||||
advanced=True,
|
||||
),
|
||||
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"
|
||||
"This may be helpful if the input cameras are already fully calibrated.",
|
||||
value=False,
|
||||
invalidate=True,
|
||||
),
|
||||
desc.IntParam(
|
||||
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.",
|
||||
value=3,
|
||||
range=(0, 20, 1),
|
||||
invalidate=True,
|
||||
advanced=True,
|
||||
),
|
||||
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"
|
||||
"lead to multiple features in the same image for a single track.",
|
||||
value=False,
|
||||
invalidate=True,
|
||||
),
|
||||
desc.BoolParam(
|
||||
name="computeStructureColor",
|
||||
label="Compute Structure Color",
|
||||
description="Enable/Disable color computation of every 3D point.",
|
||||
value=True,
|
||||
invalidate=True,
|
||||
),
|
||||
desc.BoolParam(
|
||||
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"
|
||||
"and defines ground level from the point cloud.",
|
||||
value=True,
|
||||
invalidate=True,
|
||||
),
|
||||
desc.File(
|
||||
name="initialPairA",
|
||||
label="Initial Pair A",
|
||||
description="View ID or filename of the first image (either with or without the full path).",
|
||||
value="",
|
||||
invalidate=True,
|
||||
),
|
||||
desc.File(
|
||||
name="initialPairB",
|
||||
label="Initial Pair B",
|
||||
description="View ID or filename of the second image (either with or without the full path).",
|
||||
value="",
|
||||
invalidate=True,
|
||||
),
|
||||
desc.ChoiceParam(
|
||||
name="interFileExtension",
|
||||
|
@ -401,7 +369,6 @@ It iterates like that, adding cameras and triangulating new 2D features into 3D
|
|||
values=VERBOSE_LEVEL,
|
||||
value="info",
|
||||
exclusive=True,
|
||||
invalidate=False,
|
||||
),
|
||||
]
|
||||
|
||||
|
@ -411,20 +378,17 @@ It iterates like that, adding cameras and triangulating new 2D features into 3D
|
|||
label="SfMData",
|
||||
description="Path to the output SfM point cloud file (in SfMData format).",
|
||||
value=desc.Node.internalFolder + "sfm.abc",
|
||||
invalidate=False,
|
||||
),
|
||||
desc.File(
|
||||
name="outputViewsAndPoses",
|
||||
label="Views And Poses",
|
||||
description="Path to the output SfMData file with cameras (views and poses).",
|
||||
value=desc.Node.internalFolder + "cameras.sfm",
|
||||
invalidate=False,
|
||||
),
|
||||
desc.File(
|
||||
name="extraInfoFolder",
|
||||
label="Folder",
|
||||
description="Folder for intermediate reconstruction files and additional reconstruction information files.",
|
||||
value=desc.Node.internalFolder,
|
||||
invalidate=False,
|
||||
),
|
||||
]
|
||||
|
|
|
@ -31,7 +31,6 @@ Many cameras are contributing to the low frequencies and only the best ones cont
|
|||
label="Dense SfMData",
|
||||
description="SfMData file.",
|
||||
value="",
|
||||
invalidate=True,
|
||||
),
|
||||
desc.File(
|
||||
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"
|
||||
"Filename should be the image UID.",
|
||||
value="",
|
||||
invalidate=True,
|
||||
),
|
||||
desc.File(
|
||||
name="normalsFolder",
|
||||
label="Normals Folder",
|
||||
description="Use normal maps from a specific folder to texture the mesh.\nFilename should be : uid_normalMap.",
|
||||
value="",
|
||||
invalidate=True,
|
||||
),
|
||||
desc.File(
|
||||
name="inputMesh",
|
||||
label="Mesh",
|
||||
description="Optional input mesh to texture. By default, it will texture the result of the reconstruction.",
|
||||
value="",
|
||||
invalidate=True,
|
||||
),
|
||||
desc.File(
|
||||
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"
|
||||
"If not provided, no additional map with geometric information will be generated.",
|
||||
value="",
|
||||
invalidate=True,
|
||||
),
|
||||
desc.ChoiceParam(
|
||||
name="textureSide",
|
||||
|
@ -70,7 +65,6 @@ Many cameras are contributing to the low frequencies and only the best ones cont
|
|||
value=8192,
|
||||
values=[1024, 2048, 4096, 8192, 16384],
|
||||
exclusive=True,
|
||||
invalidate=True,
|
||||
),
|
||||
desc.ChoiceParam(
|
||||
name="downscale",
|
||||
|
@ -79,7 +73,6 @@ Many cameras are contributing to the low frequencies and only the best ones cont
|
|||
value=2,
|
||||
values=[1, 2, 4, 8],
|
||||
exclusive=True,
|
||||
invalidate=True,
|
||||
),
|
||||
desc.ChoiceParam(
|
||||
name="outputMeshFileType",
|
||||
|
@ -88,7 +81,6 @@ Many cameras are contributing to the low frequencies and only the best ones cont
|
|||
value="obj",
|
||||
values=["obj", "gltf", "fbx", "stl"],
|
||||
exclusive=True,
|
||||
invalidate=True,
|
||||
),
|
||||
desc.GroupAttribute(
|
||||
name="colorMapping",
|
||||
|
@ -112,7 +104,6 @@ Many cameras are contributing to the low frequencies and only the best ones cont
|
|||
value="exr",
|
||||
values=["exr", "png", "tiff", "jpg"],
|
||||
exclusive=True,
|
||||
invalidate=True,
|
||||
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",
|
||||
values=["Height", "Normal"],
|
||||
exclusive=True,
|
||||
invalidate=True,
|
||||
enabled=lambda node: node.bumpMapping.enable.value,
|
||||
),
|
||||
desc.ChoiceParam(
|
||||
|
@ -149,7 +139,6 @@ Many cameras are contributing to the low frequencies and only the best ones cont
|
|||
value="exr",
|
||||
values=["exr", "png", "tiff", "jpg"],
|
||||
exclusive=True,
|
||||
invalidate=True,
|
||||
enabled=lambda node: node.bumpMapping.enable.value and node.bumpMapping.bumpType.value == "Normal",
|
||||
),
|
||||
desc.ChoiceParam(
|
||||
|
@ -159,7 +148,6 @@ Many cameras are contributing to the low frequencies and only the best ones cont
|
|||
value="exr",
|
||||
values=["exr",],
|
||||
exclusive=True,
|
||||
invalidate=True,
|
||||
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",
|
||||
values=["exr"],
|
||||
exclusive=True,
|
||||
invalidate=True,
|
||||
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",
|
||||
values=["Basic", "LSCM", "ABF"],
|
||||
exclusive=True,
|
||||
invalidate=True,
|
||||
),
|
||||
desc.BoolParam(
|
||||
name="useUDIM",
|
||||
label="Use UDIM",
|
||||
description="Use UDIM UV mapping.",
|
||||
value=True,
|
||||
invalidate=True,
|
||||
),
|
||||
desc.BoolParam(
|
||||
name="fillHoles",
|
||||
label="Fill Holes",
|
||||
description="Fill texture holes with plausible values.",
|
||||
value=False,
|
||||
invalidate=True,
|
||||
),
|
||||
desc.IntParam(
|
||||
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.",
|
||||
value=5,
|
||||
range=(0, 20, 1),
|
||||
invalidate=True,
|
||||
advanced=True,
|
||||
),
|
||||
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.",
|
||||
value=4,
|
||||
range=(0, 8, 2),
|
||||
invalidate=True,
|
||||
advanced=True,
|
||||
),
|
||||
desc.GroupAttribute(
|
||||
|
@ -244,7 +226,6 @@ Many cameras are contributing to the low frequencies and only the best ones cont
|
|||
label="High Freq",
|
||||
description="High frequency band.",
|
||||
value=1,
|
||||
invalidate=True,
|
||||
range=None,
|
||||
),
|
||||
desc.IntParam(
|
||||
|
@ -252,7 +233,6 @@ Many cameras are contributing to the low frequencies and only the best ones cont
|
|||
label="Mid-High Freq",
|
||||
description="Mid-high frequency band.",
|
||||
value=5,
|
||||
invalidate=True,
|
||||
range=None,
|
||||
),
|
||||
desc.IntParam(
|
||||
|
@ -260,7 +240,6 @@ Many cameras are contributing to the low frequencies and only the best ones cont
|
|||
label="Mid-Low Freq",
|
||||
description="Mid-low frequency band.",
|
||||
value=10,
|
||||
invalidate=True,
|
||||
range=None,
|
||||
),
|
||||
desc.IntParam(
|
||||
|
@ -268,7 +247,6 @@ Many cameras are contributing to the low frequencies and only the best ones cont
|
|||
label="Low Freq",
|
||||
description="Low frequency band",
|
||||
value=0,
|
||||
invalidate=True,
|
||||
range=None,
|
||||
),
|
||||
],
|
||||
|
@ -280,7 +258,6 @@ Many cameras are contributing to the low frequencies and only the best ones cont
|
|||
label="Use Score",
|
||||
description="Use triangles scores (ie. reprojection area) for multi-band blending.",
|
||||
value=True,
|
||||
invalidate=True,
|
||||
advanced=True,
|
||||
),
|
||||
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.",
|
||||
value=0.1,
|
||||
range=(0.0, 1.0, 0.01),
|
||||
invalidate=True,
|
||||
advanced=True,
|
||||
),
|
||||
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.",
|
||||
value=90.0,
|
||||
range=(0.0, 180.0, 0.01),
|
||||
invalidate=True,
|
||||
advanced=True,
|
||||
),
|
||||
desc.ChoiceParam(
|
||||
|
@ -308,7 +283,6 @@ Many cameras are contributing to the low frequencies and only the best ones cont
|
|||
values=COLORSPACES,
|
||||
value="sRGB",
|
||||
exclusive=True,
|
||||
invalidate=True,
|
||||
advanced=True,
|
||||
),
|
||||
desc.ChoiceParam(
|
||||
|
@ -318,21 +292,18 @@ Many cameras are contributing to the low frequencies and only the best ones cont
|
|||
values=COLORSPACES,
|
||||
value="AUTO",
|
||||
exclusive=True,
|
||||
invalidate=True,
|
||||
),
|
||||
desc.BoolParam(
|
||||
name="correctEV",
|
||||
label="Correct Exposure",
|
||||
description="Uniformize images exposure values.",
|
||||
value=True,
|
||||
invalidate=True,
|
||||
),
|
||||
desc.BoolParam(
|
||||
name="forceVisibleByAllVertices",
|
||||
label="Force Visible By All Vertices",
|
||||
description="Triangle visibility is based on the union of vertices visibility.",
|
||||
value=False,
|
||||
invalidate=True,
|
||||
advanced=True,
|
||||
),
|
||||
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"
|
||||
"It can be needed as it depends on the vertices order in triangles and the convention changes from one software to another.",
|
||||
value=False,
|
||||
invalidate=True,
|
||||
advanced=True,
|
||||
),
|
||||
desc.ChoiceParam(
|
||||
|
@ -351,7 +321,6 @@ Many cameras are contributing to the low frequencies and only the best ones cont
|
|||
value="PullPush",
|
||||
values=["Pull", "Push", "PullPush", "MeshItself"],
|
||||
exclusive=True,
|
||||
invalidate=True,
|
||||
advanced=True,
|
||||
),
|
||||
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).",
|
||||
value=0.8,
|
||||
range=(0.0, 1.0, 0.001),
|
||||
invalidate=True,
|
||||
advanced=True,
|
||||
),
|
||||
desc.ChoiceParam(
|
||||
|
@ -373,7 +341,6 @@ Many cameras are contributing to the low frequencies and only the best ones cont
|
|||
values=VERBOSE_LEVEL,
|
||||
value="info",
|
||||
exclusive=True,
|
||||
invalidate=False,
|
||||
),
|
||||
]
|
||||
|
||||
|
@ -383,14 +350,12 @@ Many cameras are contributing to the low frequencies and only the best ones cont
|
|||
label="Folder",
|
||||
description="Folder for output mesh: OBJ, material and texture files.",
|
||||
value=desc.Node.internalFolder,
|
||||
invalidate=False,
|
||||
),
|
||||
desc.File(
|
||||
name="outputMesh",
|
||||
label="Mesh",
|
||||
description="Output mesh file.",
|
||||
value=desc.Node.internalFolder + "texturedMesh.{outputMeshFileTypeValue}",
|
||||
invalidate=False,
|
||||
group="",
|
||||
),
|
||||
desc.File(
|
||||
|
@ -399,7 +364,6 @@ Many cameras are contributing to the low frequencies and only the best ones cont
|
|||
label="Material",
|
||||
description="Output material file.",
|
||||
value=desc.Node.internalFolder + "texturedMesh.mtl",
|
||||
invalidate=False,
|
||||
group="",
|
||||
),
|
||||
desc.File(
|
||||
|
@ -407,7 +371,6 @@ Many cameras are contributing to the low frequencies and only the best ones cont
|
|||
label="Textures",
|
||||
description="Output texture files.",
|
||||
value=lambda attr: desc.Node.internalFolder + "texture_*." + attr.node.colorMapping.colorMappingFileType.value if attr.node.colorMapping.enable.value else "",
|
||||
invalidate=False,
|
||||
group="",
|
||||
),
|
||||
]
|
||||
|
|
|
@ -19,7 +19,6 @@ It fuses all feature matches between image pairs into tracks. Each track represe
|
|||
label="SfMData",
|
||||
description="Input SfMData file.",
|
||||
value="",
|
||||
invalidate=True,
|
||||
),
|
||||
desc.ListAttribute(
|
||||
elementDesc=desc.File(
|
||||
|
@ -27,7 +26,6 @@ It fuses all feature matches between image pairs into tracks. Each track represe
|
|||
label="Features Folder",
|
||||
description="Folder containing some extracted features and descriptors.",
|
||||
value="",
|
||||
invalidate=True,
|
||||
),
|
||||
name="featuresFolders",
|
||||
label="Features Folders",
|
||||
|
@ -39,7 +37,6 @@ It fuses all feature matches between image pairs into tracks. Each track represe
|
|||
label="Matches Folder",
|
||||
description="Folder containing some matches.",
|
||||
value="",
|
||||
invalidate=True,
|
||||
),
|
||||
name="matchesFolders",
|
||||
label="Matches Folders",
|
||||
|
@ -52,7 +49,6 @@ It fuses all feature matches between image pairs into tracks. Each track represe
|
|||
values=DESCRIBER_TYPES,
|
||||
value=["dspsift"],
|
||||
exclusive=False,
|
||||
invalidate=True,
|
||||
joinChar=",",
|
||||
),
|
||||
desc.IntParam(
|
||||
|
@ -61,7 +57,6 @@ It fuses all feature matches between image pairs into tracks. Each track represe
|
|||
description="Minimum track length.",
|
||||
value=2,
|
||||
range=(2, 10, 1),
|
||||
invalidate=True,
|
||||
),
|
||||
desc.BoolParam(
|
||||
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"
|
||||
"lead to multiple features in the same image for a single track.",
|
||||
value=False,
|
||||
invalidate=True,
|
||||
),
|
||||
desc.ChoiceParam(
|
||||
name="verboseLevel",
|
||||
|
@ -87,7 +81,6 @@ It fuses all feature matches between image pairs into tracks. Each track represe
|
|||
values=VERBOSE_LEVEL,
|
||||
value="info",
|
||||
exclusive=True,
|
||||
invalidate=False,
|
||||
),
|
||||
]
|
||||
|
||||
|
@ -97,6 +90,5 @@ It fuses all feature matches between image pairs into tracks. Each track represe
|
|||
label="Tracks",
|
||||
description="Path to the output tracks file.",
|
||||
value=desc.Node.internalFolder + "tracksFile.json",
|
||||
invalidate=False,
|
||||
),
|
||||
]
|
||||
|
|
|
@ -42,28 +42,24 @@ One frame per viewpoint will be rendered, and the undistorted views can optional
|
|||
label="Cameras",
|
||||
description="SfMData with the views, poses and intrinsics to use (in JSON format).",
|
||||
value="",
|
||||
invalidate=True,
|
||||
),
|
||||
desc.File(
|
||||
name="model",
|
||||
label="Model",
|
||||
description="Point cloud (.abc) or mesh (.obj) to render.",
|
||||
value="",
|
||||
invalidate=True,
|
||||
),
|
||||
desc.BoolParam(
|
||||
name="useBackground",
|
||||
label="Display Background",
|
||||
description="Use the undistorted images as background.",
|
||||
value=True,
|
||||
invalidate=True,
|
||||
),
|
||||
desc.File(
|
||||
name="undistortedImages",
|
||||
label="Undistorted Images",
|
||||
description="Folder containing the undistorted images.",
|
||||
value="",
|
||||
invalidate=True,
|
||||
enabled=lambda node: node.useBackground.value,
|
||||
),
|
||||
desc.BoolParam(
|
||||
|
@ -71,14 +67,12 @@ One frame per viewpoint will be rendered, and the undistorted views can optional
|
|||
label="Apply Masks",
|
||||
description="Apply mask to the rendered geometry.",
|
||||
value=True,
|
||||
invalidate=True,
|
||||
),
|
||||
desc.File(
|
||||
name="masks",
|
||||
label="Masks",
|
||||
description="Folder containing the masks.",
|
||||
value="",
|
||||
invalidate=True,
|
||||
enabled=lambda node: node.useMasks.value,
|
||||
),
|
||||
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.",
|
||||
value=0.01,
|
||||
range=(0.01, 1.0, 0.01),
|
||||
invalidate=True,
|
||||
),
|
||||
desc.ChoiceParam(
|
||||
name="particleColor",
|
||||
|
@ -103,7 +96,6 @@ One frame per viewpoint will be rendered, and the undistorted views can optional
|
|||
value="Red",
|
||||
values=["Grey", "White", "Red", "Green", "Magenta"],
|
||||
exclusive=True,
|
||||
invalidate=True,
|
||||
),
|
||||
],
|
||||
),
|
||||
|
@ -121,7 +113,6 @@ One frame per viewpoint will be rendered, and the undistorted views can optional
|
|||
value="wireframe",
|
||||
values=["wireframe", "line_art"],
|
||||
exclusive=True,
|
||||
invalidate=True,
|
||||
),
|
||||
desc.ChoiceParam(
|
||||
name="edgeColor",
|
||||
|
@ -130,7 +121,6 @@ One frame per viewpoint will be rendered, and the undistorted views can optional
|
|||
value="Red",
|
||||
values=["Grey", "White", "Red", "Green", "Magenta"],
|
||||
exclusive=True,
|
||||
invalidate=True,
|
||||
),
|
||||
],
|
||||
),
|
||||
|
@ -142,7 +132,6 @@ One frame per viewpoint will be rendered, and the undistorted views can optional
|
|||
label="Output",
|
||||
description="Output folder.",
|
||||
value=desc.Node.internalFolder,
|
||||
invalidate=False,
|
||||
),
|
||||
desc.File(
|
||||
name="frames",
|
||||
|
@ -150,7 +139,6 @@ One frame per viewpoint will be rendered, and the undistorted views can optional
|
|||
description="Frames rendered in Blender.",
|
||||
semantic="image",
|
||||
value=desc.Node.internalFolder + "<FILESTEM>_preview.jpg",
|
||||
invalidate=False,
|
||||
group="",
|
||||
),
|
||||
]
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue