Astronomical Image Processing Software
StarStack is a software package for processing and enhancing astronomical photos. This software is work-in-progress, and the current version shown here is the first release. The features in the current version include:
- Applying dark, bias and flat corrections to an image.
- Stacking multiple images for S/N enhancement.
- Stacking multiple sequential short exposure images to obtain an equivalent long exposure star-trail image.
StarStack is a 64 bit application, and will soon be available for download from the Microsoft Store for Windows-10.
An early release version can be found at
An MSI installation package of StarStack is also available upon request, for installation on Windows-7.
Images are loaded under the File menu. The images are not loaded into the computer memory at this this stage, but only the file information and file location are read and stored. If the file on disk is subsequently deleted after it's information has being loaded, then it will not be found during the later processing steps.
The dark, bias and flat images should be loaded under the appropriate menu load item. Three file formats are supported and are JPG, PNG and TIFF formats. The image file information is stored under 7 categories, depending on how it was loaded or the processing step. These are shown by the 7 tabs on the left side of the main application body. These are:
- Image data. Data that has been loaded using "Load Image Files", which will be just a regular photo.
- Processed. Data that has come out from the "Processing" step. Manually aligned data is also within this group.
- Auto-Aligned. Data that has come out from the "Auto-Align" step
- Stacked. Data that has come out from the "Stacking" step.
- Dark. Data that has been loaded as a Dark Image, or from Dark Stack pre-processing
- Bias. Data that has been loaded as a Bias Image, or from Bias Stack pre-processing.
- Flat. Data that has been loaded as a Flat Image, from Flat Stack pre-processing, or a Modeled Flat image from the Pre-processing.
The workflow is divided in to 6 main steps. These are:
- Load the data, and select the required images.
- To determine optional processing parameters and stacking the dark, bias or flat images.
- Applying the selected processing options to an image. The processing steps are applied sequentially in the order of the steps as listed.
- Automatic Alignment <optional>.
- Manual alignment is a separate process that is done in the main processing section, and can additionally be done preceding automatic alignment.
- Image Stacking
- Enhancement <nothing here yet>.
- For future versions.
Data Loading and Saving
The image data files are not actually loaded into memory when a File->Load task is performed. Only the file header and EXIF data (if applicable) is read and the file information is stored in memory and displayed in the file list on the left side. When a later pre-processing or processing step is done, the image file is read from disk into memory, the processing performed, then the results is written back to disk. The information for the new file(s) created are updated to the list.
As an example such as Dark Stacking, only one file at a time is read from the disk and added to the stack, then discarded, before reading the next file and adding to the stack. There will be some tasks such as median stacking which require all files to be in memory before processing can start, but where applicable, files are only resident in memory when needed. The reasoning behind this, is that the software is less likely to have memory overload problems if a very large number of files were being simultaneously processed.
The saved file output format can be selected under Edit->Parameters menu. Currently, PNG format is shown as the default Save format, which maybe not what you want.
- Saving as TIF files are supported, but it is uncertain if OpenCV is using full 16 bit option for TIF files.
- For JPG format, 100 is optimal quality and maximum file size. It will still be slightly lossy, but will be as good as can get with JPG.
- PNG format is reported to be lossless and the parameter is the amount of computation effort that is applied to compress the file. 9 is maximum effort for a smaller file size. 3 is apparent a good compromise. 0 is no compression and quickest.
If you use PNG with quality = 9, the file save process may be quite long at the completion of each processing step. The quality of the image wont be any different from other quality options, but it will have a smaller file size. A value of 3 seems a good compromise.
Some workflow scenarios are shown below. These are grouped into workflows that don't have any dark, bias or flat images, and those that do. The simpler workflows don’t use dark, bias or flat images are shown in the first diagram below. Of these, the simplest option is to simply load a number of images and stack them all together. The more complex workflows include alignment and image processing.
Within the main processing workflow, any of the options shown can be selected. The minimum number of processes expected is one process and the maximum is all available options for processing. The options are not dependent on each other, but they will be performed in the order from top to bottom as shown on the Processing page. All of the selected processing options are done with-in one read/save cycle, to avoid image degradation that may occur if using multiple saving operations and a lossy image (JPEG) saving method is selected.
There are two main ways to view an image.
- The first way is to single-click on a file name when the “Preview and Exif” tab is at the front
- The second way is to double-click on a file-name and a separate ImageViewer will pop up.
There is a third type of image window that will automatically come up at times, and this is from OpenCV. This window is controlled by the processing.
Pre-processing steps are steps that dont have any immediate effect on any images. The pre-processing steps either assist in determining processing parameters, or compute auxillary files such as dark, bias and flats for later application to the image files.
- Dark/Bias/Flat stacks. Computes a mean stack of the checked files that are loaded as either dark, flat or bias
- Flat modelling. Simulates a flat file based on a single parameter called “flat coefficient”. A larger value has a greater falloff towards the edge of the image. An image is required to be present in the image list before this option can be run, since information on the image size is needed and is got from any file in the flat list.
- ADR. This is an attempt to reduce the severity of atmospheric dispersion that occurs on images shot at lower altitude angles close to the horizon. It simply shifts the red pixels down by a certain pixel count, and shifts the blue pixels up. The photo angle relative to the horizon is required, and is the parameter called camera angle. Note that if doing eye-piece projection photography, an additional 180 degrees needs to be added (or subtracted).
- Manual Alignment shifts. Allow to identify a single, or a pair of points on each image for later alignment.
- Single point alignment means that the images will be aligned at the selected point by X and Y translations.
- Two point alignment means that the images will be first aligned mid-way between the 2 selected points by X and Y translation, and then a “best fit” rotation is applied so the two selected points will overlay. If the points were not accurately picked, or the images suffer from lens distortions, then the final overlay may not be exact.
Six processing option are available. The processing is applied in order from top to bottom. Only the processing options that are checked are applied.
- Dark Subtract. A dark image is selected from the dark list, and the correction applied.
- Bias Subtract. A bias image is selected from the dark list, and the correction applied.
- Flat Subtract. A flat image is selected from the dark list, and the correction applied.
- Flat Model Subtract.
- AD Reduction. ADR is applied using the parameters determined during pre-processing.
- Manual Alignment. Manual alignment is applied, using the parameters determined during pre-processing.
- Negative Image. A negative image is computed.
Input data for auto-alignment can come from either the image (loaded data) or processed file lists. Still under development.
Input data for stacking can come from either the image (loaded data), auto-aligned or processed file lists. Four stacking options are available.
- Mean Stack. An average of all the checked image.
- Median Stack (not yet operational).
- Star-trail Stack. For making a single star-trail image from a sequence of short sequential exposures. See Star-trail stacking for some more details.
- Plane Stack. For stacking images of planes taking off near an airport, with camera fixed on a tripod and a blue cloudless sky. See Plane stacking for some more details.