00001 #ifndef __IMZeroCrossingOp__
00002 #define __IMZeroCrossingOp__
00003 
00004 
00005 
00032 #include <stdio.h>
00033 
00034 #include "AnImageOp.hpp"
00035 
00036 
00037 #include "ILargeMLaplacianOp.hpp"
00038 #include "IEikonalFastSweepingOp.hpp"
00039 
00040 class IMZeroCrossingOp : public AnImageOp
00041 {
00042 protected:
00043 
00044 ILargeMLaplacianOp      laplacianOp;            
00045 IEikonalFastSweepingOp  distanceMapper;         
00046 
00047 public:
00048         
00049 IMZeroCrossingOp(){}
00050 virtual ~IMZeroCrossingOp(){}
00051 
00052 virtual void setStructuredElement(StructuredElement*    aStructuredElement)
00053                 { laplacianOp.setStructuredElement(aStructuredElement); }
00054 
00055 virtual void setLuminanceFlag(bool autoGrey=true)
00056         { 
00057         AnImageOp::setLuminanceFlag(autoGrey); 
00058         laplacianOp.setLuminanceFlag(autoGrey); 
00059         }
00060 
00061 virtual AnImage* filter(AnImage* src, AnImage* dest=0);
00062 
00063 virtual void report(FILE* file){}
00064 };
00065 
00066 
00067 #endif