Easy post-processing in Affinity Photo
Sections in this page
This is the process I use in Affinity Photo v2 to enhance the stacked JPEG images from Seestar S30. I am confident that this will all work in the Pixel mode of the more recent free version of Affinity.
- In Affinity open the JPEG image stacked by your Seestar (or other camera).
- You may want to use menu option "Document/Rotate 90° clockwise" and then Ctrl-0 to see the image a bit larger.
- On the Layer menu select "New Live Filter Layer/Noise/Denoise..."
- In the resulting dialogue push both "Luminance" and "Colours" right up to 100%. Then close the dialogue (it can be reopened from the layers panel if necessary).
- On the Layer menu select "New Adjustment Layer/Brightness&Contrast...". In the resulting dialogue push both sliders to the right as far as you want.
- If some of the background is not black enough add another adjustment layer: "Curves". Pin the middle of the diagonal line and then just move the dark section down a little bit.
- If you rotated the image you may want to rotate back and perhaps crop, to taste.
- "File/Export..." to save in various formats. More info below.
In a demonstration I gave recently I then switched off the denoise filter from the layers panel so that the increased brightness and contrast revealed how noisy the original image really was.
Version 3.1 of Seestar software (March 2026) produces results which are much less noisy. You may need little or no denoising.
The curves dialogue setting used in the example on the right:
Make the filter visible in the layers panel by clicking the arrow 1 (as shown below). The filter is switched off and on again by clicking the black spot 2 at the right of its layer. Dialogues can be made visible again for readjustment by clicking the icons in column 3.
Q: What's the difference between an adjustment and a filter?
A: An adjustment is something that can be done at every individual pixel without considering neighbouring pixels. A filter takes neighbouring pixels into account. If you think about it, denoising must consider what each pixel is doing in relation to its neighbours, so it must be a filter.
A portion of the original JPEG stacked by Seestar, shown here at full size:
The result of the process described on the left:
If you then switch off the denoise filter:
Save or Export?
"File/Save As..." will save in Affinity's own format, containing all the layer information. That will make files that can only be read by Affinity. For more general formats you need "File/Export...". Be aware that for PNG you will probably want only 8 bits rather than the default 32-bit setting in the dialogue.
Background colour cast
Local lighting reflected by dust in the atmosphere often causes the background to have a reddish colour cast. Scattered moonlight can make the background blue.
In my GRIP program there is a menu option "Levels/Neutralise background". It looks at the 3 modal values (peaks) of the histogram (in the red, green, blue bands). In astrophotos the peaks are due to the background, the most plentiful pixels in the image (unless there is a nebula completely filling the frame). The process finds the band with the darkest mode and then scales the other 2 bands so that their modes match that lowest one. The background is then dark grey rather than coloured. It is best to use this process before the denoising and contrast shown above.
I have made a version of this one process that will run in a browser. It will show the histogram before and after, for confirmation. Try it here.
Pre-processing the FITS file
Starting the process above with the stacked JPEG file is all very well but it is not using all of the data collected. We may be able to do better. JPEG uses a lossy compression method. Even at the highest quality setting it is throwing data away. Also it has only 8 bits for each colour band (256 levels).
Seestar stacking also produces a FITS file. This contains all of the collected data, of which the JPEG version is only a summary. These files have 16 bits for each colour (65,536 levels) and have not used lossy compression. You need to have set Seestar to save files internally and you then get the files across to your PC through a USB cable. The file names have .fit as the extension.
Affinity is able to open FITS files but it does not display the Seestar ones very usefully. The same can be said of my own GRIP program.
I have discovered that ZWO does have some free software for viewing their FITS files and saving them in other formats in a much more displayable form. Try ASI Studio - go to the Desktop tab on that page to download it.
The Studio has several parts for various applications. We want the one called ASIFItsView. Open that and you will see your FITS file displayed. As in my process above you can rotate the image so it fills the screen better. You can also zoom in.
I am using version 1.18 (64 bit). The 7th icon from the left, below the image, is for displaying a histogram of the image (the frequency of each of the 65,536 levels in each colour band). Little white triangles beneath the graph can be dragged left or right to change the contrast in the image. Doing it at this stage means you are working with all of the original data, rather than the JPEG approximation.
Another icon, 2 to the right of the histogram one, enables you to save the result as a new file. Three formats are offered: PNG, TIFF or JPEG. The last of those is pointless for the reasons already given but PNG and TIFF do not lose data by compression and they are readily opened by most photo software.
So you should now be able to use my simple process at the top of this page and perhaps get even better results.
One thing still surprises me: TIFF can accomodate the full 16 bits for each band but the TIFF files saved by ASI Studio still only use 8 bits. (I must ask them to improve this!)
Some links
ASI Studio (on the Desktop tab)