NifTK  16.4.1 - 0798f20
CMIC's Translational Medical Imaging Platform
itkJorgesInitializationRelaxStreamlinesFilter.h
Go to the documentation of this file.
1 /*=============================================================================
2 
3  NifTK: A software platform for medical image computing.
4 
5  Copyright (c) University College London (UCL). All rights reserved.
6 
7  This software is distributed WITHOUT ANY WARRANTY; without even
8  the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
9  PURPOSE.
10 
11  See LICENSE.txt in the top level directory for details.
12 
13 =============================================================================*/
14 
15 #ifndef itkJorgesInitializationRelaxStreamlinesFilter_h
16 #define itkJorgesInitializationRelaxStreamlinesFilter_h
17 
19 
20 namespace itk {
27 template < class TImageType, typename TScalarType, unsigned int NDimensions>
29  public RelaxStreamlinesFilter< TImageType, TScalarType, NDimensions>
30 {
31 public:
32 
36  typedef SmartPointer<Self> Pointer;
37  typedef SmartPointer<const Self> ConstPointer;
38 
40  itkNewMacro(Self);
41 
44 
46  typedef typename Superclass::InputVectorImagePixelType InputVectorImagePixelType;
47  typedef typename Superclass::InputVectorImageType InputVectorImageType;
48  typedef typename Superclass::InputVectorImagePointer InputVectorImagePointer;
49  typedef typename Superclass::InputVectorImageConstPointer InputVectorImageConstPointer;
50  typedef typename Superclass::InputVectorImageIndexType InputVectorImageIndexType;
51  typedef typename Superclass::InputScalarImagePixelType InputScalarImagePixelType;
52  typedef typename Superclass::InputScalarImageType InputScalarImageType;
53  typedef typename Superclass::InputScalarImagePointType InputScalarImagePointType;
54  typedef typename Superclass::InputScalarImagePointer InputScalarImagePointer;
55  typedef typename Superclass::InputScalarImageIndexType InputScalarImageIndexType;
56  typedef typename Superclass::InputScalarImageConstPointer InputScalarImageConstPointer;
57  typedef typename Superclass::InputScalarImageRegionType InputScalarImageRegionType;
58  typedef typename Superclass::InputScalarImageSpacingType InputScalarImageSpacingType;
60  typedef typename InputScalarImageType::PointType InputScalarImageOriginType;
61  typedef typename Superclass::OutputImageType OutputImageType;
62  typedef typename Superclass::OutputImagePixelType OutputImagePixelType;
63  typedef typename Superclass::OutputImagePointer OutputImagePointer;
64  typedef typename Superclass::OutputImageConstPointer OutputImageConstPointer;
65  typedef typename Superclass::OutputImageIndexType OutputImageIndexType;
66  typedef typename Superclass::OutputImageSpacingType OutputImageSpacingType;
69  typedef typename OutputImageType::DirectionType OutputImageDirectionType;
70  typedef typename OutputImageType::PointType OutputImageOriginType;
71  typedef typename Superclass::VectorInterpolatorType VectorInterpolatorType;
72  typedef typename Superclass::VectorInterpolatorPointer VectorInterpolatorPointer;
73  typedef typename Superclass::VectorInterpolatorPointType VectorInterpolatorPointType;
74  typedef typename Superclass::ScalarInterpolatorType ScalarInterpolatorType;
75  typedef typename Superclass::ScalarInterpolatorPointer ScalarInterpolatorPointer;
76  typedef typename Superclass::ScalarInterpolatorPointType ScalarInterpolatorPointType;
77  typedef ContinuousIndex<TScalarType, TImageType::ImageDimension> ContinuousIndexType;
78  typedef Point<TScalarType, TImageType::ImageDimension> PointType;
79 
81  void SetSegmentedImage(const InputScalarImageType *image) {this->SetNthInput(2, const_cast<InputScalarImageType *>(image)); }
82 
84  void SetGMPVMap(const InputScalarImageType *image) {this->SetNthInput(3, const_cast<InputScalarImageType *>(image)); }
85 
86 protected:
89  void PrintSelf(std::ostream& os, Indent indent) const;
90 
91 private:
92 
97  void operator=(const Self&);
98 
99  OutputImagePixelType GetInitilizedValue(
100  InputScalarImagePixelType& segmentedValue,
101  InputScalarImageType* segmentedImage,
102  InputScalarImageType* gmPVImage,
103  InputScalarImageIndexType& index,
104  bool& initializeLOImage,
105  bool& initializeL1Image,
106  bool& addToGreyList);
107 
108  void InitializeBoundaries(
109  std::vector<InputScalarImageIndexType>& completeListOfGreyMatterPixels,
110  InputScalarImageType* scalarImage,
111  InputVectorImageType* vectorImage,
112  OutputImageType* L0Image,
113  OutputImageType* L1Image,
114  std::vector<InputScalarImageIndexType>& L0greyList,
115  std::vector<InputScalarImageIndexType>& L1greyList
116  );
117 
118 };
119 
120 } // end namespace
121 
122 #ifndef ITK_MANUAL_INSTANTIATION
123 #include "itkJorgesInitializationRelaxStreamlinesFilter.txx"
124 #endif
125 
126 #endif
Superclass::InputScalarImagePixelType InputScalarImagePixelType
Definition: itkJorgesInitializationRelaxStreamlinesFilter.h:51
Superclass::InputScalarImagePointType InputScalarImagePointType
Definition: itkJorgesInitializationRelaxStreamlinesFilter.h:53
Superclass::InputVectorImageIndexType InputVectorImageIndexType
Definition: itkJorgesInitializationRelaxStreamlinesFilter.h:50
ImageType::SizeType SizeType
Definition: niftkMakeLapUSProbeBasicModel.cxx:31
Superclass::InputScalarImageConstPointer InputScalarImageConstPointer
Definition: itkJorgesInitializationRelaxStreamlinesFilter.h:56
OutputImageType::DirectionType OutputImageDirectionType
Definition: itkJorgesInitializationRelaxStreamlinesFilter.h:69
Point< TScalarType, TImageType::ImageDimension > PointType
Definition: itkJorgesInitializationRelaxStreamlinesFilter.h:78
Superclass::OutputImageType OutputImageType
Definition: itkJorgesInitializationRelaxStreamlinesFilter.h:61
GLenum GLsizei GLenum GLenum const GLvoid * image
Definition: glew.h:4052
void SetSegmentedImage(const InputScalarImageType *image)
Definition: itkJorgesInitializationRelaxStreamlinesFilter.h:81
Superclass::InputScalarImagePointer InputScalarImagePointer
Definition: itkJorgesInitializationRelaxStreamlinesFilter.h:54
Definition: niftkITKAffineResampleImage.cxx:74
Superclass::OutputImagePixelType OutputImagePixelType
Definition: itkJorgesInitializationRelaxStreamlinesFilter.h:62
Superclass::VectorInterpolatorPointType VectorInterpolatorPointType
Definition: itkJorgesInitializationRelaxStreamlinesFilter.h:73
Superclass::OutputImageIndexType OutputImageIndexType
Definition: itkJorgesInitializationRelaxStreamlinesFilter.h:65
Superclass::InputScalarImageType InputScalarImageType
Definition: itkJorgesInitializationRelaxStreamlinesFilter.h:52
RelaxStreamlinesFilter< TImageType, TScalarType, NDimensions > Superclass
Definition: itkJorgesInitializationRelaxStreamlinesFilter.h:35
Superclass::InputVectorImageConstPointer InputVectorImageConstPointer
Definition: itkJorgesInitializationRelaxStreamlinesFilter.h:49
Superclass::InputVectorImageType InputVectorImageType
Definition: itkJorgesInitializationRelaxStreamlinesFilter.h:47
Superclass::InputScalarImageIndexType InputScalarImageIndexType
Definition: itkJorgesInitializationRelaxStreamlinesFilter.h:55
OutputImageType::SizeType OutputImageSizeType
Definition: itkJorgesInitializationRelaxStreamlinesFilter.h:68
JorgesInitializationRelaxStreamlinesFilter Self
Definition: itkJorgesInitializationRelaxStreamlinesFilter.h:34
InputScalarImageType::SizeType InputScalarImageSizeType
Definition: itkJorgesInitializationRelaxStreamlinesFilter.h:59
Superclass::ScalarInterpolatorPointer ScalarInterpolatorPointer
Definition: itkJorgesInitializationRelaxStreamlinesFilter.h:75
Superclass::InputScalarImageRegionType InputScalarImageRegionType
Definition: itkJorgesInitializationRelaxStreamlinesFilter.h:57
Superclass::ScalarInterpolatorPointType ScalarInterpolatorPointType
Definition: itkJorgesInitializationRelaxStreamlinesFilter.h:76
Calculates length between two boundaries, solving PDE by iterative relaxation.
Definition: itkRelaxStreamlinesFilter.h:46
ImageType::RegionType RegionType
Definition: niftkMakeLapUSProbeBasicModel.cxx:30
Superclass::ScalarInterpolatorType ScalarInterpolatorType
Definition: itkJorgesInitializationRelaxStreamlinesFilter.h:74
OutputImageType::RegionType OutputImageRegionType
Definition: itkJorgesInitializationRelaxStreamlinesFilter.h:67
OutputImageType::PointType OutputImageOriginType
Definition: itkJorgesInitializationRelaxStreamlinesFilter.h:70
InputScalarImageType::PointType InputScalarImageOriginType
Definition: itkJorgesInitializationRelaxStreamlinesFilter.h:60
SmartPointer< Self > Pointer
Definition: itkJorgesInitializationRelaxStreamlinesFilter.h:36
GLuint index
Definition: glew.h:1798
Superclass::OutputImagePointer OutputImagePointer
Definition: itkJorgesInitializationRelaxStreamlinesFilter.h:63
Implementation of Jorges method to initialize GM boundaries prior to cortical thickness calculations...
Definition: itkJorgesInitializationRelaxStreamlinesFilter.h:28
Superclass::OutputImageConstPointer OutputImageConstPointer
Definition: itkJorgesInitializationRelaxStreamlinesFilter.h:64
Superclass::OutputImageSpacingType OutputImageSpacingType
Definition: itkJorgesInitializationRelaxStreamlinesFilter.h:66
ContinuousIndex< TScalarType, TImageType::ImageDimension > ContinuousIndexType
Definition: itkJorgesInitializationRelaxStreamlinesFilter.h:77
~JorgesInitializationRelaxStreamlinesFilter()
Definition: itkJorgesInitializationRelaxStreamlinesFilter.h:88
Superclass::InputVectorImagePointer InputVectorImagePointer
Definition: itkJorgesInitializationRelaxStreamlinesFilter.h:48
void SetGMPVMap(const InputScalarImageType *image)
Definition: itkJorgesInitializationRelaxStreamlinesFilter.h:84
Superclass::VectorInterpolatorPointer VectorInterpolatorPointer
Definition: itkJorgesInitializationRelaxStreamlinesFilter.h:72
Superclass::InputScalarImageSpacingType InputScalarImageSpacingType
Definition: itkJorgesInitializationRelaxStreamlinesFilter.h:58
Superclass::VectorInterpolatorType VectorInterpolatorType
Definition: itkJorgesInitializationRelaxStreamlinesFilter.h:71
SmartPointer< const Self > ConstPointer
Definition: itkJorgesInitializationRelaxStreamlinesFilter.h:37
Superclass::InputVectorImagePixelType InputVectorImagePixelType
Definition: itkJorgesInitializationRelaxStreamlinesFilter.h:43