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 __mitkGaussianDerivativeImageFilter_h 00012 #define __mitkGaussianDerivativeImageFilter_h 00013 00014 #include "mitkVolumeToVolumeFilter.h" 00015 00016 class _GaussianDerivative; 00017 class mitkVolumeIteratorBase; 00018 00030 class MITK_COMMON_API mitkGaussianDerivativeImageFilter : public mitkVolumeToVolumeFilter 00031 { 00032 public: 00033 MITK_TYPE(mitkGaussianDerivativeImageFilter, mitkVolumeToVolumeFilter) 00034 virtual void PrintSelf(ostream &os); 00035 00039 mitkGaussianDerivativeImageFilter(); 00040 00044 virtual ~mitkGaussianDerivativeImageFilter(); 00045 00050 void SetOutputDatatype(int dataType) {m_OutputDataType = dataType;} 00051 00052 void SetRegion(const VectorIndexType& r) { m_Region = r; } 00053 00054 void SetNormalizeAcrossScale(bool f); 00055 00056 void SetSigma(ScalarParameterType s); 00057 00058 protected: 00059 bool Update(); 00060 virtual bool Execute(); 00061 bool RunOnADirection(mitkVolumeIteratorBase* inDataIterator, unsigned int direction, unsigned int order); 00062 00063 mitkVolumeIteratorBase* m_InputIterator; 00064 mitkVolumeIteratorBase* m_OutputIterator; 00065 00066 _GaussianDerivative* m_DerivativeAdaptor; 00067 00068 VectorIndexType m_Region; 00069 unsigned int m_ImageDimension; 00070 int m_Dimensions[3]; 00071 float m_Spacings[3]; 00072 int m_OutputDataType; 00073 00074 private: 00075 mitkGaussianDerivativeImageFilter(const mitkGaussianDerivativeImageFilter&); 00076 void operator = (const mitkGaussianDerivativeImageFilter&); 00077 00078 }; 00079 00080 #endif 00081