| 1 |
|
#ifndef __itkBloxBoundaryProfileItem_h |
| 2 |
HRD |
#define __itkBloxBoundaryProfileItem_h |
| 3 |
|
|
| 4 |
|
#include "itkBloxBoundaryPointItem.h" |
| 5 |
|
#include "itkBloxItem.h" |
| 6 |
|
|
| 7 |
|
namespace itk |
| 8 |
HRD |
{ |
| 9 |
|
template <unsigned int VImageDimension> |
| 10 |
MCM |
class ITK_EXPORT BloxBoundaryProfileItem : public BloxItem |
| 11 |
HRD |
{ |
| 12 |
|
public: |
| 13 |
|
/** Run-time type information (and related methods). */ |
| 14 |
|
itkTypeMacro( BloxBoundaryProfileItem, BloxItem ); |
| 15 |
|
|
| 16 |
|
/** The point type used to store the position of the boundary profile */ |
| 17 |
|
typedef Point<double, VImageDimension> PositionType; |
| 18 |
|
|
| 19 |
LEN |
/** The type of vector used to store the gradient of the BoundaryPointItem * */ |
| 20 |
|
typedef CovariantVector<double, VImageDimension> GradientType; |
| 21 |
|
|
| 22 |
|
/** Vector type */ |
| 23 |
IND |
**typedef vnl_vector<double> VectorType; |
| 24 |
|
|
| 25 |
IND |
**/** The type of boundary point item we store pointers to */ |
| 26 |
IND |
**typedef BloxBoundaryPointItem<VImageDimension> BPItemType; |
| 27 |
|
|
| 28 |
IND |
**/** Set the position of the first boundary point in physical space */ |
| 29 |
IND |
**void SetBoundaryPoint(BPItemType * point); |
| 30 |
|
|
| 31 |
IND |
**/** Set and get lower intensity estimates */ |
| 32 |
IND |
**void SetLowerIntensity(double lowerIntensity); |
| 33 |
IND |
**double GetLowerIntensity(void); |
| 34 |
|
|
| 35 |
IND |
**/** Set and get upper intensity estimates */ |
| 36 |
IND |
**void SetUpperIntensity(double upperIntensity); |
| 37 |
IND |
**double GetUpperIntensity(void); |
| 38 |
|
|
| 39 |
IND |
**/** Set and get mean estimates */ |
| 40 |
IND |
**//void SetMean(double mean) {m_Mean = mean;} |
| 41 |
IND |
**void SetMean(double mean); |
| 42 |
IND |
**double GetMean(void); |
| 43 |
|
|
| 44 |
IND |
**/** Set and get the length of profile */ |
| 45 |
IND |
**void SetProfileLength(unsigned int profileLength); |
| 46 |
IND |
**unsigned int GetProfileLength(void); |
| 47 |
|
|
| 48 |
IND |
**/** Set and get mean normalized by profile length */ |
| 49 |
IND |
**void SetMeanNormalized(void); |
| 50 |
IND |
**double GetMeanNormalized(void); |
| 51 |
|
|
| 52 |
IND |
**/** Set and get standard deviation */ |
| 53 |
IND |
**void SetStandardDeviation(double standardDeviation); |
| 54 |
IND |
**double GetStandardDeviation(void); |
| 55 |
|
|
| 56 |
IND |
**/** Set and get standard deviation normalized by profile length */ |
| 57 |
IND |
**void SetStandardDeviationNormalized(void); |
| 58 |
|
|
| 59 |
IND |
**double GetStandardDeviationNormalized(void); |
| 60 |
|
|
| 61 |
IND |
**/** Set and get optimal boundary location */ |
| 62 |
LEN,IND |
**void SetOptimalBoundaryLocation(VectorType spatialFunctionOriginVector, VectorType orientation); |
| 63 |
|
|
| 64 |
IND |
**PositionType GetOptimalBoundaryLocation(void); |
| 65 |
|
|
| 66 |
IND |
**/** Set and get the gradient of the boundary profile * */ |
| 67 |
IND |
**void SetGradient(GradientType * gradient); |
| 68 |
IND |
**GradientType * GetGradient(); |
| 69 |
|
|
| 70 |
IND |
**void SetGradient2(GradientType gradient) {m_Gradient2 = gradient;} |
| 71 |
IND |
**GradientType GetGradient2() {return m_Gradient2;} |
| 72 |
|
|
| 73 |
IND |
**BloxBoundaryProfileItem(); |
| 74 |
IND |
**~BloxBoundaryProfileItem(); |
| 75 |
|
|
| 76 |
IND |
private: |
| 77 |
IND |
**/** Lower estimated intensity */ |
| 78 |
IND |
**double m_LowerIntensity; |
| 79 |
|
|
| 80 |
IND |
**/** Upper estimated intensity */ |
| 81 |
IND |
**double m_UpperIntensity; |
| 82 |
|
|
| 83 |
IND |
**/** Length of sampling profile */ |
| 84 |
IND |
**unsigned int m_ProfileLength; |
| 85 |
|
|
| 86 |
IND |
**/** Mean location of the boundary along sampling profile*/ |
| 87 |
IND |
**double m_Mean; |
| 88 |
|
|
| 89 |
IND |
**/** Mean normalized by the profile length*/ |
| 90 |
IND |
**double m_MeanNormalized; |
| 91 |
|
|
| 92 |
IND |
**/** Width of blurred boundary */ |
| 93 |
IND |
**double m_StandardDeviation; |
| 94 |
|
|
| 95 |
IND |
**/** Width of blurred boundary normalized by sampling profile */ |
| 96 |
IND |
**double m_StandardDeviationNormalized; |
| 97 |
|
|
| 98 |
IND |
**/** The boundary point to construct a profile from */ |
| 99 |
IND |
**BPItemType * m_BoundaryPoint; |
| 100 |
|
|
| 101 |
IND |
**/** The position of the estimated boundary location */ |
| 102 |
IND |
**PositionType m_OptimalBoundaryLocation; |
| 103 |
|
|
| 104 |
IND |
**/** The gradient of the boundary point (non-normalized) */ |
| 105 |
IND |
**GradientType * m_Gradient; |
| 106 |
|
|
| 107 |
IND |
**GradientType m_Gradient2; |
| 108 |
|
|
| 109 |
IND |
}; |
| 110 |
|
|
| 111 |
IND |
} // end namespace itk |
| 112 |
|
|
| 113 |
|
#ifndef ITK_MANUAL_INSTANTIATION |
| 114 |
|
#include "itkBloxBoundaryProfileItem.txx" |
| 115 |
|
#endif |
| 116 |
|
|
| 117 |
|
#endif |
| 118 |
|
|