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

mitkCTReconstructionFilter.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 __mitkCTReconstructionFilter_h
00012 #define __mitkCTReconstructionFilter_h
00013 
00014 #include "mitkFilter.h"
00015 #include "mitkVolume.h"
00016 #include "mitkCTProjectionData.h"
00017 #include "mitkRCPtr.h"
00018 #include "mitkRawDataToVolumeFilter.h"
00019 #define PI 3.14159265358979
00020 
00021 
00022 #ifndef USE_SIMD
00023 #define USE_SIMD
00024 #endif
00029 
00030 class MITK_RECONSTRUCTION_API mitkCTReconstructionFilter : public mitkRawDataToVolumeFilter  
00031 {
00032 public:
00033     MITK_TYPE(mitkCTReconstructionFilter,mitkRawDataToVolumeFilter)
00034 
00035     virtual void PrintSelf(ostream& os);
00036 
00037     //enum InterpolationModel
00038     //{
00039     //  NEAREST,
00040     //  BILINEAR
00041     //};
00042 
00047     void SetBeginAngle(double angle)  { beginAngle = angle; }
00048     
00053     double GetBeginAngle() const { return beginAngle; }
00054     
00059     void SetEndAngle(double angle)  { endAngle = angle; }
00060     
00065     double GetEndAngle() const { return endAngle; }
00066 
00072     void SetInterpolationModel(int m){mInterp = m;}
00073 
00079     int GetInterpolationModel(){return mInterp;}
00080 
00085     void SetInput(mitkCTProjectionData *inData) {m_InData = inData;}
00086     
00091     mitkCTProjectionData* GetInput() {return m_InData;}
00092     
00097     mitkVolume* GetOutput();
00098 
00102     void SetOutput(mitkVolume *m) {m_OutData = m;}
00103 
00108     void SetIsLogOperation(bool m) {isLogOperation = m;}
00109 
00114     bool GetIsLogOperation() {return isLogOperation;}
00115 
00120     void SetEmptyScanImage(mitkVolume *m){emptyImage = m;}
00121 
00126     mitkVolume* GetEmptyScanImage(){return emptyImage;}
00127     
00128 
00129     float GetFilterFactor(){return m_filterFactor;}
00130     int GetFilterType(){return m_filterType;}
00131     void SetFilterType(int type=4, float factor=0.46){m_filterType=type; m_filterFactor=factor;}
00132 
00133 protected:
00134 
00135     mitkCTReconstructionFilter();
00136 
00137     virtual ~mitkCTReconstructionFilter();
00138 
00139 protected:  
00140     mitkRCPtr<mitkCTProjectionData> m_InData;
00141 
00142     mitkRCPtr<mitkVolume> emptyImage;
00143  // mitkVolume *m_OutData;
00144     bool isLogOperation;
00145     int mInterp;
00146     double beginAngle;
00147     double endAngle;
00148     float m_filterFactor;//set the factor to change filter window in ct filter
00149     int m_filterType;// m_filterType:1 for ramp, 2 for Blackman, 3 for Hanning, 4 for Hamming, 5 for self define (1-m_filterFactor+m_filterFactor*cos(2*PI*ii/L))
00150 
00151 private:
00152     mitkCTReconstructionFilter(const mitkCTReconstructionFilter&);
00153     void operator=(const mitkCTReconstructionFilter&);
00154 
00155 };
00156 
00157 
00158 //#define DEFINED_mitkCTReconstructionFilter
00159 
00160 
00161 #endif 
00162 

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