Venus cloud tracking -- July 31, 2006
<- Previous page
6. Making composite images
Composite images are made by processing each individual aligned image and then
averaging the set of 10 together. This is a completely automated process once the
correct shifts have been identified and entered into the image_data.txt file. Making a
composite image from 10 raw images takes about a minute on a G5.
Here is an example of a raw image (#2124), the first image in the third interval
identified above, of intermediate sharpness. It is displayed in a scale range of 0 - 4000:
The first step is to mask the image by setting to zero all values that correspond to
zero values in the mask shown above. All pixels in the file less than zero are also
set to zero. For most of the processing steps, zero indicates an unused pixel.
The next step is to flat-field the image by dividing all non-zero pixels by the
corresponding value in the flat image. Since the flat was not made from images with
different exposure times, a dark-current offset cannot be subtracted, and the gain
curve is assumed to pass through (0, 0).
However, this process does not seem to work for the 7/13/04 flat, although it does work
for other days in 7/04. Dividing by the flat image makes the result worse, not better,
by adding a considerable amount of noise which appears to be grouped into a characteristic
pattern of rows and columns across the field. The reason for this is completely unknown.
(Click for 2x-size)
Therefore, in all subsequent steps, the flat-fielding will be omitted from the processing.
If, at a later time, a working flat can be created, it can be reintroduced into the
Filling the slit
The next step is to fill the slit. The slit is identified from the mask, and is from
coordinates (231, 189) to (235, 315) in the unflipped images. This rectangular region is
filled by the following procedure:
1. For each row of the slit, calculate the average non-zero pixel
value for the endpoints of the row from 2 pixels above the current row
to 2 pixels below the current row (total height = 5).
2. Using these average values, perform a straight line interpolation
between them to calculate the values of all pixels in the row.
3. Repeat 1 and 2 for all rows of the slit.
The next step is to replace all zero pixels with the median of their surrounding
non-zero pixels in a 5x5 square, if possible. This process is repeated 3 times.
Note that existing non-zero pixels are not affected by this procedure.
Removing row and column noise
The next step is to remove the row and column 'readout' noise in the image. This noise
can be seen primarily as alternating variations in the brightness of the rows of the image,
especially at the edge of the saturated crescent. However, it also manifests as a more
subtle pattern in rows and columns of the image.
A previous method of suppressing this noise was to calculate the variation in image
gain for each row, subject this 1d curve to a Fourier filter which eliminated the Nyquist
frequency term (a square wave of wavelength 2 pixels), and then reset the row gains to this
slightly smoothed curve. This technique was only partly effective on the row noise, and did
nothing about the column noise.
Currently, both the row and column noise are almost entirely suppressed by a much simpler
1. Shift the image 0.5 pixels up, and 0.5 pixels down.
2. Average the two results.
3. Shift the image 0.5 pixels left, and 0.5 pixels right.
4. Average the two results.
This 'trick' is almost completely effective in removing the readout noise, with only
a very slight reduction in image sharpness (and which is probably smaller than the spatial
cutoff frequency anyway).
Here is a comparison of the original image, the old technique, and the new technique:
(Click for full-size)
Next, the Y axis is flipped so as to have the same orientation as the IRTF control room
The image is then shifted by the (floating-point) amounts determined with FITSRegister:
Subtracting bracket-gamma gradient
The bracket-gamma gradient is subtracted:
Normalizing background and foreground
Finally, the pixel values are adjusted so that the background just outside the dark limb
in arc regions from 1 - 2 o'clock and from 4 - 5 o'clock has an average of 100, and the
maximum value of the clouds (bright horizontal band near bottom) is at 1000. This makes the
brightness and contrast of all images the same, compensating for the significant changes in
brightness throughout the night and with the changing atmosphere (of Earth):
All 10 processed images are then averaged together. Using a median image rather than average has little
effect on the result:
Here is a comparison of a raw image, a processed single image, and the final composite image
of the first and the last time intervals of 7/13/04:
(Click for full-size)
Next page ->
İSky Coyote 2006