An official website of the United States government
Here’s how you know
Official websites use .gov A
.gov website belongs to an official government
organization in the United States.
Secure .gov websites use HTTPS A
lock
() or https:// means you’ve safely connected to
the .gov website. Share sensitive information only on official,
secure websites.
This program stretchs or remaps pixels values in a cube. Note that the same
stretch is applied to all bands within the cube. The underlying method for
remapping pixels is defined by a set of stretch pairs and is best described
using an example:
0:0
255:1
A stretch pair is two numbers separated by a colon. In this case, 0:0 and
255:1 comprise two stretch pairs. A pair is used to identify the mapping
of input pixels to output pixels where the colon is a delimiter
(i.e., input:output). Our first pair indicates input pixel values
of 0 will be mapped to an output 0, while the second pair indicates input
pixel values of 255 will be mapped to 1. All inputs between 0 and 255 will
be mapped linearly (e.g., 127.5 will be mapped to 0.5). Therefore,
the output cube
will only have pixel values between 0 and 1. Those input pixels below
0 will be mapped to LRS and above 255 to HRS. This mapping to special pixels
can be overridden. Because multiple pairs are allowed,
many different types of remappings can be accomplished. For example:
If you are having difficulty visualizing these stretches simply plot the
input:output pairs on graph paper and connect the dots or see some
of the examples. Note that the
input value of each pair is in ascending order. As a reminder,
all input pixel values less
than the input value for the first pair are mapped to LRS. Likewise,
all pixel values greater than the input value for the last pair are mapped
to HRS.
Make images smaller. Adjust binary stretch example.
Kim Sides
2003-05-13
Added application test
Stuart Sides
2003-05-16
Modified schema location from astogeology... to isis.astrogeology..."
Stuart Sides
2003-05-30
Made changes to application test truth files to reflect -O1 optimization
Stuart Sides
2003-07-29
Modified filename parameters to be cube parameters where necessary
Brendan George
2006-06-30
Fixed application test
Jeannie Walldren
2008-01-09
Modified stretch parameters (except PAIRS) to accept string instead of
double so that special pixels may be set to other special pixel values.
Eric Hyer
2009-04-30
Users can pass a file containing stretch pairs as well as inputing them
manually as before. Also, the input side of stretch pairs can optionally
be percentages instead of dn values.
Eric Hyer
2010-04-23
Added support for stretch files not ending in a newline. Also did some
code refactoring to eliminate duplicate code.
Parameters
Files
Input cube to stretch
Type
cube
File Mode
input
Filter
*.cub
The resultant stretched cube
Type
cube
File Mode
output
Pixel Type
real
Stretch Parameters
If true the input side of the pairs are interpreted as percentages.
The dn value which is used is the dn value at the specified percentage
of the input cube's histogram
Type
boolean
Default
False
Selects the method of pair data input. If true then read pairs from a
file. Otherwise read the stretch pairs from the "PAIRS" parameter
Type
boolean
Default
False
Exclusions
PAIRS
Inclusions
INPUTFILE
A string must be entered in the form of
Where the input values are in ascending order (increasing). There is
no limit to the number of pairs although each pair must be separated
by a space. The stretch that is entered will be applied to all bands
in the cube. By default "No Stretch" is applied which allows users
to remap only special pixels if desired.
Type
string
Internal Default
No Stretch
Read pairs from this file instead of entering them manually. Commented
lines are ignored and defined as beginning with a '#'. Pairs must be
separated by white space which may be new lines.
# example 1 of a file containing stretch pairs
0:0 1:10 15:255
# example 2 of a file containing stretch pairs
0:0
1:10
# this is a comment inside a file containing stretch pairs
15:255
Type
filename
File Mode
input
Double or alternate special pixel value used to replace all NULL
special pixels. For example all NULL pixels can be replaced with
-100.0. By default, the NULL special pixels will be left unchanged.
Type
string
Internal Default
NULL
Double or alternate special pixel value used to replace all LIS special pixels. For example
all LIS pixels can be replaced with 0.0. By default, the LIS
special pixels will be left unchanged.
Type
string
Internal Default
LIS
Double or alternate special pixel value used to replace all LRS special pixels. For example
all LRS pixels can be replaced with 0.0. By default, the LRS
special pixels will be left unchanged.
Type
string
Internal Default
LRS
Double or alternate special pixel value used to replace all HIS special pixels. For example
all HIS pixels can be replaced with 500.0. By default, the HIS
special pixels will be left unchanged.
Type
string
Internal Default
HIS
Double or alternate special pixel value used to replace all HRS special pixels. For example
all HRS pixels can be replaced with 500.0. By default, the HRS
special pixels will be left unchanged.
Type
string
Internal Default
HRS
Example 1
run stretch
This example shows a stretch operation using a binary type of stretch.
Command Line
stretch a Terra image. Use binary type of stretch.
Screenshot of GUI with non-double values filled in to
the special pixel parameters.
Input Image
Input image for stretch
Input image
Parameter Name:
FROM
This is the input image for the stretch examples.
Output Image
Output image for stretch
Output image showing results of the stretch application.
Parameter Name:
TO
This is the output image that results from swapping
special pixel values. Notice that there is no visible change since
all special pixel values have the same value.