00001 #ifndef __CGilboaLinearDiffOp__ 00002 #define __CGilboaLinearDiffOp__ 00003 00004 00030 #include <stdio.h> 00031 00032 #include "AbsCImageFilter.hpp" 00033 00034 00035 class CGilboaLinearDiffOp : public AbsCImageFilter 00036 { 00037 protected: 00038 00039 // basic filter parameters 00040 00041 int w, h; 00042 00043 int iterMax; 00044 double tau; 00045 00046 double theta; 00047 double sigma; 00048 00049 protected: 00050 00051 // conductivity 00052 virtual RComplex cN(CImage* image, int x, int y); 00053 virtual RComplex cW(CImage* image, int x, int y); 00054 virtual RComplex cS(CImage* image, int x, int y); 00055 virtual RComplex cE(CImage* image, int x, int y); 00056 00057 00058 public: 00059 00060 CGilboaLinearDiffOp(int iterations=8, double t=0.2, double ctheta=0.001, double asigma=0.0); 00061 virtual ~CGilboaLinearDiffOp(){} 00062 00063 // single shot filtering 00064 virtual CImage* filter(CImage* src, CImage* dest=0); 00065 virtual CImage* selectedFilter(AnImage* mask, CImage* src, CImage* dest=0); 00066 00067 virtual void report(FILE* file){ fprintf(file,"Real Heat flow Blur Operator\n"); } 00068 }; 00069 00070 00071 #endif