ANIMA  4.0
animaSVFLieBracketImageFilter.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include <itkImageToImageFilter.h>
4 
5 namespace anima
6 {
7 
17 template <typename TPixelType, unsigned int Dimension>
19 public itk::ImageToImageFilter< itk::Image <itk::Vector <TPixelType, Dimension>, Dimension> ,
20  itk::Image <itk::Vector <TPixelType, Dimension>, Dimension> >
21 {
22 public:
24  typedef typename itk::Image <itk::Vector <TPixelType, Dimension>, Dimension> InputImageType;
25  typedef typename itk::Image <itk::Vector <TPixelType, Dimension * Dimension>, Dimension> JacobianImageType;
26  typedef typename itk::Image <itk::Vector <TPixelType, Dimension>, Dimension> OutputImageType;
27  typedef itk::ImageToImageFilter <InputImageType, OutputImageType> Superclass;
28  typedef itk::SmartPointer<Self> Pointer;
29  typedef itk::SmartPointer<const Self> ConstPointer;
30 
31  itkNewMacro(Self)
32 
33  itkTypeMacro(SVFLieBracketImageFilter, itk::ImageToImageFilter)
34 
35  typedef typename InputImageType::PixelType InputPixelType;
36  typedef typename OutputImageType::PixelType OutputPixelType;
37  typedef typename JacobianImageType::Pointer JacobianImagePointer;
38  typedef typename JacobianImageType::PixelType JacobianPixelType;
39 
40  typedef typename Superclass::OutputImageRegionType OutputImageRegionType;
41 
42  itkSetObjectMacro(FirstFieldJacobian, JacobianImageType)
43  itkSetObjectMacro(SecondFieldJacobian, JacobianImageType)
44  itkGetObjectMacro(FirstFieldJacobian, JacobianImageType)
45  itkGetObjectMacro(SecondFieldJacobian, JacobianImageType)
46 
47 protected:
49  {
50  this->SetNumberOfRequiredInputs(2);
51  m_FirstFieldJacobian = 0;
52  m_SecondFieldJacobian = 0;
53  }
54 
56 
57  void BeforeThreadedGenerateData() ITK_OVERRIDE;
58  void DynamicThreadedGenerateData(const OutputImageRegionType &outputRegionForThread) ITK_OVERRIDE;
59 
60 private:
61  ITK_DISALLOW_COPY_AND_ASSIGN(SVFLieBracketImageFilter);
62 
63  JacobianImagePointer m_FirstFieldJacobian, m_SecondFieldJacobian;
64 };
65 
66 } // end namespace anima
67 
itk::Image< itk::Vector< TPixelType, Dimension >, Dimension > OutputImageType
Computes the Lie bracket between two fields u and v as expressed by Bossa et al.
itk::SmartPointer< const Self > ConstPointer
JacobianImageType::Pointer JacobianImagePointer
itk::ImageToImageFilter< InputImageType, OutputImageType > Superclass
Superclass::OutputImageRegionType OutputImageRegionType
itkGetObjectMacro(FirstFieldJacobian, JacobianImageType) itkGetObjectMacro(SecondFieldJacobian
itk::Image< itk::Vector< TPixelType, Dimension *Dimension >, Dimension > JacobianImageType
void DynamicThreadedGenerateData(const OutputImageRegionType &outputRegionForThread) ITK_OVERRIDE
itk::Image< itk::Vector< TPixelType, Dimension >, Dimension > InputImageType
JacobianImageType::PixelType JacobianPixelType