Contrast: Local Contrast Optimization

Top: globally stretched data without further local dynamic range optimisation. Bottom: Large to medium scale local dynamic range optimisation with the Contrast Module.

The Contrast module optimises local dynamic range allocation, resulting in better contrast, reducing glare and bringing out faint detail.

It operates on medium to large areas, and is especially effective for enhancing contrast and detail unobtrusively in image-filling nebulas, globular clusters and galaxies.


Meloitte 15
We will use this Hydrogen Alpha dataset of Meloitte 15, acquired by Jim Misti to demonstrate the Contrast module. Pre-processing consisted of a simple Wipe and AutoDev.

The contrast module works by evaluating minimum and maximum brightness in a pixel's local area, and using these statistics to adjust the pixel's brightness. The size of the local areas is controlled by the 'Locality' parameter. In essence, the 'Locality' parameter controls how 'local' the dynamic range optimisation is allowed to be. You will find that a higher 'Locality' value with all else equal, will yield an image with areas of starker contrast. More generally, you will find that changing the 'Locality' value will see the Contrast module take rather different decisions on what (and where) to optimise. The rule of thumb is that a higher 'Locality' value will see smaller and 'busier' areas given priority over larger more 'tranquil' areas.

Contrast module interface with 'Basic' preset settings.
Default settings corresponding with the 'Basic' preset. The image is locally darkened, removing glare.

The 'Shadow Detail Size' parameter specifies how "careful" the Contrast module should be with dark detail. Dark detail below a certain size, may have some of its dynamic range de-allocated and given back a 'reduced' dynamic range allocation. The relative size (in percentage points) of this dynamic range that is given back, is specified by the 'Shadow Dynamic Range Allocation' parameter. The higher this value, the more dynamic range is optimised for small bright detail and larger dark detail, land less for small dark detail.

Meloitte 15
The 'Local' preset uses an higher Locality setting, thereby optimising dynamic range at a local level much more aggressively.

As alluded before, The 'Shadow Dynamic Range Allocation' parameter controls how heavily the Contrast module "squashes" the dynamic range of dark, smaller scale features it deems "unnecessary"; by de-allocating dynamic range that is used to describe larger features and re-allocating it to interesting local features, the de-allocation necessarily involves reducing the larger features' dynamic range, hence "squashing" that range. Very low settings may appear to clip the image in some extreme cases (though this is not the case). For those familiar with music production, the Contrast module is analogous to a compressor, but for your images instead.

Meloitte 15.
The 'Equalize' presets uses settings that darkens bright areas and lightens dark areas. The result is a more 'tranquil' image with small detail standing out well.

The 'Brightness Retention' feature attempts to retain the apparent brightness of the input image. It does so through calculating a non-linear stretch that aligns the histogram peak (statistical 'mode') of the old image with that of the new image. An optional 'Darken Only' operation only keeps pixels from the resulting image that are darker than the input image.

The 'Expose dark areas' option can help expose detail in the shadows by normalizing the dynamic range locally; making sure that the fully dynamic range is used at all times.