00001 #ifndef IMAGEANALYSIS_IMAGEBOXCARSMOOTHER_H 00002 #define IMAGEANALYSIS_IMAGEBOXCARSMOOTHER_H 00003 00004 #include <imageanalysis/ImageAnalysis/Image1DSmoother.h> 00005 00006 #include <casa/namespace.h> 00007 00008 namespace casa { 00009 00010 template <class T> class ImageBoxcarSmoother : public Image1DSmoother<T> { 00011 // <summary> 00012 // Top level interface for 1-D boxcar smoothing of images. 00013 // </summary> 00014 00015 // <reviewed reviewer="" date="" tests="" demos=""> 00016 // </reviewed> 00017 00018 // <prerequisite> 00019 // </prerequisite> 00020 00021 // <etymology> 00022 // Boxcar smooths an image in one dimension. 00023 // </etymology> 00024 00025 // <synopsis> 00026 // </synopsis> 00027 00028 public: 00029 00030 ImageBoxcarSmoother( 00031 const SPCIIT image, 00032 const Record *const region, 00033 const String& maskInp, 00034 const String& outname, Bool overwrite 00035 ); 00036 00037 // destructor 00038 ~ImageBoxcarSmoother() {} 00039 00040 String getClass() const { const static String s = "ImageBoxcarSmoother"; return s; } 00041 00042 // set witdth of boxcar 00043 void setWidth(uInt w); 00044 00045 protected: 00046 00047 SPIIT _smooth( 00048 const ImageInterface<T>& image 00049 ) const; 00050 00051 private: 00052 00053 uInt _width; 00054 00055 // disallow default constructor 00056 ImageBoxcarSmoother(); 00057 00058 void _boxcarSmooth(Array<T>& out, const Array<T>& in) const ; 00059 }; 00060 } 00061 00062 #ifndef AIPS_NO_TEMPLATE_SRC 00063 #include <imageanalysis/ImageAnalysis/ImageBoxcarSmoother.tcc> 00064 #endif 00065 00066 #endif