15 #ifndef itkOrderedTraversalStreamlinesFilter_h
16 #define itkOrderedTraversalStreamlinesFilter_h
19 #include <itkVector.h>
21 #include <itkVectorInterpolateImageFunction.h>
22 #include <itkInterpolateImageFunction.h>
45 template <
class TImageType,
typename TScalarType=
double,
unsigned int NDimensions=3 >
64 itkStaticConstMacro(
Dimension,
unsigned int, NDimensions);
87 typedef VectorInterpolateImageFunction<InputVectorImageType
92 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)); }
107 void PrintSelf(std::ostream& os, Indent indent)
const;
110 virtual void GenerateData();
113 typedef std::pair<TScalarType, InputScalarImageIndexType>
Pair;
114 typedef std::multimap<TScalarType, InputScalarImageIndexType>
MinMap;
124 void operator=(
const Self&);
131 OutputImagePixelType GetLaplacian(
const InputScalarImageIndexType&
index,
133 const typename InputScalarImageType::Pointer& scalarImage);
139 OutputImagePixelType Solve(
const InputScalarImageIndexType&
index,
141 const typename InputVectorImageType::Pointer& vectorImage,
142 const typename OutputImageType::Pointer& distanceImage);
148 bool IsNextToBoundary(
const InputScalarImageIndexType&
index,
149 const typename InputScalarImageType::Pointer& scalarImage,
150 const typename StatusImageType::Pointer& statusImage,
151 const InputScalarImagePixelType& threshold);
158 void DoOrderedTraversal(
const int&
offset,
159 const InputScalarImagePixelType& threshold,
160 const typename InputScalarImageType::Pointer& scalarImage,
161 const typename InputVectorImageType::Pointer& vectorImage,
162 const typename OutputImageType::Pointer& distanceImage);
165 unsigned char BOUNDARY;
166 unsigned char FIRST_PASS;
167 unsigned char UNVISITED;
168 unsigned char VISITED;
169 unsigned char SOLVED;
175 #ifndef ITK_MANUAL_INSTANTIATION
176 #include "itkOrderedTraversalStreamlinesFilter.txx"
InputScalarImageType::IndexType InputScalarImageIndexType
Definition: itkOrderedTraversalStreamlinesFilter.h:76
InputScalarImageType::PointType InputScalarImagePointType
Definition: itkOrderedTraversalStreamlinesFilter.h:74
MinMap::reverse_iterator MinMapReverseIterator
Definition: itkOrderedTraversalStreamlinesFilter.h:116
InputVectorImageType::ConstPointer InputVectorImageConstPointer
Definition: itkOrderedTraversalStreamlinesFilter.h:70
ImageType::SizeType SizeType
Definition: niftkMakeLapUSProbeBasicModel.cxx:31
OutputImageType::Pointer OutputImagePointer
Definition: itkOrderedTraversalStreamlinesFilter.h:82
VectorInterpolateImageFunction< InputVectorImageType,TScalarType > VectorInterpolatorType
Definition: itkOrderedTraversalStreamlinesFilter.h:89
GLenum GLsizei GLenum GLenum const GLvoid * image
Definition: glew.h:4052
InputScalarImageType::ConstPointer InputScalarImageConstPointer
Definition: itkOrderedTraversalStreamlinesFilter.h:77
OutputImageType::ConstPointer OutputImageConstPointer
Definition: itkOrderedTraversalStreamlinesFilter.h:83
OutputImageType::SpacingType OutputImageSpacingType
Definition: itkOrderedTraversalStreamlinesFilter.h:85
~OrderedTraversalStreamlinesFilter()
Definition: itkOrderedTraversalStreamlinesFilter.h:106
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
void SetScalarImage(const InputScalarImageType *image)
Definition: itkOrderedTraversalStreamlinesFilter.h:99
InterpolateImageFunction< InputScalarImageType,TScalarType > ScalarInterpolatorType
Definition: itkOrderedTraversalStreamlinesFilter.h:93
GLintptr offset
Definition: glew.h:1666
Image< InputScalarImagePixelType, NDimensions > InputScalarImageType
Definition: itkOrderedTraversalStreamlinesFilter.h:73
InputScalarImageType OutputImageType
Definition: itkOrderedTraversalStreamlinesFilter.h:80
std::multimap< TScalarType, InputScalarImageIndexType > MinMap
Definition: itkOrderedTraversalStreamlinesFilter.h:114
Image< unsigned char, Dimension > StatusImageType
Definition: itkOrderedTraversalStreamlinesFilter.h:96
MinMap::iterator MinMapIterator
Definition: itkOrderedTraversalStreamlinesFilter.h:115
InputScalarImageType::Pointer InputScalarImagePointer
Definition: itkOrderedTraversalStreamlinesFilter.h:75
VectorInterpolatorType::PointType VectorInterpolatorPointType
Definition: itkOrderedTraversalStreamlinesFilter.h:91
float PixelType
Definition: niftkBreastDCEandADC.cxx:88
OutputImageType::IndexType OutputImageIndexType
Definition: itkOrderedTraversalStreamlinesFilter.h:84
ScalarInterpolatorType::PointType ScalarInterpolatorPointType
Definition: itkOrderedTraversalStreamlinesFilter.h:95
ImageType::RegionType RegionType
Definition: niftkMakeLapUSProbeBasicModel.cxx:30
InputVectorImageType::IndexType InputVectorImageIndexType
Definition: itkOrderedTraversalStreamlinesFilter.h:71
ScalarInterpolatorType::Pointer ScalarInterpolatorPointer
Definition: itkOrderedTraversalStreamlinesFilter.h:94
OutputImageType::PixelType OutputImagePixelType
Definition: itkOrderedTraversalStreamlinesFilter.h:81
Calculates length between two boundaries, solving PDE by ordered traversal.
Definition: itkOrderedTraversalStreamlinesFilter.h:46
GLuint index
Definition: glew.h:1798
InputScalarImageType::RegionType InputScalarImageRegionType
Definition: itkOrderedTraversalStreamlinesFilter.h:78
Image< InputVectorImagePixelType, NDimensions > InputVectorImageType
Definition: itkOrderedTraversalStreamlinesFilter.h:68
OrderedTraversalStreamlinesFilter Self
Definition: itkOrderedTraversalStreamlinesFilter.h:52
void SetVectorImage(const InputVectorImageType *image)
Definition: itkOrderedTraversalStreamlinesFilter.h:102
SmartPointer< Self > Pointer
Definition: itkOrderedTraversalStreamlinesFilter.h:54
SmartPointer< const Self > ConstPointer
Definition: itkOrderedTraversalStreamlinesFilter.h:55
Simultaneous itk::Image and itk::Array (and hence vnl_vector) class.
const unsigned int Dimension
Definition: niftkBreastDCEandADC.cxx:89
TScalarType InputScalarImagePixelType
Definition: itkOrderedTraversalStreamlinesFilter.h:72
InputScalarImageType::SizeType InputScalarImageSizeType
Definition: itkOrderedTraversalStreamlinesFilter.h:79
InputVectorImageType::Pointer InputVectorImagePointer
Definition: itkOrderedTraversalStreamlinesFilter.h:69
Vector< TScalarType, NDimensions > InputVectorImagePixelType
Definition: itkOrderedTraversalStreamlinesFilter.h:67
VectorInterpolatorType::Pointer VectorInterpolatorPointer
Definition: itkOrderedTraversalStreamlinesFilter.h:90
std::pair< TScalarType, InputScalarImageIndexType > Pair
Definition: itkOrderedTraversalStreamlinesFilter.h:113
BaseCTEStreamlinesFilter< TImageType, TScalarType, NDimensions > Superclass
Definition: itkOrderedTraversalStreamlinesFilter.h:53