Viewing contents of file '../idllib/astron/contrib/bhill/sqrtscl.pro'
FUNCTION SQRTSCL, Image, MINVAL=Minval, MAXVAL=Maxval, TOP=top
;+
; NAME:
;       SQRTSCL
;
; PURPOSE:
;       This scales an image using a square root function table.
;
; CATEGORY:
;       Image processing
;
; CALLING SEQUENCE:
;       Result = SQRTSCL( Image )
;
; INPUT POSITIONAL PARAMETERS:
;       Image:    Image to be scaled; can actually be any array.
;
; INPUT KEYWORD PARAMETERS:
;       MINVAL:   Minimum value for square root stretch.  Default=min(Image)
;       MAXVAL:   Maximum value for square root stretch.  Default=max(Image)
;       TOP:      Top value for output.  Default=!D.table_size-1
;
; FUNCTION RESULT:
;       Byte array with sqrt stretch.  Negative and zero values are
;       included nicely in the stretch range instead of being clipped.
;
; MODIFICATION HISTORY:
;       Written by:     RSH, RITSS, 29 August 2000
;-

IF n_params(0) LT 1 THEN BEGIN
    print, 'CALLING SEQUENCE:  Result=SQRTSCL(Image)'
    print, 'KEYWORD PARAMETERS:  MINVAL, MAXVAL, TOP'
    RETURN,-1
ENDIF

IF n_elements(minval) LT 1 THEN minval=min(image)
IF n_elements(maxval) LT 1 THEN maxval=max(image)
IF n_elements(top) LT 1 THEN top=!D.table_size-1

sqrttab = byte(round(sqrt(indgen(top+1))/sqrt(top)*top))
RETURN,sqrttab[bytscl(image,minval,maxval,top=top)]
END