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