Deconvolution - Barry Wilson


Deconvolution is a technique designed to recover fine detail and try to reverse the effects of optical distortion due to seeing conditions and other optical and mechanical imperfections from photon capture during astrophotography.

Deconvolution is always performed at the linear stage after calibration, aligning and integration on either a Luminance stack or Ha stack.  The screenshot image below shows an Ha integrated and calibrated stack of the Rosette Nebula.  The stack has been cropped and no other process or script has been applied.  Deconvolution can be applied after running DBE but as this is a 5nm Ha stack the background is without gradient and I have chosen to forego DBE.  I am preparing to create a Mask to protect the background.

Ha stack ready to create Mask

I create a clone and then apply the Screen Transfer Function ("STF") settings to the Histogram Transform ("HT") process; then switch off the STF and apply the HT to the clone.

Creating the Mask

After this first application of the HT process the linear clone is now stretched and non-linear.  To provide greater protection to the background, the histogram is stretched further clipping the blackpoint by moving the lefthand slider to the right beyond the lefthand end of the histogram curve. This is then applied to the clone by dragging and dropping the New Instance triangular icon on the bottom bar of the HT process on to the stretched non-linear clone.

I also choose at this stage to double click on the Image Identified of the clone to rename it to 'Lum_Mask' for ease of identifying this image window.  Organising your workspce is important for efficient processing, especially when you have many image windows open later in the processing workflow.

Clipping the blackpoint of the Mask

Next, I minimise the HT process and Mask to free up space in the work area of PI ready for the creation of a Star Mask.  The settings are shown below.  You may need to vary these settings for own images but these are a good place to start.  Once I have changed the setings in the Star Mask process I apply the New Instance icon to the linear Ha stack to produce the Star Mask.

Creating the Star Mask

After minimisung the Star Mask process and Star Mask image windows, I open the Dynamic PSF process to select suitable stars across the entire Ha linear stack as representative 'Point Spread Functions'.  I choose 50 non-saturated stars with Moffat functions by simply clicking on stars. If a star is chosen that is too large, highlighting the star in the Dynamic PSF process and then deleting removes the star from the PSF calculation.  At the end of the selection, I clicked on the first star in the Dynamic PSF process list and, whilst holding down the shift key, clicked on the last star in the list to highlight and select all of the 50 stars; then clicked the 'camera' icon to produce the PSF of the 50 stars.

Dynamic PSF process and star selection

After closing the Dynamic PSF process, I then minimised the PSF window and tidied the work space.  Next, I applied the Mask to protect the background of the Ha stack in preparation for the Deconvolution process itself.  I then selcted the preview window I had previously drawn on the Ha stack and opened the Deconvolution process.

Deconvolution starting default values

In the Deconvolution process window above, I have selected the specific PSF function calculated from my star selection from the drop-down menu icon in the PSF section of the window, 'View Identifier'.  I have clicked the 'Deringing' section to activate the section and chosen 'Local derining 'support and selected the Star-Mask from the drop-down menu.  Additionally, I have zoomed in on the preview image to better see the effects of the resultant deconvolution.

The values for 'Global dark' and 'Global bright' are the default values.  Setting a value for 'Global dark' is the key to a successful deconvolution.  Too small and dark rings appear around stars, too large and bright ringing artifacts can appear around stars and in the background sky.

Too small a value for 'Global dark'

In my first attempt at inputting the settings above, I selected 'Global dark' at 0.0050 and left the number of 'Iterations' at 10.  After applying the process I examined the preview image and then uincreased the number of iterations to 35 and re-applied the New Instance to the preview.  I then re-examined the results and concluded that the value for 'Global dark' is too small at 0.0050, with narrow dark rings appearing around the stars.  Overall the image has regained a measure of fine detail by reversing the effects of optical distortion when capturing the data which is what we want to achieve.  However, the dark rings will become more prominent later in processing (from enhanced contrast between the signal poor dark ring and signal strong brighter nebula) and detract from the finished image.  We must therefore adjust the 'Global dark' value until the dark ringing disappears.  This is an iterative process and you have to experiment with values both of 'Global dark' and 'Iterations' to arrive at the desired result.

I increased the 'Global dark' value to 0.0700 and re-applied this to the preview window with 35 iterations.  This time, bright rings appeared around the stars.

Too large a value for 'Global dark'

Here in the image above you can just about discern narrow bright ringing artifacts around the stars.  The overall reversal of distortion is not as pronounced either.  Once again I adjusted the 'Global dark' value and this time selected 0.0250 and re-applied the New Instance to the preview window.

The optimum value for 'Global dark'

I was satisfied with this result in the preview window.  Next, I clicked onto the main image window and applied the New Instance to the entire Ha stack.