00001 #ifndef __IFDistanceAosBarashOp__
00002 #define __IFDistanceAosBarashOp__
00003
00044 #include <stdio.h>
00045
00046 #include "IFMultiImageOp.hpp"
00047
00048 #include "Float3CImage.hpp"
00049
00050
00051 class IFDistanceAosBarashOp : public IFMultiImageOp
00052 {
00053 private:
00054
00055 int iter;
00056
00057 int psfSize;
00058 double tmin, tmax;
00059 FImage* distanceMapEdges;
00060
00061 double alpha;
00062
00063 double sigmaBlur;
00064 double c1;
00065
00066 bool iir;
00067
00068 protected:
00069
00070
00071
00072 virtual AnImage* greyFilter(AnImage* src, AnImage* dest=0);
00073 virtual AnImage* greySelectedFilter(AnImage* mask, AnImage* src, AnImage* dest=0);
00074
00075
00076
00077 virtual Float3CImage* scolorFilter(Float3CImage* src, Float3CImage* dest=0);
00078 virtual Float3CImage* scolorSelectedFilter(AnImage* mask, Float3CImage* src, Float3CImage* dest=0);
00079
00080
00081
00082
00083 virtual Float3CImage* fcolorFilter(Float3CImage* src, Float3CImage* dest=0);
00084 virtual Float3CImage* fcolorSelectedFilter(AnImage* mask, Float3CImage* src, Float3CImage* dest=0);
00085
00086 public:
00087
00088 IFDistanceAosBarashOp(FImage* edgeDistance=0, int iterations=1,
00089 int psfSz=5, double tMin=0.0, double tMax=20.0, double aalpha=0.01,
00090 double sigma=0.25, double ac1=0.33, bool colorFlag= false):IFMultiImageOp(1,colorFlag)
00091 {iter= iterations; tmin= tMin; tmax= tMax; distanceMapEdges=edgeDistance;
00092 alpha= aalpha; sigmaBlur=sigma; c1=ac1; psfSize= psfSz; }
00093 virtual ~IFDistanceAosBarashOp(){}
00094
00095 void setEdgeDistance(FImage* distanceMap){ distanceMapEdges= distanceMap; }
00096
00097 virtual void report(FILE* file){}
00098 };
00099
00100
00101 #endif