contrib/tbl/vepl/vepl_monadic.h
Go to the documentation of this file.
00001 #ifndef vepl_monadic_h_
00002 #define vepl_monadic_h_
00003 //:
00004 // \file
00005 // \brief apply any (fixed) function to all pixels
00006 //
00007 //   The only parameter to be passed to the constructor must be a (monadic)
00008 //   function that takes a pixel value from the input image and produces
00009 //   a pixel value of the output image, i.e., its signature must be
00010 //   DataOut f(DataIn const&).
00011 //   A typical example is, e.g., log(), but any point operator (like e.g.
00012 //   thresholding) could be implemented through this more general monadic IP
00013 //   operator, notably shift or scale of intensity values.
00014 //
00015 //   Note that the input and output images are allowed to be identical.
00016 //
00017 // \author Peter Vanroose, K.U.Leuven (ESAT/PSI)
00018 // \date   7 October 2002
00019 //
00020 // \verbatim
00021 //  Modifications
00022 //   Peter Vanroose - 20 aug 2003 - changed parameter and return types from vil_image_view_base_sptr to vil_image_resource_sptr
00023 // \endverbatim
00024 
00025 #include <vil/vil_image_resource.h>
00026 
00027 //: replace pixels by their absolute value
00028 vil_image_resource_sptr vepl_monadic_abs(vil_image_resource_sptr );
00029 //: replace pixels by their square root
00030 vil_image_resource_sptr vepl_monadic_sqrt(vil_image_resource_sptr );
00031 //: replace pixels by their square
00032 vil_image_resource_sptr vepl_monadic_sqr(vil_image_resource_sptr );
00033 //: replace pixels by a linear distortion
00034 vil_image_resource_sptr vepl_monadic_shear(vil_image_resource_sptr , double shift, double scale);
00035 
00036 #endif // vepl_monadic_h_