ANIMA  4.0
animaDTIScalarMapsImageFilter.h
Go to the documentation of this file.
1 #pragma once
2 
3 // First make sure that the configuration is available.
4 // This line can be removed once the optimized versions
5 // gets integrated into the main directories.
6 #include <itkConfigure.h>
7 
9 #include <itkVectorImage.h>
10 #include <itkImage.h>
11 
12 namespace anima
13 
14 {
22 template <unsigned int ImageDimension = 3>
24  public anima::NumberedThreadImageToImageFilter < itk::VectorImage <double, ImageDimension>, itk::Image <double, ImageDimension> >
25 {
26 public:
27 
29  typedef itk::VectorImage <double, ImageDimension> InputImageType;
30  typedef itk::Image <double, ImageDimension> OutputImageType;
31  typedef InputImageType TensorImageType;
32  typedef OutputImageType FAImageType;
33  typedef OutputImageType ADCImageType;
34 
36  itkStaticConstMacro(InputImageDimension, unsigned int,
37  InputImageType::ImageDimension);
38  itkStaticConstMacro(OutputImageDimension, unsigned int,
39  OutputImageType::ImageDimension);
40 
41 
45  typedef itk::SmartPointer<Self> Pointer;
46  typedef itk::SmartPointer<const Self> ConstPointer;
47 
49  itkNewMacro(Self)
50 
51 
53 
54 
55  typedef typename TensorImageType::PixelType TensorVectorType;
56 
57  typedef typename TensorImageType::RegionType TensorImageRegionType;
58  typedef typename OutputImageType::RegionType OutputImageRegionType;
59  typedef typename TensorImageType::SizeType TensorImageSizeType;
60 
62  itk::DataObject::Pointer MakeOutput(itk::ProcessObject::DataObjectPointerArraySizeType idx) ITK_OVERRIDE;
63 
64  typename OutputImageType::Pointer GetADCImage() {return this->GetOutput(0);}
65  typename OutputImageType::Pointer GetFAImage() {return this->GetOutput(1);}
66  typename OutputImageType::Pointer GetAxialDiffusivityImage() {return this->GetOutput(2);}
67  typename OutputImageType::Pointer GetRadialDiffusivityImage() {return this->GetOutput(3);}
68 
69 protected:
72 
73  void DynamicThreadedGenerateData(const OutputImageRegionType& outputRegionForThread) ITK_OVERRIDE;
74 
75 private:
76  ITK_DISALLOW_COPY_AND_ASSIGN(DTIScalarMapsImageFilter);
77 };
78 
79 } // end of namespace anima
80 
itk::Image< double, ImageDimension > OutputImageType
anima::NumberedThreadImageToImageFilter< InputImageType, OutputImageType > Superclass
Implements a class to handle thread number in a dynamic way for multithreaded methods needing thread ...
OutputImageType::RegionType OutputImageRegionType
itk::VectorImage< double, ImageDimension > InputImageType
itk::DataObject::Pointer MakeOutput(itk::ProcessObject::DataObjectPointerArraySizeType idx) ITK_OVERRIDE
Applies an variance filter to an image.
TensorImageType::RegionType TensorImageRegionType
OutputImageType::Pointer GetRadialDiffusivityImage()
void DynamicThreadedGenerateData(const OutputImageRegionType &outputRegionForThread) ITK_OVERRIDE
OutputImageType::Pointer GetAxialDiffusivityImage()
itk::SmartPointer< const Self > ConstPointer
static const unsigned int OutputImageDimension