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