Medical Imaging Interaction Toolkit  2016.11.0
Medical Imaging Interaction Toolkit
itkTensorImageToQBallImageFilter.h
Go to the documentation of this file.
1 /*===================================================================
2 
3 The Medical Imaging Interaction Toolkit (MITK)
4 
5 Copyright (c) German Cancer Research Center,
6 Division of Medical and Biological Informatics.
7 All rights reserved.
8 
9 This software is distributed WITHOUT ANY WARRANTY; without
10 even the implied warranty of MERCHANTABILITY or FITNESS FOR
11 A PARTICULAR PURPOSE.
12 
13 See LICENSE.txt or http://www.mitk.org for details.
14 
15 ===================================================================*/
16 /*=========================================================================
17 
18 Program: Tensor ToolKit - TTK
19 Module: $URL: svn://scm.gforge.inria.fr/svn/ttk/trunk/Algorithms/itkTensorImageToQBallImageFilter.h $
20 Language: C++
21 Date: $Date: 2010-06-07 13:39:13 +0200 (Mo, 07 Jun 2010) $
22 Version: $Revision: 68 $
23 
24 Copyright (c) INRIA 2010. All rights reserved.
25 See LICENSE.txt for details.
26 
27 This software is distributed WITHOUT ANY WARRANTY; without even
28 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
29 PURPOSE. See the above copyright notices for more information.
30 
31 =========================================================================*/
32 #ifndef _itk_TensorImageToQBallImageFilter_h_
33 #define _itk_TensorImageToQBallImageFilter_h_
34 
35 #include "itkImageToImageFilter.h"
36 #include <mitkQBallImage.h>
37 #include <itkDiffusionTensor3D.h>
38 
39 
40 namespace itk
41 {
42 
43  template <class TInputScalarType, class TOutputScalarType>
45  : public ImageToImageFilter<itk::Image<itk::DiffusionTensor3D<TInputScalarType>,3>, itk::Image<itk::Vector<TOutputScalarType,QBALL_ODFSIZE>,3> >
46  {
47 
48  public:
49 
50  typedef TInputScalarType InputScalarType;
51  typedef itk::DiffusionTensor3D<InputScalarType> InputPixelType;
52  typedef itk::Image<InputPixelType,3> InputImageType;
53  typedef typename InputImageType::RegionType InputImageRegionType;
54 
55  typedef TOutputScalarType OutputScalarType;
56  typedef itk::Vector<OutputScalarType,QBALL_ODFSIZE> OutputPixelType;
57  typedef itk::Image<OutputPixelType,3> OutputImageType;
58  typedef typename OutputImageType::RegionType OutputImageRegionType;
59 
61  typedef ImageToImageFilter<InputImageType, OutputImageType> Superclass;
62 
65 
66  itkTypeMacro (TensorImageToQBallImageFilter, ImageToImageFilter);
67 
68  itkStaticConstMacro (ImageDimension, unsigned int,
69  OutputImageType::ImageDimension);
70 
71  itkFactorylessNewMacro(Self)
72  itkCloneMacro(Self)
73 
74 
75  protected:
78 
79  void PrintSelf (std::ostream& os, Indent indent) const
80  {
81  Superclass::PrintSelf (os, indent);
82  }
83 
84  void BeforeThreadedGenerateData( void );
85 
86  void ThreadedGenerateData( const
87  OutputImageRegionType &outputRegionForThread, ThreadIdType);
88 
89  //void GenerateData();
90 
91  private:
92 
93  TensorImageToQBallImageFilter (const Self&);
94  void operator=(const Self&);
95 
96  typename InputImageType::Pointer m_ItkTensorImage;
97  typename OutputImageType::Pointer m_ItkQBallImage;
98  };
99 
100 } // end of namespace
101 
102 
103 #ifndef ITK_MANUAL_INSTANTIATION
105 #endif
106 
107 
108 #endif
itkStaticConstMacro(ImageDimension, unsigned int, OutputImageType::ImageDimension)
itk::SmartPointer< Self > Pointer
itk::Image< OutputPixelType, 3 > OutputImageType
ImageToImageFilter< InputImageType, OutputImageType > Superclass
itk::Image< InputPixelType, 3 > InputImageType
itk::Vector< OutputScalarType, QBALL_ODFSIZE > OutputPixelType
itk::DiffusionTensor3D< InputScalarType > InputPixelType
void ThreadedGenerateData(const OutputImageRegionType &outputRegionForThread, ThreadIdType)
void PrintSelf(std::ostream &os, Indent indent) const