00001
00002
00003
00004
00005
00006
00007
00008
00009
00010 #ifndef __mitkWatershedSegFilter_h
00011 #define __mitkWatershedSegFilter_h
00012
00013 #include "mitkSegmentationIncludes.h"
00014 #include "mitkVolumeToVolumeFilter.h"
00015
00020 class MITK_SEGMENTATION_API mitkWatershedSegFilter: public mitkVolumeToVolumeFilter
00021 {
00022 public:
00023 MITK_TYPE(mitkWatershedSegFilter,mitkVolumeToVolumeFilter)
00024
00025
00026
00027
00028 mitkWatershedSegFilter();
00029
00034 void setThrValue(int value){ this->m_ThrValue = value; }
00035
00036 protected:
00037 virtual ~mitkWatershedSegFilter();
00038 virtual bool Execute();
00039
00040 private:
00041 mitkWatershedSegFilter(const mitkWatershedSegFilter&);
00042 void operator=(const mitkWatershedSegFilter&);
00043
00044 template <typename T> bool _tExecute(mitkVolume* inVolume, mitkVolume* outVolume,T* pInData, unsigned char* pOutData);
00045 template <typename T> void Release(T** MatrixA,int m,int n);
00046 void WatershedExecute(int** OriginalImage, char** SeedImage,int** LabelImage, int row, int col);
00047
00048 int m_Width;
00049 int m_Height;
00050 int m_ThrValue;
00051 };
00052
00053 #endif