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_
1.7.5.1