00001 #ifndef __ILargeOpeningOp__ 00002 #define __ILargeOpeningOp__ 00003 00004 00005 00026 #include <stdio.h> 00027 00028 #include "ILargeMorphologicalOp.hpp" 00029 00030 #include "ILargeErosionOp.hpp" 00031 #include "ILargeDilatationOp.hpp" 00032 00033 class ILargeOpeningOp : public ILargeMorphologicalOp 00034 { 00035 protected: 00036 00037 ILargeErosionOp erosion; 00038 ILargeDilatationOp dilatation; 00039 00040 protected: 00041 00042 virtual int operation(AnImage* src, int channel, int i, int j){return 0;} 00043 00044 public: 00045 00046 ILargeOpeningOp(int iter=1){dilatation.setIterations(iter); erosion.setIterations(iter);} 00047 ILargeOpeningOp(StructuredElement* aStructuredElement, int iter=1); 00048 virtual ~ILargeOpeningOp(){} 00049 00050 virtual void setIterations(int iter){dilatation.setIterations(iter); erosion.setIterations(iter);} 00051 00052 virtual void setStructuredElement(StructuredElement* aStructuredElement); 00053 00054 virtual AnImage* filter(AnImage* src, AnImage* dest=0); 00055 00056 virtual void report(FILE* file){} 00057 }; 00058 00059 00060 #endif