NifTK  16.4.1 - 0798f20
CMIC's Translational Medical Imaging Platform
itkDoubleWindowBoundaryShiftIntegralCalculator.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 itkDoubleWindowBoundaryShiftIntegralCalculator_h
16 #define itkDoubleWindowBoundaryShiftIntegralCalculator_h
17 
18 #include <itkImage.h>
19 #include <itkObject.h>
20 #include <itkMacro.h>
22 
23 namespace itk
24 {
25 
36 template <class TInputImage, class TInputMask, class TOutputImage>
37 class ITK_EXPORT DoubleWindowBoundaryShiftIntegralCalculator: public BoundaryShiftIntegralCalculator<TInputImage, TInputMask, TOutputImage>
38 {
39 public:
45  typedef SmartPointer<Self> Pointer;
46  typedef SmartPointer<const Self> ConstPointer;
50  typedef typename TInputImage::Pointer TInputImagePointer;
51  typedef typename TInputMask::Pointer TInputMaskPointer;
52  typedef double WeightPixelType;
57  itkNewMacro(Self);
65  itkSetMacro(SecondUpperCutoffValue, double);
66  itkSetMacro(SecondLowerCutoffValue, double);
67  itkGetMacro(FirstBoundaryShiftIntegral, double);
68  itkGetMacro(SecondBoundaryShiftIntegral, double);
69  itkSetMacro(WeightImage, typename WeightImageType::Pointer);
70  itkSetMacro(MinSecondWindowWidth, double);
71  itkGetMacro(MinSecondWindowWidth, double);
72  itkGetMacro(SecondBSIMap, typename TOutputImage::Pointer);
73  itkGetMacro(BSIMap, typename TOutputImage::Pointer);
74  itkSetMacro(ProbabilisticBSI, unsigned int);
75  itkGetMacro(BSIMapSIENAStyle,TInputImagePointer);
76 
77 protected:
84  virtual void IntegrateOverBSIMask(void) throw (ExceptionObject);
85 
86 protected:
90  double m_SecondUpperCutoffValue;
94  double m_SecondLowerCutoffValue;
98  double m_FirstBoundaryShiftIntegral;
102  double m_SecondBoundaryShiftIntegral;
106  typename WeightImageType::Pointer m_WeightImage;
111  double m_MinSecondWindowWidth;
115  typename TOutputImage::Pointer m_SecondBSIMap;
119  typename TOutputImage::Pointer m_BSIMap;
123  TInputImagePointer m_BSIMapSIENAStyle;
127  unsigned int m_ProbabilisticBSI;
128 
129 private:
130  DoubleWindowBoundaryShiftIntegralCalculator(const Self&); //purposely not implemented
131  void operator=(const Self&); //purposely not implemented
132 
133 
134 };
135 
136 }
137 
138 #ifndef ITK_MANUAL_INSTANTIATION
139 #include "itkDoubleWindowBoundaryShiftIntegralCalculator.txx"
140 #endif
141 
142 #endif
Calculate the boundary shift integral using double intensity window.
Definition: itkDoubleWindowBoundaryShiftIntegralCalculator.h:37
TInputMask::Pointer TInputMaskPointer
Definition: itkDoubleWindowBoundaryShiftIntegralCalculator.h:51
SmartPointer< const Self > ConstPointer
Definition: itkDoubleWindowBoundaryShiftIntegralCalculator.h:46
Definition: niftkITKAffineResampleImage.cxx:74
Calculate the boundary shift integral.
Definition: itkBoundaryShiftIntegralCalculator.h:36
DoubleWindowBoundaryShiftIntegralCalculator Self
Definition: itkDoubleWindowBoundaryShiftIntegralCalculator.h:43
double WeightPixelType
Definition: itkDoubleWindowBoundaryShiftIntegralCalculator.h:52
virtual ~DoubleWindowBoundaryShiftIntegralCalculator()
Definition: itkDoubleWindowBoundaryShiftIntegralCalculator.h:79
TInputImage::Pointer TInputImagePointer
Definition: itkDoubleWindowBoundaryShiftIntegralCalculator.h:50
BoundaryShiftIntegralCalculator< TInputImage, TInputMask, TOutputImage > Superclass
Definition: itkDoubleWindowBoundaryShiftIntegralCalculator.h:44
SmartPointer< Self > Pointer
Definition: itkDoubleWindowBoundaryShiftIntegralCalculator.h:45
Simultaneous itk::Image and itk::Array (and hence vnl_vector) class.
Image< WeightPixelType, TInputImage::ImageDimension > WeightImageType
Definition: itkDoubleWindowBoundaryShiftIntegralCalculator.h:53