i.colors.enhance - GRASS manual
Author: GRASS Development Team
Description: i.colors.enhance: Performs auto-balancing of colors for RGB images.
Keywords: imagery, RGB, satellite, colors

## NAME

i.colors.enhance - Performs auto-balancing of colors for RGB images.

## KEYWORDS

imagery, RGB, satellite, colors

## SYNOPSIS

i.colors.enhance
i.colors.enhance --help
i.colors.enhance [-fprs] red=name green=name blue=name [strength=float] [--help] [--verbose] [--quiet] [--ui]

### Flags:

-f
  Extend colors to full range of data on each channel
-p
  Preserve relative colors, adjust brightness only
-r
  Reset to standard color range
-s
  Process bands serially (default: run in parallel)
--help
  Print usage summary
--verbose
  Verbose module output
--quiet
  Quiet module output
--ui
  Force launching GUI dialog

### Parameters:

red=name [required]
  Name of red channel
green=name [required]
  Name of green channel
blue=name [required]
  Name of blue channel
strength=float
  Cropping intensity (upper brightness level)
  Options: 0-100
  Default: 98

## DESCRIPTION

i.colors.enhance auto-balances and enhances the color channels of a RGB image (e.g. from Landsat) to provide a more natural color mixture. Only the color table of each image band is modified, the base data remains untouched.

The module works by calculating a histogram for each color channel and removing an adjustable amount of outliers from either end before recalibrating the color scale with r.colors.

It will work with any 8-bit RGB imagery set and the script is easily modified to work with other datasets of greater band-depth.

## NOTES

Depending on the image, it may or may not be advantageous to use the -p flag to preserve the relative color scaling. You will have to experiment with the different options to find a setting that works best for your particular imagery.

The strength option should generally be set in the 90-99 range. The lower the number, the more saturated the image becomes. It represents the percentage cut-off for the top end of the color histogram curve. The lower end is fixed at 2% of the area under the curve.

For quicker execution of this module on large images you can achieve largely similar results by switching to a coarser resolution before the running of the module (using g.region) and then back to the original resolution afterwards.

## EXAMPLE

North Carolina sample dataset example with Landsat data:

    g.region raster=lsat7_2002_10 -p
    d.rgb blue=lsat7_2002_10 green=lsat7_2002_20 red=lsat7_2002_30
    d.barscale at=55.3125,93.125 bcolor=white text_pos=over

    i.colors.enhance blue=lsat7_2002_10 green=lsat7_2002_20 red=lsat7_2002_30 strength=95
    d.rgb blue=lsat7_2002_10 green=lsat7_2002_20 red=lsat7_2002_30
    d.barscale at=55.3125,93.125 bcolor=white text_pos=over

Uncorrected RGB composite of Landsat ETM channels B/G/R

Color corrected RGB composite of Landsat ETM channels B/G/R

## TODO

The strength option requires further refinement.

## SEE ALSO

d.rgb, g.region, i.oif, r.colors, r.composite, r.univar

## AUTHORS

Markus Neteler, Trento, Italy
M. Hamish Bowman, Dept. Marine Science, Otago University, New Zealand

## SOURCE CODE

Available at: i.colors.enhance source code (history)

Latest change: Sunday Oct 19 00:09:21 2025 in commit: 5f20320dc7ec7bc36d9a8f45414d34349e1d9500

Main index | Imagery index | Topics index | Keywords index | Graphical index | Full index

© 2003-2026 GRASS Development Team, GRASS 8.5.1dev Reference Manual