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 //:
00005 // \file
00006 // \brief apply any (fixed) function to all pixels
00007 //
00008 //   The only parameter to be passed to the constructor must be a (monadic)
00009 //   function that takes a pixel value from the input image and produces
00010 //   a pixel value of the output image, i.e., its signature must be
00011 //   DataOut f(DataIn const&).
00012 //   A typical example is, e.g., log(), but any point operator (like e.g.
00013 //   thresholding) could be implemented through this more general monadic IP
00014 //   operator, notably shift or scale of intensity values.
00015 //
00016 //   Note that the input and output images are allowed to be identical.
00017 //
00018 // \author Peter Vanroose, K.U.Leuven (ESAT/PSI)
00019 // \date   28 April 2001
00020 
00021 #include <vil1/vil1_image.h>
00022 
00023 //: replace pixels by their absolute value
00024 vil1_image vepl_monadic_abs(vil1_image const& );
00025 //: replace pixels by their square root
00026 vil1_image vepl_monadic_sqrt(vil1_image const& );
00027 //: replace pixels by their square
00028 vil1_image vepl_monadic_sqr(vil1_image const& );
00029 //: replace pixels by a linear distortion
00030 vil1_image vepl_monadic_shear(vil1_image const& , double shift, double scale);
00031 
00032 #endif // vepl_monadic_h_