Some notes about solar eclipse image processing

Contents :
  • Colorizing partial phase images
  • A simple method for totality images
  • Totality images : getting details on the whole corona

Colorizing partial phase images

Do these pictures taken with a filter contain valuable information ? The following explanations will focus on extracting a clean and colorful image from pictures taken through Baader astrosolar filter. High-definition rendering will not however be covered.

From this...

...to this


From this...

...to this

Please note that the set of processing steps below give a result which is pleasing... to me. It is obviously a matter of taste, so please read the following paragraphs as guidelines to what can be done (not must be done). This is not the ultimate solar image processing method.
What is interesting in a filtered image is not color. It is luminance. Due to non-panchromatic spectral transmission of the filter, the color information of the picture is flawed (is that sun in the sky really blue ?). But instead of converting our image to grayscale, let's look at the individual R G B channels.

R channel

G channel

B channel


R channel

G channel

B channel

The green channel seems to carry the most information, while having a properly distributed histogram (that is, not too dark, not too dark). So, from now on, the R and B channels are discarded and the following processings are done on a new image created from the G channel.
The first processing will be to adjust the histogram of this new image. From trial-and-error experimentation the level presented below give quite a nice result. This setting places the sun image in the upper half of the histogram.



The image is now ready to be colorized. The color will be given by level adjustments again, but not simply on luminance but on each of the channels. For this, we will tune only with the gamma sliders of the level palette. The most important setting is to move the gamma slider for the blue channel far to the right. This gives a yellowish-greenish hue. This can be corrected by acting on the green gamma slider. Actually, this will give you a broad control on what hue your sun will have, from yellow, to red.

R channel


G channel

Colorized !


B channel

Personnaly, I find this color too saturated, so I desaturate a bit. But here, we are on the realm of personnal taste. You have to choose your aesthetically pleasing setting.

Et voila...

One word about the granulation that can be seen on the image. It is more likely noise than actual solar surface granulation. Even though, I find it pretty nice.

A simple method for totality images

If you only have few images of the totality, here is a simple method for enhancing the corona details. For this, choose an image where the corona uses all the dynamic range (ie. from white to black) and where the inner corona is not saturated too much. For example :

Raw image

Everything starts with the analysis of a total eclipse image. What is it composed of ? It is composed of a low frequency component : this is the average brightness of the corona as a function of its distance to the sun. And on top of this low frequency component, comes the corona details : they are of quite low amplitude as compared to the amplitude of the corona brightness (that's why they are not very visible). The purpose of the processing method is to decrease the corona brightness while preserving the details. Please note that this method is not scientificaly acurate (it does not render a scientificaly acurate representation of the corona), but when this all what you have, it gives an interesting result.
The first step is to separate the low frequency brightness and the details. For this, we use a 15deg radial filter. The radial filter can be used here because solar images have a circular symmetry around their center. It also means the image on which the processing will be performed, must be centered. On the image below, notice that no detail is visible any more in the corona : it contains only the low frequency brightness.


Now, 80% of this low frequency brightness will be substracted to the original image, thus preserving the details. This gives a low brightness image of the details. The brightness is later restored by tuning the levels or curves.

Low brightness details

Brightness restored

This method can easily give images which look over-processed. To avoid this, images with little saturated (ie. plain white) corona are best. Also, the percentaage of brightness substracted (here 80%) can be reduced.
It's not the ultimate processing, but it's better than nothing.

Totality images : getting details on the whole corona

Problem statement : the solar corona has a brightness dynamic range of 10000, while consumer electronics detectors (such as CCDs in prosumers reflex cameras) have only a dynamic range around 250. An object with size 10000 has never and will never fit in a box of size 250. Thus the usual odd looking non processed photographs of solar eclipses, displaying just a tiny usable part of the corona. The images below (from the same eclipse) are taken at different exposure durations. Notice ow the usable corona is in fact a ring extending further from the sun a exposure increases.

Inner corona

Intermediate corona

Outer corona

We can now induce that if a sufficient number of unitary photographs are taken at different exposure durations, each of them will contain a different part of the corona as usable data. The game will be to add these individual usable data and cope with the huge brightness dynamic range as compared to the amplitude of corona details.
Several methods exist. Among them, the most famous are the Pellett method or the Russell Brown tutorial (see links below). Here, we will have a different approach : try to gather all the information in one single image, then process this single image. The processing below starts with 8 invidual images, from 1/500sec to 1/4sec taken at ISO100 at F/D=8. All are 48bit Tiff raw from the camera. Due to field of view used at exposure time, we are restricted here to 8 images. To get the outer reach of the corona, it is possible to use more images with longer exposure times.
The first step is to sum all of them. Arithmeticaly sum them, then normalize (divide) the sum by the total number of images. This can be done with image processing softwares by averaging the images two by two on layers with opacity 50%. Image 1 with image 2. Image 3 with image 4. Etc... This gives 4 composite images Then do the operation again with the composite images : composite 12 with composite 34. Composite 56 with composite 78. This gives 2 composite images. The final image, containing the sum of all, is created by doing the procedure again on the two latest composites. At each step, layer opacity is always set to 50%. Obviously, 8 (not 10) individual images help in this method.

Sum of 8 images

A closer look

Notice in this image how the whole corona dynamic range uses the whole image dynamic range : the inner corona is bright but not saturated, the outer corona is dark but not black. It means that all the information contained in the 8 individual images is now in this single image. In the little image above, it is difficult to see the faint details of the corona ; but in the full scale 16bit image, they are here. Now, we will try to remove the corona brightness while preserving the details.
The brightness component is of low spacial frequency. The details are of higher spacial frequency. The simplest way to extract the low frequency component is to blur. In this case, we use radial blur because the image has a circular symmetry. A gaussian blur would create artefacts in the vicinity of the lunar limb. To make the image below, a radial blur of 5deg was used.



Then, 80% of this blurred image was substracted to the original image. To get these 80%, use the level tool and set the white output level to 205. If you are using Photoshop, use the Image -> Apply image... tool to do the substraction.


The result of the substraction is a dark image of the corona details.



The levels need now to be adjusted to restore the brightness. Ideally setting the white point to 51 should brighten the image enough while not saturating it (51 is 20% of 255).





Now, we have a clean image of the corona details. It can be further enhanced with any usual techniques (see links below for unsharp masking, etc...). It is a matter of taste, so out of the scope of the present discussion.
Such harsh processing can be achieved because all images are in 16bit per channel format, so almost no rounding error occurs. Were the images in 8bit format, the last steps of the processing would be disastrous. With a greater number of individual images, converting them to 32bit per channel at first would be necessary to prevent information loss while summing. But for the current days (2006) home computers, 32bit images are still a challenge. But soon...
See also : Eclipse images in the astronmy gallery
See also : Images of the 29 March 2006 total solar eclipse
Link : Instrumental calibrated coronal imagery (U. of Arizona, William College)
Link : Solar eclipse image processing (Miloslav Druckmüller)
Link : Solar eclipse image processing (Fred Espenak)
Link : Solar eclipse image processing (Jerry Lodriguss)
Link : Solar eclipse image processing (the Russell Brown tutorial)
Link : Solar eclipse image processing (Christian Viladrich)
Link : Synthetic images of the solar corona from octree representation of 3-D electron distributions
Link : Solar eclipse automated shooting (the Druckmüller et al. method)
Link : Solar eclipse automated shooting (Fred Bruenjes software)