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