17 #ifndef __itkSegmentationLevelSetFunction_txx
18 #define __itkSegmentationLevelSetFunction_txx
24 template <
class TImageType,
class TFeatureImageType>
29 m_Interpolator->SetInputImage(m_SpeedImage);
32 template <
class TImageType,
class TFeatureImageType>
37 m_VectorInterpolator->SetInputImage(m_AdvectionImage);
40 template <
class TImageType,
class TFeatureImageType>
44 this->SetPropagationWeight( -1.0 * this->GetPropagationWeight() );
45 this->SetAdvectionWeight( -1.0 * this->GetAdvectionWeight() );
48 template <
class TImageType,
class TFeatureImageType>
52 Superclass::Initialize(r);
55 template <
class TImageType,
class TFeatureImageType>
59 m_SpeedImage->SetRequestedRegion(m_FeatureImage->GetRequestedRegion());
60 m_SpeedImage->SetBufferedRegion(m_FeatureImage->GetBufferedRegion());
61 m_SpeedImage->SetLargestPossibleRegion(m_FeatureImage->GetLargestPossibleRegion());
62 m_SpeedImage->Allocate();
63 m_Interpolator->SetInputImage(m_SpeedImage);
66 template <
class TImageType,
class TFeatureImageType>
70 m_AdvectionImage->SetRequestedRegion(m_FeatureImage->GetRequestedRegion());
71 m_AdvectionImage->SetBufferedRegion(m_FeatureImage->GetBufferedRegion());
72 m_AdvectionImage->SetLargestPossibleRegion(m_FeatureImage->GetLargestPossibleRegion());
73 m_AdvectionImage->Allocate();
74 m_VectorInterpolator->SetInputImage(m_AdvectionImage);
77 template <
class TImageType,
class TFeatureImageType>
86 for (
unsigned i = 0; i < ImageDimension; ++i)
88 cdx[i] =
static_cast<double>(idx[i]) - offset[i];
91 if ( m_Interpolator->IsInsideBuffer(cdx) )
93 return (static_cast<ScalarValueType>(
94 m_Interpolator->EvaluateAtContinuousIndex(cdx)));
96 else return ( static_cast<ScalarValueType>(m_SpeedImage->GetPixel(idx)) );
99 template <
class TImageType,
class TFeatureImageType>
107 for (
unsigned i = 0; i < ImageDimension; ++i)
109 cdx[i] =
static_cast<double>(idx[i]) - offset[i];
111 if ( m_VectorInterpolator->IsInsideBuffer(cdx) )
113 return ( m_VectorCast(m_VectorInterpolator->EvaluateAtContinuousIndex(cdx)));
116 return ( m_AdvectionImage->GetPixel(idx) );