00001 #ifndef __ILargeMSmoothOp__ 00002 #define __ILargeMSmoothOp__ 00003 00004 00005 00038 #include <stdio.h> 00039 00040 #include "ILargeMorphologicalOp.hpp" 00041 00042 #include "ILargeErosionOp.hpp" 00043 #include "ILargeDilatationOp.hpp" 00044 00045 class ILargeMSmoothOp : 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 ILargeMSmoothOp(){dilatation.setIterations(2);} 00059 ILargeMSmoothOp(StructuredElement* aStructuredElement); 00060 virtual ~ILargeMSmoothOp(){} 00061 00062 virtual void setIterations(int 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