geodesic_erosion.h
00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025 #ifndef __FIREVISION_FILTERS_MORPHOLOGY_GEODESIC_EROSION_H_
00026 #define __FIREVISION_FILTERS_MORPHOLOGY_GEODESIC_EROSION_H_
00027
00028 #include <filters/morphology/morphologicalfilter.h>
00029
00030 namespace firevision {
00031 #if 0
00032 }
00033 #endif
00034
00035 class FilterErosion;
00036 class FilterMax;
00037 class ImageDiff;
00038 class ROI;
00039
00040 class FilterGeodesicErosion : public MorphologicalFilter
00041 {
00042 public:
00043 FilterGeodesicErosion(unsigned int se_size = 3);
00044 virtual ~FilterGeodesicErosion();
00045
00046 virtual void apply();
00047
00048 virtual unsigned int num_iterations();
00049
00050 static const unsigned int MARKER;
00051 static const unsigned int MASK;
00052
00053 private:
00054 unsigned char *isotropic_se;
00055 unsigned int se_size;
00056
00057 FilterErosion *erode;
00058 FilterMax *max;
00059
00060 ImageDiff *diff;
00061
00062 unsigned int iterations;
00063 };
00064
00065 }
00066
00067 #endif