// The following text is included in the main documentation page by doxygen
/*! \mainpage vipl : Templated Image Processing Library
* This library is essentially just a repository of template definition files,
* i.e., the actual C++ implementations of several useful (and less useful ;-)
* image processing algorithms.
* It houses several IP filters, and it is fairly easy to write a new one,
* by just starting from an existing one (e.g., \c vipl_threshold ).
*
* Every class is templated on five types:
* - The input image (e.g. \c vil_image_view<T> , but it could as well be e.g.
*   \c vnl_matrix<double> or your own array-type class).
* - The output image (and indeed, it may be different from the input type,
*   so a simple "copy pixels" IP algorithm could be used as an image type
*   converter between any two types of image-like storage!)
*   (This is actually what \c vipl_convert does.)
* - The data type of a single pixel of the input image.
*   This has to be specified separately, since the input image type does not
*   necessarily reveal its pixel type; actually, it could support many
*   different pixel types, as is e.g. the case for \c vil_image_view<T> .
* - The data type of a pixel in the output image.
* - Optionally, the pixel iterator to be used.  By default, a normal "left-
*   right, top-bottom" iterator is being used: \c vipl_trivial_pixeliter .
*
* The common parent class of all filters is \c vipl_filter (through its derived
* class \c vipl_filter_2d).  There, all image iteration magic is taken care
* of.  You, as a writer of a new filter, only have to implement the filter on
* a single "section", which is the part of the image that has been loaded in
* memory.  Often, for relatively small images, this is just the whole image,
* but \c vipl allows you to apply any of its filters on a very large image
* which cannot be loaded in memory at once, without you having to change the
* implementation.
*
* For the most common case, viz. input and output image are of type
* \c vil_image_view<T>, have a look at the \c vepl library.
* The old \c vil1 image representation is interfaced in \c vepl1.
*
* This library was originally designed by Terry Boult for the TargetJr
* package, and then ported to vxl by Peter Vanroose.
*/
