Main Page   Groups   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Namespace Members   Compound Members   File Members   Concepts

itkBloxBoundaryProfileItem.h

Go to the documentation of this file.
00001 #ifndef __itkBloxBoundaryProfileItem_h
00002 #define __itkBloxBoundaryProfileItem_h
00003 
00004 #include "vnl/vnl_vector_fixed.h"
00005 #include "itkBloxBoundaryPointItem.h"
00006 #include "itkBloxItem.h"
00007 
00008 namespace itk
00009 {
00010    
00011 template <unsigned int VImageDimension>
00012 class BloxBoundaryProfileItem: public BloxItem
00013 {
00014 public:
00016    typedef Point<double, VImageDimension> PositionType;
00017 
00019    typedef CovariantVector<double, VImageDimension> GradientType;
00020 
00022    typedef vnl_vector<double> VectorType;
00023 
00025    typedef BloxBoundaryPointItem<VImageDimension> BPItemType;
00026   
00028    void SetBoundaryPoint(BPItemType* point)
00029    { m_BoundaryPoint = point; }
00030 
00032    void SetLowerIntensity(double lowerIntensity)
00033    { m_LowerIntensity = lowerIntensity; }
00034 
00035    double GetLowerIntensity(void)
00036    { return(m_LowerIntensity); }
00037 
00039    void SetUpperIntensity(double upperIntensity)
00040    { m_UpperIntensity = upperIntensity; }
00041 
00042    double GetUpperIntensity(void)
00043    { return(m_UpperIntensity); }
00044 
00046    void SetMean(double mean)
00047    { m_Mean = mean; }
00048 
00049    double GetMean(void)
00050    { return(m_Mean); }
00051 
00053    void SetBoundaryWidth(double boundaryWidth)
00054    { m_BoundaryWidth = boundaryWidth; }
00055    
00056    double GetBoundaryWidth(void)
00057    { return(m_BoundaryWidth); }
00058 
00060    void SetProfileLength(unsigned int profileLength)
00061    { m_ProfileLength = profileLength; }
00062 
00063    unsigned int GetProfileLength(void)
00064    { return(m_ProfileLength); }
00065 
00067    void SetMeanNormalized(void)
00068    { m_MeanNormalized = m_Mean - m_ProfileLength/2; }
00069 
00070    double GetMeanNormalized(void)
00071    { return(m_MeanNormalized); }
00072       
00074    void SetStandardDeviation(double standardDeviation)
00075    { m_StandardDeviation = standardDeviation; }
00076 
00077    double GetStandardDeviation(void)
00078    { return(m_StandardDeviation); }
00079 
00081    void SetStandardDeviationNormalized(void)
00082    { m_StandardDeviationNormalized = m_StandardDeviation / m_ProfileLength; }
00083 
00084    double GetStandardDeviationNormalized(double)
00085    { return(m_StandardDeviationNormalized); }
00086 
00088    void SetOptimalBoundaryLocation(VectorType spatialFunctionOriginVector, VectorType orientation)
00089       {
00090       VectorType optimalBoundaryLocation;
00091       optimalBoundaryLocation = m_MeanNormalized * orientation;
00092       optimalBoundaryLocation = spatialFunctionOriginVector + optimalBoundaryLocation;
00093       for(unsigned int i = 0; i < VImageDimension; i++)
00094          { m_OptimalBoundaryLocation[i] = optimalBoundaryLocation[i]; }
00095       }
00096 
00097    PositionType GetOptimalBoundaryLocation(void)
00098    { return(m_OptimalBoundaryLocation); }
00099 
00101    void SetGradient(GradientType grad){m_Gradient = grad;};
00102 
00104    GradientType GetGradient(){return m_Gradient;};
00105 
00106    BloxBoundaryProfileItem();
00107    ~BloxBoundaryProfileItem();
00108 
00109 private:
00110 
00111    double       m_LowerIntensity;
00112    double       m_UpperIntensity;
00113    double       m_Mean;
00114    double       m_BoundaryWidth;
00115    unsigned int m_ProfileLength;
00116    double       m_MeanNormalized;
00117    double       m_StandardDeviation;
00118    double       m_StandardDeviationNormalized;
00119    
00121    PositionType m_OptimalBoundaryLocation;
00122 
00124    GradientType m_Gradient;
00125 };
00126 
00127 } // end namespace itk
00128 
00129 
00130 #ifndef ITK_MANUAL_INSTANTIATION
00131 #include "itkBloxBoundaryProfileItem.txx"
00132 #endif
00133 
00134 #endif

Generated at Wed Mar 12 01:12:48 2003 for ITK by doxygen 1.2.15 written by Dimitri van Heesch, © 1997-2000