00001 #ifndef __itkBloxBoundaryProfileItem_h
00002 #define __itkBloxBoundaryProfileItem_h
00003
00004 #include "itkBloxBoundaryPointItem.h"
00005 #include "itkBloxItem.h"
00006
00007 namespace itk
00008 {
00009 template <unsigned int VImageDimension>
00010 class ITK_EXPORT BloxBoundaryProfileItem : public BloxItem
00011 {
00012 public:
00014 itkTypeMacro( BloxBoundaryProfileItem, BloxItem );
00015
00017 typedef Point<double, VImageDimension> PositionType;
00018
00020 typedef CovariantVector<double, VImageDimension> GradientType;
00021
00023 typedef vnl_vector<double> VectorType;
00024
00026 typedef BloxBoundaryPointItem<VImageDimension> BPItemType;
00027
00029 void SetBoundaryPoint(BPItemType * point);
00030
00032 void SetLowerIntensity(double lowerIntensity);
00033 double GetLowerIntensity(void);
00034
00036 void SetUpperIntensity(double upperIntensity);
00037 double GetUpperIntensity(void);
00038
00040
00041 void SetMean(double mean);
00042 double GetMean(void);
00043
00045 void SetProfileLength(unsigned int profileLength);
00046 unsigned int GetProfileLength(void);
00047
00049 void SetMeanNormalized(void);
00050 double GetMeanNormalized(void);
00051
00053 void SetStandardDeviation(double standardDeviation);
00054 double GetStandardDeviation(void);
00055
00057 void SetStandardDeviationNormalized(void);
00058
00059 double GetStandardDeviationNormalized(void);
00060
00062 void SetOptimalBoundaryLocation(VectorType spatialFunctionOriginVector, VectorType orientation);
00063
00064 PositionType GetOptimalBoundaryLocation(void);
00065
00067 void SetGradient(GradientType * gradient);
00068 GradientType * GetGradient();
00069
00070 void SetGradient2(GradientType gradient) {m_Gradient2 = gradient;}
00071 GradientType GetGradient2() {return m_Gradient2;}
00072
00073 BloxBoundaryProfileItem();
00074 ~BloxBoundaryProfileItem();
00075
00076 private:
00078 double m_LowerIntensity;
00079
00081 double m_UpperIntensity;
00082
00084 unsigned int m_ProfileLength;
00085
00087 double m_Mean;
00088
00090 double m_MeanNormalized;
00091
00093 double m_StandardDeviation;
00094
00096 double m_StandardDeviationNormalized;
00097
00099 BPItemType * m_BoundaryPoint;
00100
00102 PositionType m_OptimalBoundaryLocation;
00103
00105 GradientType * m_Gradient;
00106
00107 GradientType m_Gradient2;
00108
00109 };
00110
00111 }
00112
00113 #ifndef ITK_MANUAL_INSTANTIATION
00114 #include "itkBloxBoundaryProfileItem.txx"
00115 #endif
00116
00117 #endif