stretch
Remaps pixel values in a cube
0:0 255:1A 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:
Inverse Stretch 0:255 255:0 Piece-wise Linear Stretch 20:0.0 50:0.5 125:1.0 Saw-tooth Stretch 0:0.0 50:1.0 100:0.0 200:1.0 Binary stretch 0:0.0 49.9999:0.0 50:1.0.0 79.9999:1.0 80:0.0 255:0.0If 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.
Categories
Related Objects and Documents
Applications
History
Jim Torson | 1990-11-17 | Original version |
Jeff Anderson | 2002-09-17 | Ported to Isis 3.0 |
K Teal Thompson | 2002-12-03 | Add examples |
K Teal Thompson | 2003-04-04 | 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
Type | cube |
---|---|
File Mode | input |
Filter | *.cub |
Type | cube |
---|---|
File Mode | output |
Pixel Type | real |
Stretch Parameters
Type | boolean |
---|---|
Default | False |
Type | boolean |
---|---|
Default | False |
Exclusions |
|
Inclusions |
|
Type | string |
---|---|
Internal Default | No Stretch |
# 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 |
Type | string |
---|---|
Internal Default | NULL |
Type | string |
---|---|
Internal Default | LIS |
Type | string |
---|---|
Internal Default | LRS |
Type | string |
---|---|
Internal Default | HIS |
Type | string |
---|---|
Internal Default | HRS |
Example 1
run stretch
Command Line
stretch f=../IN/peaks.cub:4 t=OUT/stretchBin p=\"0.:0 101.9:0 102.:255 200.:255 200.1:0. 255.:0.\"
GUI Screenshot
Example Gui
stretch GuiScreenshot of GUI with parameters filled in to perform a stretch operation on the input image.
Input Images
Input image for stretch
Input image
Parameter Name:
FROM
This is the input image for the stretch examples.
Output Image
Example 2
run stretch
Command Line
stretch f=../IN/peaks.cub:4 t=OUT/stretchDark p=\"0.:0 50.:255 255.:255.\"
GUI Screenshot
Example Gui
stretch GuiScreenshot of GUI with parameters filled in to perform a stretch operation on the input image.
Input Images
Input image for stretch
Input image
Parameter Name:
FROM
This is the input image for the stretch examples.
Explanation image for stretch
graph demonstrationThis is a graph demonstrating dark data enhancement.
Output Image
Example 3
run stretch
Command Line
stretch f=../IN/peaks.cub:4 t=OUT/stretchLight p=\"0.:0 84.:0 255.:255.\"
GUI Screenshot
Example Gui
stretch GuiScreenshot of GUI with parameters filled in to perform a stretch operation on the input image.
Input Images
Input image for stretch
Input image
Parameter Name:
FROM
This is the input image for the stretch examples.
Explanation image for stretch
graph demonstrationThis is a graph demonstrating light data enhancement.
Output Image
Example 4
run stretch
Command Line
stretch f=../IN/peaks.cub:4 t=OUT/stretchInv p=\"0.:255 255.:0.\"
GUI Screenshot
Example Gui
stretch GuiScreenshot of GUI with parameters filled in to perform an inverse stretch operation on the input image.
Input Images
Input image for stretch
Input image
Parameter Name:
FROM
This is the input image for the stretch examples.
Explanation image for stretch
graph demonstrationThis is a graph demonstrating the inverse stretch.
Output Image
Example 5
run stretch
Command Line
stretch f=peaks.cub:4 t=stretch NULL=lis Lis=LR Lr=hi his=Hr
Hr=n
GUI Screenshot
Example Gui
stretch GuiScreenshot 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.