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