00001 #ifndef __ILargeDynamicRangeOp__ 00002 #define __ILargeDynamicRangeOp__ 00003 00004 00005 00038 #include <stdio.h> 00039 00040 #include "ILargeMorphologicalOp.hpp" 00041 00042 #include "ILargeErosionOp.hpp" 00043 #include "ILargeDilatationOp.hpp" 00044 00045 class ILargeDynamicRangeOp : public ILargeMorphologicalOp 00046 { 00047 protected: 00048 00049 ILargeErosionOp erosion; // min 00050 ILargeDilatationOp dilatation; // max 00051 00052 protected: 00053 00054 virtual int operation(AnImage* src, int channel, int i, int j){return 0;} 00055 00056 public: 00057 00058 ILargeDynamicRangeOp(){} 00059 ILargeDynamicRangeOp(StructuredElement* aStructuredElement); 00060 virtual ~ILargeDynamicRangeOp(){} 00061 00062 virtual void setIterations(int iter){dilatation.setIterations(iter); erosion.setIterations(iter);} 00063 00064 virtual void setStructuredElement(StructuredElement* aStructuredElement); 00065 00066 virtual AnImage* filter(AnImage* src, AnImage* dest=0); 00067 00068 virtual void report(FILE* file){} 00069 }; 00070 00071 00072 #endif