00001 #ifndef __ILargeTextureRangeOp__ 00002 #define __ILargeTextureRangeOp__ 00003 00004 00005 00038 #include <stdio.h> 00039 00040 #include "ILargeMorphologicalOp.hpp" 00041 00042 #include "ILargeOpeningOp.hpp" 00043 #include "ILargeClosingOp.hpp" 00044 00045 class ILargeTextureRangeOp : public ILargeMorphologicalOp 00046 { 00047 protected: 00048 00049 ILargeOpeningOp opening; // low 00050 ILargeClosingOp closing; // upp 00051 00052 protected: 00053 00054 virtual int operation(AnImage* src, int channel, int i, int j){return 0;} 00055 00056 public: 00057 00058 ILargeTextureRangeOp(){} 00059 ILargeTextureRangeOp(StructuredElement* aStructuredElement); 00060 virtual ~ILargeTextureRangeOp(){} 00061 00062 virtual void setIterations(int iter){closing.setIterations(iter); opening.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