15 #ifndef itkRelaxStreamlinesFilter_h
16 #define itkRelaxStreamlinesFilter_h
19 #include <itkVector.h>
22 #include <itkVectorInterpolateImageFunction.h>
23 #include <itkInterpolateImageFunction.h>
45 template <
class TImageType,
typename TScalarType,
unsigned int NDimensions>
64 itkStaticConstMacro(
Dimension,
unsigned int, NDimensions);
88 typedef VectorInterpolateImageFunction<InputVectorImageType
93 typedef InterpolateImageFunction< InputScalarImageType
99 void SetScalarImage(
const InputScalarImageType *
image) {this->SetNthInput(0, const_cast<InputScalarImageType *>(image)); }
102 void SetVectorImage(
const InputVectorImageType*
image) { this->SetNthInput(1, const_cast<InputVectorImageType *>(image)); }
105 void SetSegmentedImage(
const InputScalarImageType *
image) {this->SetNthInput(2, const_cast<InputScalarImageType *>(image)); }
108 itkSetMacro(EpsilonConvergenceThreshold,
double);
109 itkGetMacro(EpsilonConvergenceThreshold,
double);
112 itkSetMacro(MaximumNumberOfIterations,
unsigned long int );
113 itkGetMacro(MaximumNumberOfIterations,
unsigned long int );
116 itkSetMacro(MaximumLength,
double );
117 itkGetMacro(MaximumLength,
double );
120 itkSetMacro(InitializeBoundaries,
bool);
121 itkGetMacro(InitializeBoundaries,
bool);
123 OutputImageType*
GetL0Image()
const {
return m_L0Image.GetPointer(); }
124 OutputImageType*
GetL1Image()
const {
return m_L1Image.GetPointer(); }
129 void PrintSelf(std::ostream& os, Indent indent)
const;
132 virtual void GenerateData();
141 virtual void InitializeBoundaries(
142 std::vector<InputScalarImageIndexType>& completeListOfGreyMatterPixels,
143 InputScalarImageType* scalarImage,
144 InputVectorImageType* vectorImage,
145 OutputImageType* L0Image,
146 OutputImageType* L1Image,
147 std::vector<InputScalarImageIndexType>& L0greyList,
148 std::vector<InputScalarImageIndexType>& L1greyList
152 virtual void SolvePDE(
153 bool isInnerBoundary,
154 std::vector<InputScalarImageIndexType>& listOfGreyPixels,
155 InputScalarImageType* scalarImage,
156 InputVectorImageType* vectorImage,
157 OutputImageType* outputImage
178 void operator=(
const Self&);
181 OutputImagePointer m_L0Image;
182 OutputImagePointer m_L1Image;
188 #ifndef ITK_MANUAL_INSTANTIATION
189 #include "itkRelaxStreamlinesFilter.txx"
OutputImageType * GetL1Image() const
Definition: itkRelaxStreamlinesFilter.h:124
OutputImageType::Pointer OutputImagePointer
Definition: itkRelaxStreamlinesFilter.h:82
unsigned long int m_MaximumNumberOfIterations
Definition: itkRelaxStreamlinesFilter.h:164
bool m_InitializeBoundaries
Definition: itkRelaxStreamlinesFilter.h:170
ImageType::SizeType SizeType
Definition: niftkMakeLapUSProbeBasicModel.cxx:31
double m_MaximumLength
Definition: itkRelaxStreamlinesFilter.h:167
InputScalarImageType::SpacingType InputScalarImageSpacingType
Definition: itkRelaxStreamlinesFilter.h:75
GLenum GLsizei GLenum GLenum const GLvoid * image
Definition: glew.h:4052
Point< TScalarType, NDimensions > InputScalarImagePointType
Definition: itkRelaxStreamlinesFilter.h:74
InputVectorImageType::IndexType InputVectorImageIndexType
Definition: itkRelaxStreamlinesFilter.h:71
Definition: niftkITKAffineResampleImage.cxx:74
Base class for filters that calculate thicknesses based on Laplacian streamlines. ...
Definition: itkBaseCTEStreamlinesFilter.h:36
ImageType::IndexType IndexType
Definition: niftkMakeLapUSProbeBasicModel.cxx:32
OutputImageType * GetL0Image() const
Definition: itkRelaxStreamlinesFilter.h:123
SmartPointer< const Self > ConstPointer
Definition: itkRelaxStreamlinesFilter.h:55
VectorInterpolateImageFunction< InputVectorImageType,TScalarType > VectorInterpolatorType
Definition: itkRelaxStreamlinesFilter.h:90
InputScalarImageType::ConstPointer InputScalarImageConstPointer
Definition: itkRelaxStreamlinesFilter.h:78
Vector< TScalarType, NDimensions > InputVectorImagePixelType
Definition: itkRelaxStreamlinesFilter.h:67
InterpolateImageFunction< InputScalarImageType,TScalarType > ScalarInterpolatorType
Definition: itkRelaxStreamlinesFilter.h:94
OutputImageType::SpacingType OutputImageSpacingType
Definition: itkRelaxStreamlinesFilter.h:85
OutputImageType::SizeType OutputImageSizeType
Definition: itkRelaxStreamlinesFilter.h:87
float PixelType
Definition: niftkBreastDCEandADC.cxx:88
TScalarType InputScalarImagePixelType
Definition: itkRelaxStreamlinesFilter.h:72
Image< InputScalarImagePixelType, NDimensions > InputScalarImageType
Definition: itkRelaxStreamlinesFilter.h:73
BaseCTEStreamlinesFilter< TImageType, TScalarType, NDimensions > Superclass
Definition: itkRelaxStreamlinesFilter.h:53
Calculates length between two boundaries, solving PDE by iterative relaxation.
Definition: itkRelaxStreamlinesFilter.h:46
ImageType::RegionType RegionType
Definition: niftkMakeLapUSProbeBasicModel.cxx:30
ScalarInterpolatorType::PointType ScalarInterpolatorPointType
Definition: itkRelaxStreamlinesFilter.h:96
InputVectorImageType::Pointer InputVectorImagePointer
Definition: itkRelaxStreamlinesFilter.h:69
VectorInterpolatorType::PointType VectorInterpolatorPointType
Definition: itkRelaxStreamlinesFilter.h:92
OutputImageType::IndexType OutputImageIndexType
Definition: itkRelaxStreamlinesFilter.h:84
VectorInterpolatorType::Pointer VectorInterpolatorPointer
Definition: itkRelaxStreamlinesFilter.h:91
InputScalarImageType OutputImageType
Definition: itkRelaxStreamlinesFilter.h:80
void SetSegmentedImage(const InputScalarImageType *image)
Definition: itkRelaxStreamlinesFilter.h:105
InputScalarImageType::IndexType InputScalarImageIndexType
Definition: itkRelaxStreamlinesFilter.h:77
RelaxStreamlinesFilter Self
Definition: itkRelaxStreamlinesFilter.h:52
OutputImageType::ConstPointer OutputImageConstPointer
Definition: itkRelaxStreamlinesFilter.h:83
Simultaneous itk::Image and itk::Array (and hence vnl_vector) class.
const unsigned int Dimension
Definition: niftkBreastDCEandADC.cxx:89
Image< InputVectorImagePixelType, NDimensions > InputVectorImageType
Definition: itkRelaxStreamlinesFilter.h:68
void SetScalarImage(const InputScalarImageType *image)
Definition: itkRelaxStreamlinesFilter.h:99
OutputImageType::RegionType OutputImageRegionType
Definition: itkRelaxStreamlinesFilter.h:86
void SetVectorImage(const InputVectorImageType *image)
Definition: itkRelaxStreamlinesFilter.h:102
InputScalarImageType::RegionType InputScalarImageRegionType
Definition: itkRelaxStreamlinesFilter.h:79
OutputImageType::PixelType OutputImagePixelType
Definition: itkRelaxStreamlinesFilter.h:81
double m_EpsilonConvergenceThreshold
Definition: itkRelaxStreamlinesFilter.h:161
ScalarInterpolatorType::Pointer ScalarInterpolatorPointer
Definition: itkRelaxStreamlinesFilter.h:95
SmartPointer< Self > Pointer
Definition: itkRelaxStreamlinesFilter.h:54
InputScalarImageType::Pointer InputScalarImagePointer
Definition: itkRelaxStreamlinesFilter.h:76
InputVectorImageType::ConstPointer InputVectorImageConstPointer
Definition: itkRelaxStreamlinesFilter.h:70