00001 #ifndef __KPeronaMalikFilter__
00002 #define __KPeronaMalikFilter__
00003
00004
00005
00029 #include <stdio.h>
00030
00031 #include "AnImage.hpp"
00032 #include "AbsRImageFilter.hpp"
00033
00034 #include "AbsRImageFlow.hpp"
00035
00036 class KPeronaMalikFilter : public AbsRImageFilter
00037 {
00038 protected:
00039
00040 RImage* I0;
00041 RImage* I;
00042
00043 double lambda;
00044
00045 int niterations;
00046 double alpha;
00047
00048 AbsRImageFlow* perona;
00049
00050 protected:
00051
00052 virtual void operations(RImage& result);
00053 virtual void operations(AnImage& mask, RImage& result);
00054
00055 public:
00056
00057 KPeronaMalikFilter(int n, double ralpha, double alambda=0.0);
00058 KPeronaMalikFilter(int n, double ralpha, double alambda, double beta);
00059 virtual ~KPeronaMalikFilter(){delete perona;}
00060
00061
00062 virtual RImage* filter(RImage* src, RImage* dest=0);
00063 virtual RImage* selectedFilter(AnImage* mask, RImage* src, RImage* dest=0);
00064
00065 virtual void report(FILE* file){}
00066 };
00067
00068
00069 #endif