// The following text is included in the main documentation page by doxygen
/*! \mainpage (mil : Manchester's Image Library) - Now replaced by vil and vimt
* The functionality of this library is now completely replaced by vil and vimt
*
* Please convert all your code to using vil and vimt instead.  mil will be 
* removed from the repository after a suitable grace period.
*
* Provides a set of image classes, derived from mil_image, which can be used
* as `views' on actual image data.
*
* The images use pointer arithmetic to get at the pixel values, so store pointers
* to the start of each plane, and integers indicating how to get to neighbours in
* the x, y (and z) directions.
*
* The most commonly used classes are likely to be mil_image_2d_of<T> and
* mil_image_3d_of<T> templated multi-plane images.
*
* The advantages of this approach are
* - It is actually faster than pointer indirection on most architectures
* - It allows one to access non-contiguous data as if it is a single plane
* - One can use it to wrap up other image classes transparently.
* - It is simple to extend to 3D images, and avoids huge arrays of pointers
* - It allows 2D views of 3D images easily.
*
* \subsection CAVEAT User
* mil will never enter core VXL in its current form. We hope to port some
* of the mil functionality into vil1, and then use mil just to provide
* registration information, and interface similarity between 2, 3 and 4D images.
*
* \subsection pyr Image Pyramids
* Image pyramids (mil_image_pyramid) are stacks of images, assumed to have lower
* resolution as one goes up the stack.
*
* They can be build using mil_image_pyramid_builder objects such as
* - mil_gaussian_pyramid_builder_2d
* - mil_gaussian_pyramid_builder_2d_general
*
* \subsection Interp Interpolation
* Interpolation functions include
* - mil_bilin_interp_2d (Fast interpolation with no checks on image size - seg fault if outside)
* - mil_safe_bilin_interp_2d (Check inside image, if not, return zero)
* - mil_safe_extend_bilin_interp_2d (Bilinear, if outside return value at nearest edge pixel)
*
* \subsection Sampling Sampling
* Profiles can be sampled using mil_sample_profile_2d
*
* \subsection Filters Filters
* Various image filters have been implemented for the mil_image_2d_of<T> classes,
* including
* - mil_algo_exp_filter_2d<srcT,destT>  (applies exponential filter)
* - mil_algo_line_filter<T> (Looks for line like structures)
* - mil_algo_grad_filter_2d<srcT,destT> (Computes gradient images)
*
* These can be applied to vil1_image objects by creating mil_image_2d_of<T> as
* wrappers around the vil1_image objects (though care should be taken to
* ensure that the destination images are of the correct size, since the wrapper
* cannot resize them - it will create new data space on the heap if the size is wrong).
*
* Note that in general one should use classes in vepl and vipl (the image processing library)
* for image filtering.
*/
