00001 #ifndef __ICoherenceEnhancementDiffusionOp__ 00002 #define __ICoherenceEnhancementDiffusionOp__ 00003 00026 #include <stdio.h> 00027 00028 #include "IMultiImageOp.hpp" 00029 00030 #include "Real3CImage.hpp" 00031 00032 00033 class ICoherenceEnhancementDiffusionOp : public IMultiImageOp 00034 { 00035 private: 00036 00037 bool nonNegatifFlag; 00038 00039 protected: 00040 00041 // mono channel 00042 00043 virtual AnImage* greyFilter(AnImage* src, AnImage* dest=0); 00044 virtual AnImage* greySelectedFilter(AnImage* mask, AnImage* src, AnImage* dest=0); 00045 00046 // separate color channels 00047 00048 virtual Real3CImage* scolorFilter(Real3CImage* src, Real3CImage* dest=0); 00049 virtual Real3CImage* scolorSelectedFilter(AnImage* mask, Real3CImage* src, Real3CImage* dest=0); 00050 00051 00052 public: 00053 00054 ICoherenceEnhancementDiffusionOp(int iter=50, bool nnFlag= false, bool colorFlag= false) 00055 :IMultiImageOp(iter, colorFlag) 00056 {nonNegatifFlag= nnFlag;} 00057 virtual ~ICoherenceEnhancementDiffusionOp(){} 00058 00059 00060 virtual void report(FILE* file){} 00061 }; 00062 00063 00064 #endif