Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifndef __itkBloxBoundaryProfileItem_h
00018 #define __itkBloxBoundaryProfileItem_h
00019
00020 #include "itkBloxBoundaryPointItem.h"
00021 #include "itkBloxItem.h"
00022
00023 namespace itk
00024 {
00025 template <unsigned int TImageDimension>
00026 class ITK_EXPORT BloxBoundaryProfileItem : public BloxItem
00027 {
00028 public:
00030 itkTypeMacro( BloxBoundaryProfileItem, BloxItem );
00031
00033 typedef Point<double, TImageDimension> PositionType;
00034
00037 typedef CovariantVector<double, TImageDimension> GradientType;
00038
00040 typedef vnl_vector<double> VectorType;
00041
00043 typedef BloxBoundaryPointItem<TImageDimension> BPItemType;
00044
00046 void SetBoundaryPoint(BPItemType * point);
00047
00049 void SetLowerIntensity(double lowerIntensity);
00050 double GetLowerIntensity(void);
00052
00054 void SetUpperIntensity(double upperIntensity);
00055 double GetUpperIntensity(void);
00057
00059 void SetMean(double mean);
00060 double GetMean(void);
00062
00064 void SetProfileLength(unsigned int profileLength);
00065 unsigned int GetProfileLength(void);
00067
00069 void SetMeanNormalized(void);
00070 double GetMeanNormalized(void);
00072
00074 void SetStandardDeviation(double standardDeviation);
00075 double GetStandardDeviation(void);
00077
00079 void SetStandardDeviationNormalized(void);
00080
00081 double GetStandardDeviationNormalized(void);
00082
00084 void SetOptimalBoundaryLocation(VectorType spatialFunctionOriginVector,
00085 VectorType orientation);
00086
00087 PositionType GetOptimalBoundaryLocation(void);
00088
00090 void SetGradient(GradientType * gradient);
00091 GradientType * GetGradient();
00093
00094 void SetGradient2(GradientType gradient) {m_Gradient2 = gradient;}
00095 GradientType GetGradient2() {return m_Gradient2;}
00096
00097 BloxBoundaryProfileItem();
00098 ~BloxBoundaryProfileItem();
00099
00100 private:
00102 double m_LowerIntensity;
00103
00105 double m_UpperIntensity;
00106
00108 unsigned int m_ProfileLength;
00109
00111 double m_Mean;
00112
00114 double m_MeanNormalized;
00115
00117 double m_StandardDeviation;
00118
00120 double m_StandardDeviationNormalized;
00121
00123 BPItemType * m_BoundaryPoint;
00124
00126 PositionType m_OptimalBoundaryLocation;
00127
00129 GradientType * m_Gradient;
00130
00131 GradientType m_Gradient2;
00132
00133 };
00134
00135 }
00136
00137
00138 #define ITK_TEMPLATE_BloxBoundaryProfileItem(_, EXPORT, x, y) namespace itk { \
00139 _(1(class EXPORT BloxBoundaryProfileItem< ITK_TEMPLATE_1 x >)) \
00140 namespace Templates { typedef BloxBoundaryProfileItem< ITK_TEMPLATE_1 x > \
00141 BloxBoundaryProfileItem##y; } \
00142 }
00143
00144 #if ITK_TEMPLATE_EXPLICIT
00145 # include "Templates/itkBloxBoundaryProfileItem+-.h"
00146 #endif
00147
00148 #if ITK_TEMPLATE_TXX
00149 # include "itkBloxBoundaryProfileItem.txx"
00150 #endif
00151
00152 #endif
00153