00001 #ifndef __FDistanceLodHeatFlowOp__
00002 #define __FDistanceLodHeatFlowOp__
00003
00004
00044 #include <stdio.h>
00045
00046 #include "AbsFImageFilter.hpp"
00047
00048 #include "FThomasLS.hpp"
00049
00050 class FDistanceLodHeatFlowOp : public AbsFImageFilter
00051 {
00052 protected:
00053
00054
00055
00056 int w, h;
00057
00058 int iterMax;
00059
00060 float tmin, tmax;
00061
00062 FThomasLS* hThomasLS;
00063 FThomasLS* vThomasLS;
00064
00065 FImage* distanceMapEdges;
00066
00067 protected:
00068
00069 virtual float getTau(int x, int y);
00070
00071 public:
00072
00074 FDistanceLodHeatFlowOp(FImage* edgeDistance=0, int iterations=1, float t0= 0.0, float tMax=20.0);
00075 virtual ~FDistanceLodHeatFlowOp(){}
00076
00077 void setEdgeDistance(FImage* distanceMap){ distanceMapEdges= distanceMap; }
00078
00079
00080 virtual FImage* filter(FImage* src, FImage* dest=0);
00081 virtual FImage* selectedFilter(AnImage* mask, FImage* src, FImage* dest=0);
00082
00083 virtual void report(FILE* file){ fprintf(file,"Real Recursive 2d Blur Operator\n"); }
00084 };
00085
00086
00087 #endif