Skip to main content

Processing high ISO night images with RawTherapee

Earlier this year i did some videos (here and here) regarding how to remove the noise from high ISO raw images. I decided to write down the work flow with text and pictures to avoid the seeking the video in different parts.

The original file is available here: https://discuss.pixls.us/t/playraw-high-iso-challenge/2778 and the image is taken by PkmXDec using a Sony A6000 + Canon FD 85mm f/1.8 S.S.C. + Lens Turbo II wide open.

Out of the box, the picture shows a lot of noise and the color is too warm if we press the "Auto Levels". This happens because he ISO is 12800 and the lighting available: sodium light. In addition, the color noise has a specific noise pattern, as shown in the uniform part of the picture on the left.

Initial raw image conversion using the default options.
Initial RAW image conversion using the default options.
1. Our first approach is to change the Demosaicing method from the "RAW" tab. The "RAW" tab contains all the options responsible from converting the image from the RAW format to actual picture. This is the first step of process flow before applying any advanced filter or changing the color temperature. In this tab, we change  the AMaZE to LMMSE method. We also change the enhancement steps to 6. The image now has slightly better color noise. An alternative method to use in high noise pictures is the IGV.

RAW image after using the LMMSE method. Notice the reduction of color noise.
RAW image after using the LMMSE method.
Notice the reduction of color noise.
Moreover, Chromatic Aberration in the same tab (Demosaicing) can fix possible chromatics aberrations in the picture. We select "Auto-Correction". Finally, we can also enable the "Hot pixel filter" and the "Dead pixel filter" under the "Preprocessing" set of options.

Demosaicing method options of  the RawTherapee when processing high ISO images.
Demosaicing method options of
the RawTherapee when processing
high ISO images.
2. Next we have to fix the white balance from the color tab. We decrease the temperature to 2451 and we enable the vibrance with a small value (13) to improve the unsaturated colors. We may improve the color in the final phase of our editing.

White balance of the RawTherapee.
White balance of the RawTherapee.
3. The next important step is the noise reduction from the Detail tab. There are two noise reduction methods: The normal and the impulse. We initially enable the "Impulse Noise Reduction" with the default settings. We expect to see a small improvement in random white and black pixels appearing.

Next we enable the "Noise Reduction". We change the Mode from "Conservative" to "Aggressive".  We will notice the difference in color noise, but we have to modify the luminance reduction to achieve better results. We change the "Luminance control" to "Curve". Now we can decide how much noise reduction we want depending on the light available. As generic rule, the dark parts of the
picture contain more noise, so we have to increase the noise reduction. We also increase the "Detail recovery" to improve the details of the picture and decrease the impact of noise reduction.
Noise reduction options of  RawTherapee for high ISO RAW images.
Noise reduction options of
RawTherapee for high ISO
RAW images.
Now even with enough noise reduction, we still have some artifacts. To remove them, we can apply the "Median Filter" from the same tab. Due to high noise of this picture, we select "5x5" Median type and "Weighted" Median method to eliminate also the remaining color artifacts.
Median Filter options for the noise reduction of the  RawTherapee for High ISO RAW images.
Median Filter options for the noise reduction of the
RawTherapee for High ISO RAW images.
4. With noise reduction, we also loosing vital information of the image and we decrease the overall clarity of the picture. To fix this we enable the "Contrast by Detail Levels" from the same tab.  We have to add a bit only to avoid the artifact generation in the picture.

Contrast by Detail Levels of  the RawTherapee.
Contrast by Detail Levels of
the RawTherapee.
5. Finally, we adjust the light and the contrast of the picture. The produced histogram show that the image needs more contrast. In this particular photo we decrease the shadows, we decrease the Exposure compensation to 1.2 and increase the "Black" value to 980 to emphasize the black in the picture.

Final image after processing with RawTherapee.
Final image after processing with RawTherapee.

Popular posts from this blog

Processing Milky Way in RawTherapee

This text is an analysis of a video I did some months ago how to process photos of our Milky Way in RawTherapee. You can find the picture here . The photo was taken by wiegemalt. This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License. Editing: Step 1: Fixing lighting The first thing someone notices when opening the picture is the extreme noise due to high ISO used (1600 - check the picture on the right). The first thought is to de-noise the picture, however, if you do that you are going to loose the details of the night sky. The main reason for the high noise is the additional exposure Rawtherapee adds when the 'Auto' button is pressed. In particular, the RT adds +2.4 EV to equalize the picture. This is Wrong! What we want is to keep the noise down and at the same time bring the stars up. That's why we are going to play with the Tone Curve of the RT. To adjust the light properly we increase the cont

Static linking with gcc and g++

In this tutorial, we will explain what the static linking is, how this affect the size of final binary, and why statically linking with g++ sometimes is pain. By definition, a statically compiled binary is a group of programmer ‘s routines, external functions, and variables which are packed into the final binary executable. The compiler or the linker produces the final object and embeds all the functions and variables and the linking phase.  There are two reasons of using dynamic linking and shared libraries: 1) Avoid creating a huge binary, if all the programs use a standard set of libraries why not having the operating system providing to them 2) Compatibility on operating system and machine dependant characteristics: sometimes the libraries must be implemented based on the architecture or the operating system and using dynamic linking is an easy way to avoid this catch. On the other hand, static linking is the ideal way of distributing one software product, paying

Homemade NAS after two and half years

Few years ago, I created a NAS system using my old PC. The old pc is powerful enough to do the basic NAS operation except real time transcoding of 4K or more than one 1080 streams.  The setup was setup as follows: 1 SSD 128 GB for boot device 2x 4 TBs for the main storage configured as RAID 1 The hard disks were from different manufacturers (WD red plus and Segate) to avoid catastrophic situations: disks are part of a bad batch and you will have a second failed disk during the build of the RAID array. Here is a list of my mistakes: My first mistake was CentOS. I wanted a stable machine without surprises, unexpected behavior, as much less bugs affecting my setup. I had three free/open source options:  Open Media Vault: Debian based Linux with many configuration options. The main downside is that you don't have support for ZFS and you have to very often use the command line to fix things. Moreover, there are a plethora of open issues/bugs that can make your life harder than expected