LOGSCL Name
LOGSCL Purpose
This is a utility routine to perform a log intensity transformation
on an image. For exponent values greater than 1.0, the upper and
lower values of the image are compressed and centered on the mean.
Larger exponent values provide steeper compression. For exponent values
less than 1.0, the compression is similar to gamma compression. (See
IMGSCL.) See pages 68-70 in _Digital Image Processing with MATLAB_
by Gonzales, Wood, and Eddins. The function is used to improve contrast
in images.
Author
FANNING SOFTWARE CONSULTING
David Fanning, Ph.D.
1645 Sheely Drive
Fort Collins, CO 80526 USA
Phone: 970-221-0438
E-mail: david@idlcoyote.com
Coyote's Guide to IDL Programming: http://www.idlcoyote.com
Category
Utilities Calling Sequence
outputImage = LOGSCL(image)
Arguments
image: The image to be scaled. Written for 2D images, but arrays
of any size are treated alike.
Keywords
EXPONENT: The exponent in a log transformation. By default, 4.0.
MEAN: Values on either side of the mean will be compressed by the log.
The value is a normalized value between 0.0 and 1.0. By default, 0.5.
NEGATIVE: If set, the "negative" of the result is returned.
MAX: Any value in the input image greater than this value is
set to this value before scaling.
MIN: Any value in the input image less than this value is
set to this value before scaling.
OMAX: The output image is scaled between OMIN and OMAX. The
default value is 255.
OMIN: The output image is scaled between OMIN and OMAX. The
default value is 0.
Return Value
outputImage: The output, scaled into the range OMIN to OMAX. A byte array.
Common Blocks
None.
Examples
cgLoadCT, 0 ; Gray-scale colors.
image = cgDemoData(22) ; Load image.
cgImage, image ; No contrast.
cgImage, LogScl(image) ; Improved contrast.
cgImage, LogScl(image, Exponent=10, Mean=0.65) ; Even more contrast.
cgImage, LogScl(image, /Negative, Exponent=5) ; A negative image.
Restrictions
Requires SCALE_VECTOR from the Coyote Library:
http://www.idlcoyote.com/programs/scale_vector.pro
Modification History
Written by: David W. Fanning, 20 February 2006.
Fixed a problem with output scaling. 1 July 2009. DWF (with input from Bo Milvang-Jensen).