3. Stretches
Image descriptions:
(Resizable pop-up)
mer_20040201 _algal1.dat
ATS_TOA_1C_ 20040201~.N1
Useful information:
Numerical data formats
Null values and missing data
|
In the last section you looked at how the automatic stretches provided by Bilko can enhance the contrast of
8-bit image data by spreading the input (data) values across the full range of output (display) values.
The automatic stretches can also be used to display 16-bit and 32-bit data, by setting the stretch options in the
Redisplay dialog. This section of the tutorial shows how ways of choosing a suitable stretch for 16-bit integer data,
but the methods apply equally to 32-bit integer data and real (floating point) numbers.
-
Open the AATSR image of the Benguela you worked with earlier ( ATS_TOA_1COLRA20040201~.N1).
-
Select the Bands folder and open the reflec_nadir_0550 band.
-
In the Redisplay dialog set the null value to 0 and accept the linear default for the time being.
Activity / Question 1
Select the whole image and create two histograms, one showing the underlying data
(apply strecthces unchecked) and one showing the stretch (apply stretches checked).
|
a) |
Why is this Redisplay stretch a poor choice for observing details in the ocean?
|
b) |
Can you suggest a way to improve the display so that it reveals ocean features more clearly?
|
|
Autolinear redisplay
The easiest way to reset the image in the way suggested by the answer to question 1
is to use the Autolinear stretch option in the Redisplay dialog.
-
Activate the image and open the Stretch Options dialog ( [ALT + S] > [O] )
and change the Autolinear settings to allow no cut off at the low value end (i.e. Min% = 0)
and a cut-off at the high value which maps 2% of the pixels to 255 (i.e. Max% = 98).
-
Right-click on the image to open the Redisplay dialog and select Autolinear
as the stretch option.
-
Press OK to apply the stretch.
Activity / Question 2
Select the whole image and create two histograms, one showing the underlying data
(apply strecthces unchecked) and one showing the stretch (apply stretches checked).
|
a) |
How does mapping 2% of the high-value pixels change the display of ocean areas?
(Hint: take a histogram of the display and check the display value range now used to display the 34% of pixels
representing the ocean.)
|
b) |
Try increasing the percentage of pixels mapped to 255 until you find a setting that in your opinion displays
ocean features adequately (you could for example try the following Max% cut-off values:
Max% cut-off: |
95 |
90 |
75 |
67 |
50 |
35 |
% of pixels mapped to 255: |
5 |
10 |
25 |
33 |
50 |
65 |
What cut-off would you say is needed for adequate display of ocean pixels in this image?
What effect does this have on the overall image display?
|
c) |
Assuming that you want to display features both in the ocean and on land,
how would you rate the performance of a linear stretch for this purpose?
|
|
Gaussian and Equalize re-display stretches
As you have seen in section 3.6, both Gaussian and Equalize stretches display data in a non-linear way.
They are therefore more likely to give an adequate re-display of both land and sea areas than the Autolinear stretch options
you have just tried.
Activity / Question 3
In this activity you will compare an Equalized display and two Gaussian displays with different cut-offs.
-
With the image active, check that the number of output levels in Stretch Options is set to 256.
-
Right-click on the image to open the Redisplay dialog and apply an Equalize stretch.
-
Select the whole image ( [CTRL+A] )and create a new histogram and a copy image,
each with the Equalize stretch applied (check the Apply Stretches box in the New dialog).
-
Activate the original image, open the Stretch Options dialogue and make sure the Min/Max for a Gaussian Stretch
are set to -3 / 3.
-
Right-click on the image to open the Redisplay dialog and apply this Gaussian stretch.
-
Create another histogram and copy of the image display (i.e. with the Gaussian stretch applied).
-
Activate the original image, open the Stretch Options dialog, and change the Min/Max settings for the Gaussian stretch
option to -2/2.
-
Right-click on the the original image, and apply this new version of the Gaussian stretch.
-
Create a third histogram and a copy image of the display, again with the (Gaussian) stretch applied.
You should now have three sets of image displays with corresponding histograms in your Bilko workspace:
|
i |
An Equalize redisplay image and histogram |
|
ii |
A Gaussian redisplay stretch and histogram with cut-offs at -3/3 standard deviations |
|
iii |
A Gaussian redisplay stretch and histogram with cut-offs at -2/2 standard deviations
|
a) |
How do these image displays compare with the autolinear Redisplay options you tried earlier?
Can you explain the differences?
(Hint: Compare the histograms to those for the Autolinear redisplays created in Activity/Question 2).
|
b) |
What are the main differences between these three displays?
Use the display histograms to help you explain these differences.
|
c) |
Which of these three redisplay stretches would you say presents the best display of both land and sea?
|
|
Logarithmic redisplay
You may have noticed that the Redisplay dialog contains a stretch option, which you have not used so far
- the logarithmic stretch. A logarithmic stretch is designed to display data with a frequency
distribution that is approximately log-normal (see
figure
(2K)).
After the application of a logarithmic stretch the frequency distribution of the display
will be approximately normal (Gaussian) (see
figure
(2K)).
Activity / Question 4
|
a) |
Based on the frequency distribution of data values for the ATS reflec_nadir_0550,
can you explain why a logarithmic stretch might be a good choice for displaying this data?
|
b) |
Apply a logarithmic redisplay stretch using the default Min/Max settings.
How would you improve the display of ocean features in this image?
|
|
Note:
In a Redisplay stretch both the Linear and Logarithmic Min/Max defaults are the highest and lowest values found in the data.
They are generally the best choice unless you have a good reason to change them -
for example if you know they are the result of an error in the data or if they represent a range of pixel values
of no interest to your study. Having used the defaults in the Redisplay stretch you can often improve the display further
with a Manual stretch, as shown in the answer to question 4b.
You are likely to find many instances of a log-normal frequency distribution in ocean data.
One well-known example is chlorophyll concentration derived from ocean colour measurements.
What redisplay stretch should you use?
The choice of redisplay stretch is important for achieving optimal display of your image data.
As you have seen above a histogram can help you with this choice.
The exercises below give some training in choosing a suitable Redisplay stretch for images with different
frequency distributions. Before starting these, close all open images and histograms, leaving only the file
structure window of the AATSR image.
Activity / Question 5
|
Open the btemp_nadir_1100 band from the AATSR image,
using the linear default option, and create a new histogram of the data.
|
a) |
Based on the frequency distribution of the data values what Redisplay stretch would you use - Logarithmic, Gaussian or Equalize?
(The display should reveal ocean features reasonably well while still giving some contrast for land areas.)
|
|
Clear the desktop by closing all open windows before moving onto the final question.
The image you will use for this is an ASAR Global Mode (GM) image from the Southern Ocean,
showing the B-15A iceberg heading for a collision with the Drygalski Ice Tongue near the US McMurdo
Research Station in Antarctica.
|
|
Answers:
(Resizable pop-ups)
Answer 1
Answer 2
Answer 3
Answer 4
Answer 5
Answer 6
Back up to:
Q1
Q2
Q3
Q4
Q5
|
Activity / Question 6
|
-
Open the image
ASA_GM1_1PNPDK20041130_145250_000009242032_00311_14393_4911.N1,
making sure the Extract box in the Open dialog is checked.
-
Select the Bands folder, and open the proc_data file.
-
Set the Extract dialog so that it opens columns 40 - 870 (X) and rows 7100 - 8100 (Y),
with a sampling of 2 in both X and Y.
-
In the Redisplay dialog set the null value to 0 and accept the linear default for the time being.
-
Make a new histogram of the image data.
|
a) |
Based on the frequency distribution of pixel values in this image, how do you think a logarithmic stretch would perform?
|
b) |
Try redisplaying the data with a Gaussian stretch (-2/2) and an Equalize stretch.
How do these two compare with the logarithmic stretch?
|
Although taking a histogram of the data values will usually help you decide on a suitable redisplay stretch,
there will inevitably be a many times when you are unsure about what to choose.
If in doubt the best way to achieve what you want is usually to try different alternatives, and see if the result shows the features you want to study.
|