Some news about RawTherapee’s Local Adjustments and recent Rawpedia updates

Hello @Soupy

Check out the YouTube video by @Andy_Astbury1 on how to use it effectively.

Thanks. I am a great fan of Andy’s videos myself.
Actually, the idea to use the demoisaic RCD-VING4 method in “my” workflow is shamefully “stolen” from one of his YouTube videos on the noise reduction with RawTherapee :slight_smile:


Sorry for nitpicking:


Hello @heckflosse

Sorry for nitpicking: but it is RCD+VNG4```

Thanks a lot indeed! I was aware of the missing + but on my computer I didn’t notice the missing I (VING4) and yes I should wear (buy) spectacles but I am trying to procrastinate this outcome as long as possible (I am nearly 50 years old…)

BTW, since you mention this.
I have read on this thread on Github [1] about the different RCD “methods”. I have chosen RCD+VNG4 thanks to Andy but I suppose I should have also opted for RCD+Bilinear as well, right?
On RawPedia [2] the +Bilinear “variant” is not fully mentioned and this is why I am asking… :slight_smile:

EDIT: just checked @jdc .pp3 as well. He chose “rcdvng4”. Therefore, I suppose it is the right one for this noisy image :slight_smile:


I’m getting 53 years old this year…

Here’s the issue.

And I’m 62 so both of you can stop using age as an excuse :crazy_face: :crazy_face:


Hi Desmis,
very good news !! :smiley:

PS: Are you sleeping sometime… or you are a machine man?? You are making updates every day :grin:
Good Good!!

Hello @dafrasaga

There are several reasons for this commit flow

  • I am old… and the future is behind me :slight_smile:
  • with Covid19…few outings, no family
  • and now, I see that users are expecting something

But I think, it’s quite finish (the flow)…



I just updated to Big Sur just to be able to run the latest build ( from there. If anybody is about to do the same, I just want to say that it does not contain local adjustments. :slightly_smiling_face:

I am very confused about that. The build was generated on January 8 of this year. Unless @HIRAM did something very odd, the Local Adjustments should be available.


Well, I also downloaded and installed and Local Adjustments are there all right and they work well as far as I checked. I have a MacBook Pro with Big Sur 11.1.


Don’t know how I screwed up, but I did. Works here too. Thanks for testing.


Hi all

In the continuation of the example with “Eagle” above, I propose you a tutorial on Rawpedia for “Denoise”

I used an image with Andy’s permission. @Andy_Astbury1 - “The harvest mouse”

But important:
This document is for educational purposes and the settings are designed to clearly demonstrate the different steps rather than to produce a beautiful image.

This tutorial has been realized with the collaboration of Wayne @Wayne_Sutton

Here the link



Could the LA Excluding Spot be made more flexible by allowing the handles to be re-positioned or perhaps the ability to add new handles. It would make it much easier to isolate odd shapes, I think.


I would be very happy if a GUI specialist could do that.

This is part of the things to do, in addition to ellipses and rectangles, having the possibility to make polygons or curves on demand. This is essentially a GUI problem (there is also to make the associated LUTs and modify the code of

You’re not the first to make this request…but personally I don’t know how to do it.



@stuntflyer Have you tried improving the selectivity of the spot by playing around with the Scope, Transition Gradient and Shape Detection tools? I find that RT Spots are already a vast improvement on the Nik Collection, which only had variable-diameter circles for the spots and no way of adjusting the scope or selectivity inside them. However, I agree that there are always some cases where being able to create a polygon would be useful.


I have and those tools are quite useful. Hopefully the future will bring further refinement in the form of more advanced shape manipulation.


Hi all
We add (Ingo and me) a new tool to “local adjustements” “denoise”…
It’s name “Non-local means”

Commit “dev” - 6ad419f - 5 February 2021

Local adjustments – Denoise – improvments with Non-local means

What is « Non Local Means » ?

Here Wikipedia definition : Non-local means is an algorithm in image processing for image denoising Unlike “local mean” filters, which take the mean value of a group of pixels surrounding a target pixel to smooth the image, non-local means filtering takes a mean of all pixels in the image, weighted by how similar these pixels are to the target pixel. This results in much greater post-filtering clarity, and less loss of detail in the image compared with local mean algorithms

In french this algorithm is named « Débruitage par morceaux » ou « Débruitage par patch » which seems to me more explicit.

Where it can be found ?

it seems that this alogorithm is used by DxO

The algorithm used here is close to the one implemented by IPOL in 2014

The work of Alberto and Ingo

I had thought of implementing this algorithm, but Alberto @agriggio was faster and made very good improvements with the help of Ingo @heckflosse . Thank you to them for this excellent work

These improvements can be achieved by :

  • used of OMP and SSE
  • used of Tiles
  • used Laplacian and mask to better improve edge detection and thus differentiate the action between solids and textures.
  • limit the use to luminance noise, because indeed the examination of other software shows that chromatic noise is often better processed by other algorithms (Wavelets, GuidedFilter…)

My choices

I made the choice to implement it in « LA », but it is possible to do it for the other denoise modules of Rawtherapee (Noise reduction, Wavelet levels)

What are the differences with the ART version ? For the code itself few deviations.

I used Lab instead of Yuv, because the base data are in L (Lab)…for this I applied a transformation to make Lab “variable”, by default I applied a gamma=3.0 and at the end inverse-gamma=0.3333, but, with the help of Ingo, you can vary the gamma and thus change the distribution of denoise according to solids and textures. . For recall Lab consists of a system with gamma=3.0 and slope=9.03

In «standard and advanced mode » I use “gamma” as above and I enable the 2 hiden variables in ART « max_patch_radius » and « max_search_radius » (advanced) which allows to better adapt the algo to the details of the image, but which resulted in an increase in the processing time for the 2nd.

And of course everything that will allow you to work with a spot…(the Laplacian has already been used for other applications).
To note that for “Non-local means” the minimum RT-spot size is 150*150 pixels which nevertheless is very small

How is it implanted here ?

I choose to be able to be used in conjunction with ‘Luminance denoise by level’ or on its own.

I also chose to be able to use all the particularities of LA : Scope (deltaE), Transitions, Excluding Spot, Mask and ‘Recovery based on luminance mask’, and of course for one or several RT-Spot or working in « Full image »

The GUI has been modified as a consequence, in particular by changing the selection combobox. It now offers 4 choices :

  • off
  • conservative
  • aggressive
  • Non-local means only

This modification could lead to difficulties with some pp3 - in this case it is better to clean the cache

« Non local means » is enable when slider « strength » is > 0.

Labels and tooltips have been improved with the participation of Wayne Sutton @Wayne_Sutton , thanks to him.

What memory usage and processing time ?

For memory, whatever the settings, the consumption is low, thanks again to Alberto and Ingo.

For processing time, here some comparisons (output TIF)

Image 4312 * 2860 (wavelet - conservative)

Full image : wavelet 3000ms – Nlmeans 3000ms

Spot 1200*800 wavelet 260ms – Nlmeans 220ms

Spot 150*150 wavelet 100ms – Nlmeans 20ms

Image 6000*4000 (wavelet - conservative)

Full image : wavelet 12000ms – Nlmeans 6000ms

What results ?

Like all noise treatments, the result is quite subjective and depends on individual taste. But personally I find the results very good, especially in conjunction with wavelet and DCT.

In the same manner Rawpedia is update



Hi all
I announce that following the request of many users, the code of “Local Adjustments” (LA) has been moved from “after RGB process” to “before RGB process”. This means that all RGB process algorithms (channel mixer, tone curve, highlight, shadows, RGB and HSV curves, Color toning, Film simulation, black and white,…) are executed after “LA” and therefore have no influence on “LA”.

The impact on the current usage is small, otherwise a slight slowdown in the execution of the zooms in preview mode.

Commit dev 7 february 2021 - d369efb



This is quite a big change in operation, so let me just add the following. There are probably just as many pros and cons for this change and not everybody may like it. You are now required to make your local adjustments before some of the commonly used global tools and you cannot make local adjustments afterwards.