00001 #ifndef vepl_gaussian_convolution_h_ 00002 #define vepl_gaussian_convolution_h_ 00003 //: 00004 // \file 00005 // \brief gaussian smoothing 00006 // 00007 // Gaussian filtering is an operation that replaces a pixel with the 00008 // average value of its surrounding pixels, in a certain neighbourhood, 00009 // according to a Gaussian distribution (with given sigma= std deviation). 00010 // (The window is cut when `cutoff' (default: 0.01) of the probability mass 00011 // lies out of the window.) 00012 // 00013 // Note that DataIn values must allow addition and multiplication with floats; 00014 // and that the result be expressible as DataOut, possibly after rounding. 00015 // Probably only float and double make sense as DataOut (?) 00016 // 00017 // As this is a separable filter, it is implemented as a row-based 1-D filter 00018 // followed by a column-based 1-D step. 00019 // 00020 // \author Peter Vanroose, K.U.Leuven (ESAT/PSI) 00021 // \date 7 October 2002 00022 // 00023 // \verbatim 00024 // Modifications 00025 // Peter Vanroose - 20 aug 2003 - changed parameter and return types from vil_image_view_base_sptr to vil_image_resource_sptr 00026 // \endverbatim 00027 00028 #include <vil/vil_image_resource.h> 00029 00030 //: gaussian smoothing with given sigma (default 1) 00031 vil_image_resource_sptr vepl_gaussian_convolution(vil_image_resource_sptr , double sigma=1, double cutoff=0.01); 00032 00033 #endif // vepl_gaussian_convolution_h_