By Jon Harman, Ph.D. (firstname.lastname@example.org)
Web site: www.DStretch.com
Originally presented at American Rock Art Research
28, 2005. Updated May, 2008.
Decorrelation stretch, an image enhancement technique first used in remote sensing, can be usefully applied to rock art. In pictograph images from Baja California, California, and Nevada I demonstrate its ability to bring out elements nearly invisible to the eye and to improve visualization of difficult sites. A decorrelation stretch plugin to the imaging program ImageJ is available from the author, free for personal use.
Cueva San Borjita, Baja California Sur.
Left: original, Center: decorrelation stretch in colorspace YDS,
Decorrelation stretch was developed at JPL.
For a history of development see .
has been used in remote
enhance multispectral images . NASA
used it to enhance Mars Rover images .
I have modified and implemented this technique in the DStretch plugin to ImageJ . The plugin has options intended to be useful in rock art research.
DStretch is a useful tool for archaeologists
involved in the
study and documentation of rock art.
Its enhancement techniques can bring out very faint pictographs
invisible to the eye. Subtle
differences in hue are enhanced which can give clues to superposition.
Pictographs can be enhanced for publication or presentation to viewers
capable (or inclined) to puzzle out faint elements.
Use of DStretch can be as simple as just hitting a button, but
also contains sophisticated tools for the manipulation of false color
images. Because the enhancement works
by increasing differences in hue, the technique gives better results
pictographs than petroglyphs.
The technique consists of applying a Karhunen-Loeve transform to the colors of the image. This diagonalizes the covariance (or optionally the correlation) matrix of the colors. Next the contrast for each color is stretched to equalize the color variances. At this point the colors are uncorrelated and fill the colorspace. Finally the inverse transform is used to map the colors back to an approximation of the original. Other names for related techniques are Principal Components Analysis and Hotelling transformation  . There is a good explanation of the mathematics involved on the web . The decorrelation stretch calculation produces a 3x3 transformation matrix that is then applied to the colors in the image. DStretch supports several different colorspaces (see below). The image is converted from RGB to the colorspace, the calculation and transformation is performed, and then the colors are converted back to RGB before writing into a digital image.
Each image enhances differently depending on the
distribution of colors, colorspace chosen, and whether the inverse
used to map the decorrelated colors back.
After some experience with the algorithm I am beginning to see
trends, but my observations must be considered preliminary at this
point. The most common color found
(in my experience) is red, followed by black, then white, then rarely
hues. Often the rock shelter or cave
wall is reddish or blackened. Thus
there are common types in the color distributions of pictograph images
and this causes there to be consistency in the decorrelation stretch
When investigating stretch possibilities in RGB
colorspace, I noticed
striking, enhancements in several red pictograph images.
I created an enhancement matrix that
reproduced those striking results and made it accessible from the
(CRGB button). This
enhancement gives consistent results over many different input color
It works well to enhance red pigment but suppresses white and
blacks. By bringing out the red
painting and suppressing the background shades it can help clarify
I also began to experiment with modifications to
colorspaces. The shape of the color distribution of an image can
be manipulated to effect the decorrelation stretch result. Based on my
experience with rock art images I developed several custom colorspaces
that can give good enhancements.
Figure 3. Burham Canyon (KER-273). Left: original. Right: CRGB. Note improved visibility of red pigments and the small creature at left center brought out by enhancement.
DStretch is a plugin to ImageJ which is a full-featured imaging program. It is written in Java and can run on PC’s, Mac’s and Linux computers. Information on its capabilities can be found at . This section will focus on the DStretch plugin features.
The program contains colorspace buttons which perform a decorrelation stretch in the colorspace. When the button is pressed the plugin calculates the covariance matrix of the image colors (within the chosen colorspace) and then determines the transformation. The transformation is a 3x3 matrix that multiplies the original colors to give the enhancement colors. If an area selection is made within the image the calculation will be restricted to the pixels inside the area. The transformation is then applied to the entire image. This allows the exclusion of parts of the image that may have little to do with the area of interest, say a green bush at the side of a pictograph panel. Different decorrelation results are possible by selecting different parts of the image.
Different colorspaces give different
results. I have implemented the algorithm in
the standard RGB and LAB colorspaces and also in the colorspaces I have
created myself: YDS, YBR, YBK, LDS, LRE. These colorspaces are
modifications of the YUV or LAB colorspaces that I have found to give
good decorrelation stretch results on images of rock art. The YDS
and LDS coorspaces are good for general enhancements and can bring out
faint yellow pigments. YBR and espeically LRE enhance reds.
YBK can help with black and blue pigments and also enhances yellows
The enhanced image is false color, i.e. the colors
in it can
be radically different from the original. The
between different hues can vary
a great deal and sometimes the enhanced image has poor contrast between
elements. DStretch (in expert mode) has
the ability to
shift the hues in the enhanced image to increase contrast.
Each image enhances differently, depending on its own unique distribution of colors. It is possible to save a transformation matrix that was calculated on one image and apply it to others. This can give more consistent transformations. I have saved several matrices that I have found useful . The user can access these matrices using the "Builtin" button.
Another useful enhancement technique, not related to decorrelation stretch, is the manipulation of the hue and saturation of the image. DStretch (in expert mode) can do hue histogram equalization and saturation stretching.
DStretch also contains a tool that allows a region of the enhanced image to be isolated by hue and then added back to the original image. This can be used to isolate an enhanced element then return it to the original image.
 ImageJ web site: http://rsb.info.nih.gov/ij/index.html
 Gillespie, et al. 1986: Color enhancement of highly correlated images. I. Decorrelation and HSI contrast stretches. Rem. Sens. Environ., 20, 209-235.
 Gonzalez and Wintz, 1977: "Digital Image Processing", Addison-Wesley, Reading, MA.
 Ronald E. Alley, 1996, Algorithm Theoretical Basis Document for Decorrelation Stretch, NASA, JPL.
 Mars Exploration Rover Mission Press Release, July 1, 2004, NASA,JPL:http://marsrovers.nasa.gov/gallery/press/opportunity/20040701a.html
Thanks to Bob Mark for the suggestion to
decorrelation stretch and for help in program debugging.
Thanks to Sheila Harman for advice and