00001 #ifndef __ColorShockFilter__
00002 #define __ColorShockFilter__
00003
00004
00005
00027 #include <stdio.h>
00028
00029 #include "AnImage.hpp"
00030 #include "RImage.hpp"
00031
00032 #include "ARColorImageFilter.hpp"
00033
00034 #include "ShockFlow.hpp"
00035
00036 class ColorShockFilter : public ARColorImageFilter
00037 {
00038 protected:
00039
00040 double tau;
00041
00042 int niterations;
00043 double alpha;
00044
00045 RImage* Nxy;
00046
00047 ShockFlow shock;
00048
00049 protected:
00050
00051 virtual double g(double indicator);
00052
00053 virtual void operations(Real3CImage& result, Real3CImage& image);
00054 virtual void operations(AnImage& mask, Real3CImage& result, Real3CImage& image);
00055
00056 public:
00057
00058 ColorShockFilter(int n=50, double ralpha=0.05, double atau=0.1);
00059 virtual ~ColorShockFilter(){}
00060
00061
00062
00063 virtual Real3CImage* filter(Real3CImage* src, Real3CImage* dest=0);
00064 virtual Real3CImage* selectedFilter(AnImage* mask, Real3CImage* src, Real3CImage* dest=0);
00065
00066
00067
00068 virtual void report(FILE* file){}
00069 };
00070
00071
00072 #endif