Main Page | Namespace List | Class Hierarchy | Class List | Directories | File List | Namespace Members | Class Members

mitkEuclideanSkeletonFeatureExtraction.h

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 
00011 #ifndef __mitkEuclideanSkeletonFeatureExtraction_h
00012 #define __mitkEuclideanSkeletonFeatureExtraction_h
00013 
00014 #include "mitkSegmentationIncludes.h"
00015 #include "mitkFilter.h"
00016 #include "mitkICVolume.h"
00017 
00018 #include "mitkEuclideanDistanceTransformFilter.h"
00019 
00023 class MITK_SEGMENTATION_API mitkEuclideanSkeletonFeature : public mitkICVolume
00024 {
00025 public:
00026     
00027     struct Descriptor
00028     {
00029         unsigned skeletonPos;
00030         float radius;
00031         float size;
00032     };
00033     typedef std::vector<Descriptor> DescriptorList;
00034     MITK_TYPE(mitkEuclideanSkeletonFeature,mitkICVolume)
00035     mitkEuclideanSkeletonFeature();
00040     void GetSkeletonPosition(unsigned skeletonIndex,int &posX,int &posY,int &posZ);
00045     void GetSkeletonPosition(unsigned skeletonIndex,int pos[3]);
00046 
00050     unsigned AddDescriptor(const Descriptor& descriptor)
00051     {
00052         m_dList.push_back(descriptor);
00053         return m_dList.size()-1;
00054     }
00059     unsigned GetNumberOfDescriptors()
00060     {
00061         return m_dList.size();
00062     }
00067     Descriptor& GetDescriptor(unsigned index)
00068     {
00069         return m_dList[index];
00070     }
00074     void RemoveAllDescriptors()
00075     {
00076         m_dList.clear();
00077     }
00078 protected:
00079     virtual ~mitkEuclideanSkeletonFeature();
00080 
00081 private:
00082     mitkEuclideanSkeletonFeature(const mitkEuclideanSkeletonFeature&);
00083     void operator = (const mitkEuclideanSkeletonFeature&);
00084     
00085     DescriptorList m_dList; 
00086 };
00087 
00092 class MITK_SEGMENTATION_API mitkEuclideanSkeletonFeatureExtraction : public mitkFilter
00093 {
00094 public:
00095     MITK_TYPE(mitkEuclideanSkeletonFeatureExtraction,mitkFilter)
00096     mitkEuclideanSkeletonFeatureExtraction();
00097 
00102     void SetLowThreshValue(double d){m_dtFilter->SetLowThreshValue(d);}
00107     int GetLowThreshValue(){return m_dtFilter->GetLowThreshValue();}
00112     void SetHighThreshValue(double d){m_dtFilter->SetHighThreshValue(d);}
00117     int GetHighThreshValue(){return m_dtFilter->GetHighThreshValue();}
00122     void SetInput(mitkVolume *inData) {m_dtFilter->SetInput(inData);}
00127     mitkVolume* GetInput() {return m_dtFilter->GetInput();} 
00132     mitkEuclideanSkeletonFeature* GetEuclideanSkeletonFeature();
00133 
00134 protected:
00135     virtual ~mitkEuclideanSkeletonFeatureExtraction();
00136     virtual bool Execute();
00137 
00138     mitkEuclideanDistanceTransformFilter *m_dtFilter;
00139     mitkVolume* m_DistanceData;
00140     mitkEuclideanSkeletonFeature *m_ESF;
00141 
00142 private:
00143     mitkEuclideanSkeletonFeatureExtraction(const mitkEuclideanSkeletonFeatureExtraction&);
00144     void operator = (const mitkEuclideanSkeletonFeatureExtraction&);
00145 };
00146 
00147 #endif

Generated on Tue Feb 25 15:00:36 2014 for MITK (Medical Imaging ToolKit) by  doxygen 1.4.3