NAME
Prima::IPA - Image Processing Algorithms
DESCRIPTION
IPA stands for Image Processing Algorithms and represents the library of image processing operators and functions. IPA is based on the Prima toolkit ( http://www.prima.eu.org ), which in turn is a perl-based graphic library. IPA is designed for solving image analysis and object recognition tasks in perl.
Note: This module overrides old IPA
module.
USAGE
IPA works mostly with grayscale images, which can be loaded or created by means of Prima toolkit. See Prima::Image for the information about Prima::Image
class functionality. IPA methods are grouped in several modules, that contain the specific functions. The functions usually accept one or more images and optional parameter hash. Each function has its own set of parameters. If error occurs, the functions call die
, so it is advisable to use eval
blocks around the calls.
The modules namespaces can be used directly, e.g. use Prima::IPA::Local qw(/./)
, use Prima::IPA::Point qw(/./)
etc, with each module defining its own set of exportable names. In case when all names are to be exported, it is possible to use IPA.pm
exporter by using use Prima::IPA qw(Local Point)
syntax, which is equivalent to two separate 'use'
calls above. Moreover, if all modules are to be loaded and namespace exported, special syntax use Prima::IPA 'all'
is available.
For example, a code that produces a binary thresholded image out of a 8-bit grayscale image:
use Prima;
use Prima::IPA qw(Point);
my $i = Prima::Image-> load('8-bit-grayscale.gif');
die "Cannot load:$@\n" if $@;
my $binary = threshold( $i, minvalue => 128);
The abbreviations for pixel types are used, derived from the im::XXX
image type constants, as follows:
im::Byte - 8-bit unsigned integer
im::Short - 16-bit signed integer
im::Long - 32-bit signed integer
im::Float - float
im::Double - double
im::Complex - complex float
im::DComplex - complex double
Each function returns the newly created image object with the result of the operation, unless stated otherwise in API.
MODULES
Prima::IPA::Geometry - mapping pixels from one location to another
Prima::IPA::Point - single pixel transformations and image arithmetic
Prima::IPA::Local - methods that produce images where every pixel is a function of pixels in the neighborhood
Prima::IPA::Global - methods that produce images where every pixel is a function of all pixels in the source image
Prima::IPA::Region - region data structures
Prima::IPA::Morphology - morphological operators
Prima::IPA::Misc - miscellaneous uncategorized routines
REFERENCES
M.D. Levine. Vision in Man and Machine. McGraw-Hill, 1985.
R. Deriche. Using Canny's criteria to derive a recursively implemented optimal edge detector. International Journal on Computer Vision, pages 167-187, 1987.
R. Boyle and R. Thomas Computer Vision. A First Course, Blackwell Scientific Publications, 1988, pp 32 - 34.
Image Processing Learning Resources. http://www.dai.ed.ac.uk/HIPR2/hipr_top.htm
William K. Pratt. Digital Image Processing. John Wiley, New York, 2nd edition, 1991
John C. Russ. The Image Processing Handbook. CRC Press Inc., 2nd Edition, 1995
L. Vincent & P. Soille. Watersheds in digital spaces: an efficient algorithm based on immersion simulations. IEEE Trans. Patt. Anal. and Mach. Intell., vol. 13, no. 6, pp. 583-598, 1991
L. Vincent. Morphological Grayscale Reconstruction in Image Analysis: Applications and Efficient Algorithms. IEEE Transactions on Image Processing, vol. 2, no. 2, April 1993, pp. 176-201.
J. Canny, "A computational approach to edge detection, " IEEE Transactions on Pattern Analysis and Machine Intelligence, vol. 8, pp. 679--698, 1986. 18 Weber and Malik
Tony Lindeberg . "Edge Detection and Ridge Detection with Automatic Scale Selection ". International Journal of Computer Vision, vol. 30, n. 2, pp. 77--116, 1996.
SEE ALSO
COPYRIGHT AND LICENSE
(c) 1997-2002 The Protein Laboratory, University of Copenhagen (c) 2003-2007 Dmitry Karasik
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
AUTHORS
Anton Berezin <tobez@tobez.org>, Vadim Belman <voland@lflat.org>, Dmitry Karasik <dmitry@karasik.eu.org>