cquant
quantize and reduce colours in 8-bit images
($out, $lut) = cquant($image [,$ncols]);
This function does color reduction for <=8bit displays and accepts 8bit RGB and 8bit palette images. It
does this through an interface to the ppm_quant routine from the pbmplus package that implements the
median cut routine which intellegently selects the 'best' colors to represent your image on a <= 8bit
display (based on the median cut algorithm). Optional args: $ncols sets the maximum nunmber of colours
used for the output image (defaults to 256). There are images where a different color reduction scheme
gives better results (it seems this is true for images containing large areas with very smoothly changing
colours).
Returns a list containing the new palette image (type PDL_Byte) and the RGB colormap.
interlrgb
Make an RGB image from a palette image and its lookup table.
$rgb = $palette_im->interlrgb($lut)
Input should be of an integer type and the lookup table (3,x,...). Will perform the lookup for any
N-dimensional input pdl (i.e. 0D, 1D, 2D, ...). Uses the index command but will not dataflow by default.
If you want it to dataflow the dataflow_forward flag must be set in the $lut ndarray (you can do that by
saying $lut->set_dataflow_f(1)).
rgbtogr
Converts an RGB image to a grey scale using standard transform
$gr = $rgb->rgbtogr
Performs a conversion of an RGB input image (3,x,....) to a greyscale image (x,.....) using standard
formula:
Grey = 0.301 R + 0.586 G + 0.113 B
bytescl
Scales a pdl into a specified data range (default 0-255)
$scale = $im->bytescl([$top])
By default $top=255, otherwise you have to give the desired top value as an argument to "bytescl".
Normally "bytescl" doesn't rescale data that fits already in the bounds 0..$top (it only does the type
conversion if required). If you want to force it to rescale so that the max of the output is at $top and
the min at 0 you give a negative $top value to indicate this.