NifTK  16.4.1 - 0798f20
CMIC's Translational Medical Imaging Platform
itkSubtract2DImageFromVolumeSliceFilter.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 itkSubtract2DImageFromVolumeSliceFilter_h
16 #define itkSubtract2DImageFromVolumeSliceFilter_h
17 
18 #include <itkInPlaceImageFilter.h>
19 
20 namespace itk
21 {
22 
30 template <class IntensityType = float>
32  public ImageToImageFilter< Image<IntensityType, 2>, Image<IntensityType, 2> >
33 {
34 public:
35 
38  typedef ImageToImageFilter< Image< IntensityType, 2>, Image<IntensityType, 2> > Superclass;
39  typedef SmartPointer<Self> Pointer;
40  typedef SmartPointer<const Self> ConstPointer;
41 
43  itkNewMacro(Self);
44 
46  itkTypeMacro(Subtract2DImageFromVolumeSliceFilter, ImageToImageFilter);
47 
50  typedef typename InputImageType::Pointer InputImagePointer;
54  typedef typename InputImageType::SpacingType InputImageSpacingType;
55  typedef typename InputImageType::PointType InputImagePointType;
57 
59  typedef typename InputProjectionVolumeType::Pointer InputProjectionVolumePointer;
63  typedef typename InputProjectionVolumeType::SpacingType InputProjectionVolumeSpacingType;
64  typedef typename InputProjectionVolumeType::PointType InputProjectionVolumePointType;
66 
68  typedef typename OutputSubtractedImageType::Pointer OutputSubtractedImagePointer;
72  typedef typename OutputSubtractedImageType::SpacingType OutputSubtractedImageSpacingType;
73  typedef typename OutputSubtractedImageType::PointType OutputSubtractedImagePointType;
74 
76  void SetInputImage2D( const InputImageType *im2D);
77 
79  void SetInputVolume3D( const InputProjectionVolumeType * im3D);
80 
82  itkStaticConstMacro(InputImageDimension, unsigned int,
83  InputImageType::ImageDimension);
84  itkStaticConstMacro(OutputImageDimension, unsigned int,
85  OutputSubtractedImageType::ImageDimension);
86 
88  itkSetMacro( SliceNumber, unsigned int);
89 
90 
91 protected:
92 
95 
96  void PrintSelf(std::ostream& os, Indent indent) const;
97 
108  virtual void BeforeThreadedGenerateData(void);
109 
120  virtual void AfterThreadedGenerateData(void);
121 
123  void GenerateData(void);
124 
135  void ThreadedGenerateData(const OutputSubtractedImageRegionType &outputRegionForThread,
136  ThreadIdType threadId );
137 
139  unsigned int m_SliceNumber;
140 
141 private:
142  Subtract2DImageFromVolumeSliceFilter(const Self&); //purposely not implemented
143  void operator=(const Self&); //purposely not implemented
144 
145 };
146 
147 } // end namespace itk
148 
149 #ifndef ITK_MANUAL_INSTANTIATION
150 #include "itkSubtract2DImageFromVolumeSliceFilter.txx"
151 #endif
152 
153 #endif
virtual ~Subtract2DImageFromVolumeSliceFilter()
Definition: itkSubtract2DImageFromVolumeSliceFilter.h:94
Image< IntensityType, 2 > OutputSubtractedImageType
Definition: itkSubtract2DImageFromVolumeSliceFilter.h:67
InputImageType::IndexType InputImageIndexType
Definition: itkSubtract2DImageFromVolumeSliceFilter.h:56
InputImageType::PointType InputImagePointType
Definition: itkSubtract2DImageFromVolumeSliceFilter.h:55
InputProjectionVolumeType::Pointer InputProjectionVolumePointer
Definition: itkSubtract2DImageFromVolumeSliceFilter.h:59
InputImageType::SizeType InputImageSizeType
Definition: itkSubtract2DImageFromVolumeSliceFilter.h:53
ImageType::SizeType SizeType
Definition: niftkMakeLapUSProbeBasicModel.cxx:31
InputProjectionVolumeType::SizeType InputProjectionVolumeSizeType
Definition: itkSubtract2DImageFromVolumeSliceFilter.h:62
SmartPointer< Self > Pointer
Definition: itkSubtract2DImageFromVolumeSliceFilter.h:39
OutputSubtractedImageType::Pointer OutputSubtractedImagePointer
Definition: itkSubtract2DImageFromVolumeSliceFilter.h:68
Implements an operator for pixel-wise subtraction of a slice of a 3D volume from a 2D image...
Definition: itkSubtract2DImageFromVolumeSliceFilter.h:31
OutputSubtractedImageType::SpacingType OutputSubtractedImageSpacingType
Definition: itkSubtract2DImageFromVolumeSliceFilter.h:72
InputProjectionVolumeType::PointType InputProjectionVolumePointType
Definition: itkSubtract2DImageFromVolumeSliceFilter.h:64
Definition: niftkITKAffineResampleImage.cxx:74
ImageType::IndexType IndexType
Definition: niftkMakeLapUSProbeBasicModel.cxx:32
OutputSubtractedImageType::PointType OutputSubtractedImagePointType
Definition: itkSubtract2DImageFromVolumeSliceFilter.h:73
OutputSubtractedImageType::RegionType OutputSubtractedImageRegionType
Definition: itkSubtract2DImageFromVolumeSliceFilter.h:69
InputProjectionVolumeType::SpacingType InputProjectionVolumeSpacingType
Definition: itkSubtract2DImageFromVolumeSliceFilter.h:63
InputImageType::RegionType InputImageRegionType
Definition: itkSubtract2DImageFromVolumeSliceFilter.h:51
SmartPointer< const Self > ConstPointer
Definition: itkSubtract2DImageFromVolumeSliceFilter.h:40
InputImageType::PixelType InputImagePixelType
Definition: itkSubtract2DImageFromVolumeSliceFilter.h:52
InputImageType::SpacingType InputImageSpacingType
Definition: itkSubtract2DImageFromVolumeSliceFilter.h:54
float PixelType
Definition: niftkBreastDCEandADC.cxx:88
InputImageType::Pointer InputImagePointer
Definition: itkSubtract2DImageFromVolumeSliceFilter.h:50
ImageType::RegionType RegionType
Definition: niftkMakeLapUSProbeBasicModel.cxx:30
InputProjectionVolumeType::IndexType InputProjectionVolumeIndexType
Definition: itkSubtract2DImageFromVolumeSliceFilter.h:65
ImageToImageFilter< Image< IntensityType, 2 >, Image< IntensityType, 2 > > Superclass
Definition: itkSubtract2DImageFromVolumeSliceFilter.h:38
OutputSubtractedImageType::SizeType OutputSubtractedImageSizeType
Definition: itkSubtract2DImageFromVolumeSliceFilter.h:71
Simultaneous itk::Image and itk::Array (and hence vnl_vector) class.
OutputSubtractedImageType::PixelType OutputSubtractedImagePixelType
Definition: itkSubtract2DImageFromVolumeSliceFilter.h:70
Image< IntensityType, 2 > InputImageType
Definition: itkSubtract2DImageFromVolumeSliceFilter.h:46
unsigned int m_SliceNumber
The slice number of the 3D volume to be subtracted from the 2D image.
Definition: itkSubtract2DImageFromVolumeSliceFilter.h:139
InputProjectionVolumeType::PixelType InputProjectionVolumePixelType
Definition: itkSubtract2DImageFromVolumeSliceFilter.h:61
Subtract2DImageFromVolumeSliceFilter Self
Definition: itkSubtract2DImageFromVolumeSliceFilter.h:37
Image< IntensityType, 3 > InputProjectionVolumeType
Definition: itkSubtract2DImageFromVolumeSliceFilter.h:58
InputProjectionVolumeType::RegionType InputProjectionVolumeRegionType
Definition: itkSubtract2DImageFromVolumeSliceFilter.h:60