00001 #ifndef vepl1_monadic_h_ 00002 #define vepl1_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 28 April 2001 00019 00020 #include <vil1/vil1_image.h> 00021 00022 //: replace pixels by their absolute value 00023 vil1_image vepl1_monadic_abs(vil1_image const& ); 00024 //: replace pixels by their square root 00025 vil1_image vepl1_monadic_sqrt(vil1_image const& ); 00026 //: replace pixels by their square 00027 vil1_image vepl1_monadic_sqr(vil1_image const& ); 00028 //: replace pixels by a linear distortion 00029 vil1_image vepl1_monadic_shear(vil1_image const& , double shift, double scale); 00030 00031 #endif // vepl1_monadic_h_