Denoise
Brief Description
This Modifier is useful to remove noise from an image and/or enhance details. Noise levels for each channel are analyzed from the image for each frequency band and assumes the noise is gaussian and additive. For speckles or salt-and-pepper noise, a Median Blur may be more appropriate.
First, click on "Analyze Image", which will compute and set the Noise Levels. If the image has many detailed areas, it may be preferable to select an analysis region with flat colors, free from any details to avoid considering details as noise. The Analysis Region can be used to define exactly the pixels to analyze. A practical example for the Analysis Region would be to take the inverse of an Edge Detect and clamp it so that all pixels near the edges have a value of zero: this would give a mask of all flat areas in the image.
If the image does not contain any sufficient flat areas, you should consider lowering the Low and Very-low frequencies gain as their values may be not correctly estimated.
Te Details Amount parameter is useful to check what details have been preserved after denoising. You can set it to a high value, adjust the Noise Levels Gain so that no noise should is left in the image, and then reset it back to 0.
Another option to check what was removed from the original image is to set the Output Mode to Noise: If too many image details are preserved, the parameters must be tuned until only noise is visible.
Controls
Parameter / Script Name | Type | Default | Function |
---|---|---|---|
Enabled / enabled | Boolean | On | |
Red / process_red | Boolean | On | Enable the red channel in output. Otherwise if there's a source the content of the main source is returned instead, else 0 |
Green / process_green | Boolean | On | Enable the green channel in output. Otherwise if there's a source the content of the main source is returned instead, else 0 |
Blue / process_blue | Boolean | On | Enable the blue channel in output. Otherwise if there's a source the content of the main source is returned instead, else 0 |
Alpha / process_alpha | Boolean | Off | Enable the alpha channel in output. Otherwise if there's a source the content of the main source is returned instead, else 0 |
Output Mode / output_mode | Choice | Result | - Result: Outputs the denoised image - Noise: Outputs only the noise. If details of the image are visible in the image, this means the denoising parameters are removing too many details of the image due to high noise levels/gain - Details: Outputs an image containing only the details of the image. If noise is visible in the image, this means the denoising parameters are not optimal and produce a noisy result |
Color Model / color_model | Choice | YCbCr | - CIE Lab - Gamma-corrected RGB - Linear RGB: Processes directly the raw linear RGB components. Useful only if denoising non-color pixels - YCbCr: Outputs the denoised image |
Decomposition Method / decomposition_mode | Choice | Spline | Changes the signal decomposition method, which affects the noise levels - Lagrange - Spline |
Analysis Region / analysisMask | Image | - | Only pixels in the analysis region are taken into account for the noise levels analysis |
Analyze Image / analysisButton | Button | Off | Estimates the noise levels from the current image. The Analysis Region can be used to define the region where to analysis the noise levels |
Noise Levels / noiseLevelsGroup | Category | - | |
Y Level (High) / y_noise_level_0 | Float | 0 | |
Cb Level (High) / cb_noise_level_0 | Float | 0 | |
Cr Level (High) / cr_noise_level_0 | Float | 0 | |
Alpha Level (High) / a_noise_level_0 | Float | 0 | |
Y Level (Medium) / y_noise_level_1 | Float | 0 | |
Cb Level (Medium) / cb_noise_level_1 | Float | 0 | |
Cr Level (Medium) / cr_noise_level_1 | Float | 0 | |
Alpha Level (Medium) / a_noise_level_1 | Float | 0 | |
Y Level (Low) / y_noise_level_2 | Float | 0 | |
Cb Level (Low) / cb_noise_level_2 | Float | 0 | |
Cr Level (Low) / cr_noise_level_2 | Float | 0 | |
Alpha Level (Low) / a_noise_level_2 | Float | 0 | |
Y Level (Very Low) / y_noise_level_3 | Float | 0 | |
Cb Level (Very Low) / cb_noise_level_3 | Float | 0 | |
Cr Level (Very Low) / cr_noise_level_3 | Float | 0 | |
Alpha Level (Very Low) / a_noise_level_3 | Float | 0 | |
Noise Levels Gain / noise_level_gain | Float | 1 | Global gain applied to all noise levels |
Denoise Amount / denoise_amount | Float | 1 | How much noise to remove. 1 removes everything blow the thresholds defined by the noise levels, 0 keeps all the noise but can be useful to add more details to the image. Between 0 and 1, interpolates the thresholds |
High Freq. Gain / gain_level_0 | Float | 1 | Gain to be applied on this specific frequency band. Can be set to 0 to disable denoising of this frequency band |
Medium Freq. Gain / gain_level_1 | Float | 1 | Gain to be applied on this specific frequency band. Can be set to 0 to disable denoising of this frequency band |
Low Freq. Gain / gain_level_2 | Float | 1 | Gain to be applied on this specific frequency band. Can be set to 0 to disable denoising of this frequency band |
Very Low Freq. Grain / gain_level_3 | Float | 1 | Gain to be applied on this specific frequency band. Can be set to 0 to disable denoising of this frequency band |
Analysis Radius / adaptative_radius | Float | 4 | Radius of the window where the signal level is analyzed. If 0, the signal level is computed from the whole image. This may lead to excessive blurring of the edges when the image has many flat areas |
Per-Channels Controls / perChannelGroup | Category | - | |
Y Gain / y_gain | Float | 1 | Gain applied to the levels for this channel. 0 means no denoising. When 1 uses the estimated noise levels multiplied by the per-frequency gain and the global noise levels gain |
Y Denoise Amount / y_amount | Float | 1 | How much noise to remove for the channel. 1 removes everything blow the thresholds defined by the noise levels, 0 keeps all the noise but can be useful to add more details to the image. Between 0 and 1, interpolates the thresholds. This value is multiplied by the global Denoise Amount. The noise levels are multiplied by the per-frequency gain, the channel gain, and the global noise level gain first |
Cb Gain / cb_gain | Float | 1 | Gain applied to the levels for this channel. 0 means no denoising. When 1 uses the estimated noise levels multiplied by the per-frequency gain and the global noise levels gain |
Cb Denoise Amount / cb_amount | Float | 1 | How much noise to remove for the channel. 1 removes everything blow the thresholds defined by the noise levels, 0 keeps all the noise but can be useful to add more details to the image. Between 0 and 1, interpolates the thresholds. This value is multiplied by the global Denoise Amount. The noise levels are multiplied by the per-frequency gain, the channel gain, and the global noise level gain first |
Cr Gain / cr_gain | Float | 1 | Gain applied to the levels for this channel. 0 means no denoising. When 1 uses the estimated noise levels multiplied by the per-frequency gain and the global noise levels gain |
Cr Denoise Amount / cr_amount | Float | 1 | How much noise to remove for the channel. 1 removes everything blow the thresholds defined by the noise levels, 0 keeps all the noise but can be useful to add more details to the image. Between 0 and 1, interpolates the thresholds. This value is multiplied by the global Denoise Amount. The noise levels are multiplied by the per-frequency gain, the channel gain, and the global noise level gain first |
Alpha Gain / a_gain | Float | 1 | Gain applied to the levels for this channel. 0 means no denoising. When 1 uses the estimated noise levels multiplied by the per-frequency gain and the global noise levels gain |
Alpha Denoise Amount / a_amount | Float | 1 | How much noise to remove for the channel. 1 removes everything blow the thresholds defined by the noise levels, 0 keeps all the noise but can be useful to add more details to the image. Between 0 and 1, interpolates the thresholds. This value is multiplied by the global Denoise Amount. The noise levels are multiplied by the per-frequency gain, the channel gain, and the global noise level gain first |
Details Amount / sharpen_amount | Float | 0 | How much details to add-back to th image. Only pixels above the noise levels are considered details and are affected by the gain parameters. For example, if the global Noise Levels Gain is set to 0, then the noise is considered details as well as signal. If the global Noise Levels Gain is set to 1, only the original signal is enhanced. To enhance details without denoising, set the Denoise Amount parameter to 0 |
Details Size / sharpen_size | Float | 10 | Higher values will enhance details of smooth areas of the image |
Only Y Details / sharpen_luminance | Boolean | Off | Enhance details of luminance only to avoid artifacts to appear in color |
Mask / mask | Image | - | |
Mix / mix_with_source | Float | 1 | Dissolves between the original image at 0 and the image with the effect applied at 1 |