ImageRGB(B) User Contributed Perl Documentation ImageRGB(B) NAME PDL::ImageRGB -- some utility functions for RGB image data handling DESCRIPTION Collection of a few commonly used routines involved in handling of RGB, palette and grayscale images. Not much more than a start. Should be a good place to exercise some of the thread/map/clump PP stuff. Other stuff that should/could go here: o color space conversion o common image filters o image rebinning SYNOPSIS use PDL::ImageRGB; FUNCTIONS 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 piddle (you can do that by saying $lut->set_dataflow_f(f)). 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. BUGS This package doesn't yet contain enough useful functions! AUTHOR Copyright 1997 Christian Soeller <c.soeller@auck- land.ac.nz> All rights reserved. There is no warranty. You are allowed to redistribute this software / documentation under certain conditions. For details, see the file COPY- ING in the PDL distribution. If this file is separated from the PDL distribution, the copyright notice should be included in the file. perl v5.6.1 2002-04-08 ImageRGB(B)