diff --git a/meshroom/nodes/aliceVision/FeatureExtraction.py b/meshroom/nodes/aliceVision/FeatureExtraction.py index 6dd48783..5bb38e06 100644 --- a/meshroom/nodes/aliceVision/FeatureExtraction.py +++ b/meshroom/nodes/aliceVision/FeatureExtraction.py @@ -38,6 +38,13 @@ It is robust to motion-blur, depth-of-field, occlusion. Be careful to have enoug value='', uid=[0], ), + desc.File( + name='masksFolder', + label='Masks Folder', + description='Use masks to filter features. Filename should be the same or the image uid.', + value='', + uid=[0], + ), desc.ChoiceParam( name='describerTypes', label='Describer Types', diff --git a/meshroom/nodes/aliceVision/ImageMasking.py b/meshroom/nodes/aliceVision/ImageMasking.py index bdd2891c..457016e9 100644 --- a/meshroom/nodes/aliceVision/ImageMasking.py +++ b/meshroom/nodes/aliceVision/ImageMasking.py @@ -17,15 +17,6 @@ class ImageMasking(desc.CommandLineNode): value='', uid=[0], ), - #desc.GroupAttribute( - # name="colour", - # label="Keyed Colour", - # description="", - # groupDesc=[ - # desc.FloatParam(name="r", label="r", description="", value=0, uid=[0], range=(0, 1, 0.01)), - # desc.FloatParam(name="g", label="g", description="", value=0, uid=[0], range=(0, 1, 0.01)), - # desc.FloatParam(name="b", label="b", description="", value=0, uid=[0], range=(0, 1, 0.01)), - # ]), desc.ChoiceParam( name='algorithm', label='Algorithm', @@ -35,20 +26,83 @@ class ImageMasking(desc.CommandLineNode): exclusive=True, uid=[0], ), - desc.FloatParam( - name='hue', - label='Hue', - description='Hue value to isolate in [0,1] range. 0 = red, 0.33 = green, 0.66 = blue, 1 = red.', - value=0.33, - range=(0, 1, 0.01), + desc.GroupAttribute( + name="hsv", + label="HSV Parameters", + description="", + formatter=desc.GroupAttribute.prefixFormatter, + joinChar='-', + groupDesc=[ + desc.FloatParam( + name='hue', + label='Hue', + description='Hue value to isolate in [0,1] range. 0 = red, 0.33 = green, 0.66 = blue, 1 = red.', + value=0.33, + range=(0, 1, 0.01), + uid=[0] + ), + desc.FloatParam( + name='hueRange', + label='Tolerance', + description='Tolerance around the hue value to isolate.', + value=0.1, + range=(0, 1, 0.01), + uid=[0] + ), + desc.FloatParam( + name='minSaturation', + label='Min Saturation', + description='Hue is meaningless if saturation is low. Do not mask pixels below this threshold.', + value=0.3, + range=(0, 1, 0.01), + uid=[0] + ), + desc.FloatParam( + name='maxSaturation', + label='Max Saturation', + description='Do not mask pixels above this threshold. It might be useful to mask white/black pixels.', + value=1, + range=(0, 1, 0.01), + uid=[0] + ), + desc.FloatParam( + name='minValue', + label='Min Value', + description='Hue is meaningless if value is low. Do not mask pixels below this threshold.', + value=0.3, + range=(0, 1, 0.01), + uid=[0] + ), + desc.FloatParam( + name='maxValue', + label='Max Value', + description='Do not mask pixels above this threshold. It might be useful to mask white/black pixels.', + value=1, + range=(0, 1, 0.01), + uid=[0] + ), + ]), + desc.BoolParam( + name='invert', + label='Invert', + description='Invert the selected area.', + value=False, uid=[0] ), - desc.FloatParam( - name='hueRange', - label='Tolerance', - description='Tolerance around the hue value to isolate.', - value=0.1, - range=(0, 1, 0.01), + desc.IntParam( + name='growRadius', + label='Grow Radius', + description='Grow the selected area. It might be used to fill the holes: then use shrinkRadius to restore the initial coutours.', + value=0, + range=(0, 50, 1), + uid=[0] + ), + desc.IntParam( + name='shrinkRadius', + label='Shrink Radius', + description='Shrink the selected area.', + value=0, + range=(0, 50, 1), uid=[0] ), desc.ChoiceParam( diff --git a/meshroom/nodes/aliceVision/PrepareDenseScene.py b/meshroom/nodes/aliceVision/PrepareDenseScene.py index ac2fd0ec..31d0ecf1 100644 --- a/meshroom/nodes/aliceVision/PrepareDenseScene.py +++ b/meshroom/nodes/aliceVision/PrepareDenseScene.py @@ -34,6 +34,18 @@ This node export undistorted images so the depth map and texturing can be comput label="Images Folders", description='Use images from specific folder(s). Filename should be the same or the image uid.', ), + desc.ListAttribute( + elementDesc=desc.File( + name="masksFolder", + label="Masks Folder", + description="", + value="", + uid=[0], + ), + name="masksFolders", + label="Masks Folders", + description='Use masks from specific folder(s). Filename should be the same or the image uid.', + ), desc.ChoiceParam( name='outputFileType', label='Output File Type',