From 826b57eeca14d7bc4a57397bda3744932f94db2c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Candice=20Bent=C3=A9jac?= Date: Mon, 5 Dec 2022 15:58:04 +0100 Subject: [PATCH] [nodes] ImageProcessing: update NL Means parameters' description and default value Change HColor default value from 5 to 10 as advised in the documentation of OpenCV's non-local means denoising. Also update the description of the H and HColor parameters so that they are easier to understand. The name of the parameters is also updated to match with parameters from other groups. --- meshroom/nodes/aliceVision/ImageProcessing.py | 30 +++++++++++-------- 1 file changed, 17 insertions(+), 13 deletions(-) diff --git a/meshroom/nodes/aliceVision/ImageProcessing.py b/meshroom/nodes/aliceVision/ImageProcessing.py index bbfadfb1..cc73c9e0 100644 --- a/meshroom/nodes/aliceVision/ImageProcessing.py +++ b/meshroom/nodes/aliceVision/ImageProcessing.py @@ -287,49 +287,53 @@ Convert or apply filtering to the input images. enabled=lambda node: node.noiseFilter.noiseEnabled.value, ), ]), - desc.GroupAttribute(name="nlmFilter", label="NL Means Denoising", description="NL Means Denoising Parameters.", joinChar=":", groupDesc=[ + desc.GroupAttribute(name="nlmFilter", label="NL Means Denoising (8 bits)", + description="NL Means Denoising Parameters.\n This implementation only works on 8-bit images, so the colors can be reduced and clamped.", + joinChar=":", groupDesc=[ desc.BoolParam( - name='denoiseEnabled', + name='nlmFilterEnabled', label='Enable', description='Use Non-local Mean Denoising from OpenCV to denoise images', value=False, uid=[0], ), desc.FloatParam( - name='filteringParamH', + name='nlmFilterH', label='H', - description='Parameter regulating filter strength. Bigger H value perfectly removes noise but also removes image details, smaller H value preserves details but also preserves some noise.', + description='Parameter regulating filter strength for luminance component.\n' + 'Bigger H value perfectly removes noise but also removes image details, smaller H value preserves details but also preserves some noise.', value=5.0, range=(1.0, 1000.0, 0.01), uid=[0], - enabled=lambda node: node.nlmFilter.denoiseEnabled.value, + enabled=lambda node: node.nlmFilter.nlmFilterEnabled.value, ), desc.FloatParam( - name='filteringParamHForColorComponents', + name='nlmFilterHColor', label='HColor', - description='Parameter regulating filter strength for color images only. Normally same as Filtering Parameter H. Not necessary for grayscale images', - value=5.0, + description='Parameter regulating filter strength for color components. Not necessary for grayscale images.\n' + 'Bigger HColor value perfectly removes noise but also removes image details, smaller HColor value preserves details but also preserves some noise.', + value=10.0, range=(0.0, 1000.0, 0.01), uid=[0], - enabled=lambda node: node.nlmFilter.denoiseEnabled.value, + enabled=lambda node: node.nlmFilter.nlmFilterEnabled.value, ), desc.IntParam( - name='templateWindowSize', + name='nlmFilterTemplateWindowSize', label='Template Window Size', description='Size in pixels of the template patch that is used to compute weights. Should be odd.', value=7, range=(1, 101, 2), uid=[0], - enabled=lambda node: node.nlmFilter.denoiseEnabled.value, + enabled=lambda node: node.nlmFilter.nlmFilterEnabled.value, ), desc.IntParam( - name='searchWindowSize', + name='nlmFilterSearchWindowSize', label='Search Window Size', description='Size in pixels of the window that is used to compute weighted average for given pixel. Should be odd. Affect performance linearly: greater searchWindowsSize - greater denoising time.', value=21, range=(1, 1001, 2), uid=[0], - enabled=lambda node: node.nlmFilter.denoiseEnabled.value, + enabled=lambda node: node.nlmFilter.nlmFilterEnabled.value, ), ]), desc.ChoiceParam(