00001
00002
00003
00004
00005
00006
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
00038
00039
00040
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
00144 bool isLogOperation;
00145 int mInterp;
00146 double beginAngle;
00147 double endAngle;
00148 float m_filterFactor;
00149 int m_filterType;
00150
00151 private:
00152 mitkCTReconstructionFilter(const mitkCTReconstructionFilter&);
00153 void operator=(const mitkCTReconstructionFilter&);
00154
00155 };
00156
00157
00158
00159
00160
00161 #endif
00162