Shooting from light polluted areas
by Alejandro Tombolini
Image of Scott publicated in Image Processing Challenges - Noise image and lack of signal - Main notes: Contrast with Adaptive Stretch protecting with a special RangeMask and noise reduction. Date: September 2013
This image is a difficult one to process due the lack of information and the high level of noise, and the most recomendable thing to do is definitly have more exposure time in order to increase the signal to noise ratio.
We can not think in a good result in this process, however I like exploring how the different tools works as it is very usefull to learn.
To reduce the gradient, I use DynamicBackgrounExtraction placing the samples carefully excluding stars.
Select a small preview of the background to be used as Reference image in BackgroundNeutralization tool.
ColorCalibration using the same preview as Reference image and the target image as Reference image for white. I have deselected Structure detection.
It can be seen banding horizontal and vertical, then I apply CanonBandingReduction first horizontaly and then rotate the image with FastRotation 90° clockwise and apply again. Finally rotate again Counter clockwise
First stretching using HistogramTransformation Tool.
Now I will stretch again using AdaptiveStretch and with the help of a mask that is protecting background. AdaptiveStretch gives contrast but I use the mask as there is too much noise and I want to avoid increasing contrast between noise areas.
The description of the mask used (as it is long) is at the end. See Rangemask1.
Generate a new Rangemask to be used with InterchannelCuves protecting the background in order to increase Saturation in bright areas, setting CIE L as Reference Channel and Saturation as Target Channel.
Noise reduction using TGVDenoise and without using mask.
Protecting the background with rangemask, apply ExponentialTransformation.
Noise reduction using MultiscaleMedianTransformation working with Adaptive in layer 1,2,3 and 4 and protecting the bright areas with rangemask.
Noise reduction using GREYCstoration and protecting the bright areas with rangemask.
Curves moving Luminance to give contrast in the dark areas protecting the bright ones with Rangemask1.
Noise reduction: SCNR to Green.
Again CurvesTransformation tool to increase Saturation and more contrast adjusting luminance without using mask.
Noise reduction to Chrominace using ACDNR.
Clip shadows with HistogramTransformation.
To work on the stars first build a starmask and protecting the background apply MorphologicalTransformation in stars.
Finally CurvesTransformation to increase Saturation and Luminance in the stars.
Resample and final image.
Two clones of the image. In one of them apply ATrousWaveletTransform deleting layer of 256 pixels to have only stars.
With PixelMath substract "cygnus_40_60sec_clone1" from "cygnus_40_60sec_clone".
Noise reduction to the image without stras using TGVDenoise.
Clone again "cygnus_40_60sec_clone" and using ATrousWaveletTransform let remain only layer 1,2 and 3.
With PixelMath substract "cygnus_40_60sec_clone_clone" from "cygnus_40_60sec_clone".
Delete layers 1,2,3 and 4.
Clone again "cygnus_40_60sec_clone" and using ATrousWaveletTransform let remain layers 1,2,3,4 and 5.
With PixelMath substract "cygnus_40_60sec_clone_clone1" from "cygnus_40_60sec_clone".
Using ExtractWaveletLayers extract the residual.
With RangeSelection tool generate Rangemask1 over the residual.