Go to the documentation of this file.00001 #ifndef vipl_dilate_disk_h_
00002 #define vipl_dilate_disk_h_
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037 #include <vipl/filter/vipl_filter_2d.h>
00038
00039
00040 template <class ImgIn,class ImgOut,class DataIn,class DataOut,VCL_DFL_TYPE_PARAM_STLDECL(PixelItr, vipl_trivial_pixeliter) >
00041 class vipl_dilate_disk : public vipl_filter_2d<ImgIn,ImgOut,DataIn,DataOut,PixelItr>
00042 {
00043
00044 private:
00045 float radius_;
00046 public:
00047 float radius() const { return radius_;}
00048 float & ref_radius() { return radius_;}
00049 void put_radius(float v){ radius_ = v;}
00050
00051 private:
00052 bool** mask_;
00053 public:
00054 bool** mask() const { return mask_;}
00055 protected:
00056 bool**& ref_mask() { return mask_;}
00057 void put_mask(bool** v) { mask_ = v;}
00058
00059
00060 public:
00061 inline vipl_dilate_disk(float r=1)
00062 : vipl_filter_2d<ImgIn,ImgOut,DataIn,DataOut,PixelItr>(), radius_(r), mask_(0) {}
00063 inline vipl_dilate_disk(vipl_dilate_disk const& A)
00064 : vipl_filter_2d<ImgIn,ImgOut,DataIn,DataOut,PixelItr>(A), radius_(A.radius()), mask_(0) {}
00065 inline ~vipl_dilate_disk() {}
00066
00067
00068 bool section_applyop();
00069
00070 bool preop();
00071 bool postop();
00072 };
00073
00074 #ifdef INSTANTIATE_TEMPLATES
00075 #include "vipl_dilate_disk.txx"
00076 #endif
00077
00078 #endif // vipl_dilate_disk_h_