geodesic_erosion.h
00001 00002 /*************************************************************************** 00003 * geodesic_erosion.h - header for morphological geodesic erosion 00004 * reconstruction 00005 * 00006 * Created: Sat Jun 10 16:10:08 2006 (FIFA WM 2006, England vs. Paraguay) 00007 * Copyright 2005-2007 Tim Niemueller [www.niemueller.de] 00008 * 00009 ****************************************************************************/ 00010 00011 /* This program is free software; you can redistribute it and/or modify 00012 * it under the terms of the GNU General Public License as published by 00013 * the Free Software Foundation; either version 2 of the License, or 00014 * (at your option) any later version. A runtime exception applies to 00015 * this software (see LICENSE.GPL_WRE file mentioned below for details). 00016 * 00017 * This program is distributed in the hope that it will be useful, 00018 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00019 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00020 * GNU Library General Public License for more details. 00021 * 00022 * Read the full text in the LICENSE.GPL_WRE file in the doc directory. 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 class FilterErosion; 00031 class FilterMax; 00032 class ImageDiff; 00033 class ROI; 00034 00035 class FilterGeodesicErosion : public MorphologicalFilter 00036 { 00037 public: 00038 FilterGeodesicErosion(unsigned int se_size = 3); 00039 virtual ~FilterGeodesicErosion(); 00040 00041 virtual void apply(); 00042 00043 virtual unsigned int num_iterations(); 00044 00045 static const unsigned int MARKER; 00046 static const unsigned int MASK; 00047 00048 private: 00049 unsigned char *isotropic_se; 00050 unsigned int se_size; 00051 00052 FilterErosion *erode; 00053 FilterMax *max; 00054 00055 ImageDiff *diff; 00056 00057 unsigned int iterations; 00058 }; 00059 00060 #endif

