00001 /*========================================================================= 00002 00003 Program: 3DMed 00004 Date: $Date: 2014-02-25 18:30:00 +0800 $ 00005 Version: $Version: 4.6.0 $ 00006 Copyright: MIPG, Institute of Automation, Chinese Academy of Sciences 00007 00008 =========================================================================*/ 00009 00010 #ifndef __mitkConnectivityLabelFilter_h 00011 #define __mitkConnectivityLabelFilter_h 00012 00013 #include "mitkSegmentationIncludes.h" 00014 #include "mitkVolumeToVolumeFilter.h" 00015 #include <queue> 00016 using std::queue; 00017 /*=========================================================== 00025 // [9/5/2011 Xiuli Li] 00026 00027 00034 class MITK_SEGMENTATION_API mitkConnectivityLabelFilter : public mitkVolumeToVolumeFilter 00035 { 00036 public: 00037 MITK_TYPE(mitkConnectivityLabelFilter,mitkVolumeToVolumeFilter) 00038 00042 mitkConnectivityLabelFilter(); 00043 00044 virtual void PrintSelf(ostream& os); 00045 00050 int GetConnectedRegionNum () {return this->m_LabelNum;} 00051 00056 VectorIndexType GetVoxelNumOfRegion() {return this->m_VoxelNumOfRegion;} 00057 00058 protected: 00059 virtual ~mitkConnectivityLabelFilter(); 00060 00061 virtual bool Execute(); 00062 00063 int m_LabelNum; // the number of connected regions in an input image 00064 00065 VectorIndexType m_VoxelNumOfRegion; // value list of voxel number of each region 00066 00067 private: 00068 mitkConnectivityLabelFilter(const mitkConnectivityLabelFilter&); 00069 void operator=(const mitkConnectivityLabelFilter&); 00070 }; 00071 00072 00073 #endif