00001
00002
00003
00004
00005
00006
00007
00008
00009 #ifndef HxGauss1dImgGtor_h
00010 #define HxGauss1dImgGtor_h
00011
00012 #include "HxSubscribedImgGtor.h"
00013 #include "HxPointZ.h"
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030 class HxGauss1dImgGtor : public HxSubscribedImgGtor
00031 {
00032 public:
00033 HxGauss1dImgGtor();
00034 virtual ~HxGauss1dImgGtor();
00035
00036 virtual void init(const HxTagList&);
00037
00038 virtual HxSizes domainSize() const;
00039 virtual HxVec3Double get(int x, int y, int z);
00040
00041 private:
00042 double _sigma;
00043 int _derivative;
00044 double _accuracy;
00045 int _maxSize;
00046 int _size;
00047
00048 int _filterSize;
00049 double* _filter;
00050
00051 static int filterWidth(
00052 double sigma, int deri,
00053 double acc, int maxlen);
00054 int makeFilter(
00055 double sigma, int deri, double acc,
00056 int fsize,int maxfsize);
00057 };
00058
00059 #endif