NifTK  16.4.1 - 0798f20
CMIC's Translational Medical Imaging Platform
itkSliceBySliceImageFilterPatched.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Insight Segmentation & Registration Toolkit
4  Module: itkSliceBySliceImageFilter.h
5  Language: C++
6  Date: $Date: 2012-10-31 15:16:00 +0000 (Wed, 31 Oct 2012) $
7  Version: $Revision: 9613 $
8 
9  Copyright (c) Insight Software Consortium. All rights reserved.
10  See ITKCopyright.txt or http://www.itk.org/HTML/Copyright.htm for details.
11 
12  This software is distributed WITHOUT ANY WARRANTY; without even
13  the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
14  PURPOSE. See the above copyright notices for more information.
15 
16 =========================================================================*/
17 
18 #ifndef itkSliceBySliceImageFilterPatched_h
19 #define itkSliceBySliceImageFilterPatched_h
20 
21 #include <itkImageToImageFilter.h>
22 
23 
24 namespace itk {
25 
72 template<class TInputImage,
73  class TOutputImage,
74  class TInputFilter=ImageToImageFilter<
75  Image< typename TInputImage::PixelType, TInputImage::ImageDimension - 1 >,
76  Image< typename TOutputImage::PixelType, TOutputImage::ImageDimension - 1 > >,
77  class TOutputFilter=typename TInputFilter::Superclass,
78  class TInternalInputImage=typename TInputFilter::InputImageType,
79  class TInternalOutputImage=typename TOutputFilter::OutputImageType >
80 class ITK_EXPORT SliceBySliceImageFilter :
81 public ImageToImageFilter<TInputImage, TOutputImage>
82 {
83 public:
86  typedef ImageToImageFilter<TInputImage,TOutputImage> Superclass;
87  typedef SmartPointer<Self> Pointer;
88  typedef SmartPointer<const Self> ConstPointer;
89 
91  typedef typename Superclass::InputImagePointer InputImagePointer;
92 
94  itkNewMacro(Self);
95 
97  itkTypeMacro(SliceBySliceImageFilter, ImageToImageFilter);
98 
100  typedef TInputImage InputImageType;
102  typedef typename TInputImage::SizeType SizeType;
104  typedef typename TInputImage::PixelType PixelType;
105  typedef typename TInputImage::OffsetType OffsetType;
106 
107  typedef TOutputImage OutputImageType;
108  typedef typename TOutputImage::PixelType OutputPixelType;
109 
110  typedef TInputFilter InputFilterType;
111  typedef TOutputFilter OutputFilterType;
112 
113  typedef TInternalInputImage InternalInputImageType;
117  typedef typename InternalInputImageType::OffsetType InternalOffsetType;
119 
120  typedef TInternalOutputImage InternalOutputImageType;
122 
124  itkStaticConstMacro(ImageDimension, unsigned int,
125  TInputImage::ImageDimension);
126 
127  itkStaticConstMacro(InternalImageDimension, unsigned int,
128  InternalInputImageType::ImageDimension);
129 
130  itkSetMacro(Dimension, unsigned int);
131  itkGetConstMacro(Dimension, unsigned int);
132 
133  void SetFilter(InputFilterType * filter);
134  InputFilterType * GetFilter()
135  {
136  return this->m_InputFilter;
137  }
138 
139  const InputFilterType * GetFilter() const
140  {
141  return this->m_InputFilter;
142  }
143 
144  void SetInputFilter( InputFilterType * filter );
145  itkGetObjectMacro( InputFilter, InputFilterType );
146 
147  void SetOutputFilter( OutputFilterType * filter );
148  itkGetObjectMacro( OutputFilter, OutputFilterType );
149 
154  itkGetConstMacro(SliceIndex, long);
155 
156 protected:
159 
160  void GenerateData();
161 
162  void PrintSelf(std::ostream& os, Indent indent) const;
163 
164  void GenerateInputRequestedRegion();
165  void EnlargeOutputRequestedRegion(DataObject *itkNotUsed(output));
166 
167 private:
168  SliceBySliceImageFilter(const Self&); //purposely not implemented
169  void operator=(const Self&); //purposely not implemented
170 
171  unsigned int m_Dimension;
172  typename InputFilterType::Pointer m_InputFilter;
173  typename OutputFilterType::Pointer m_OutputFilter;
174  long m_SliceIndex;
175 };
176 
177 }
178 
179 #ifndef ITK_MANUAL_INSTANTIATION
180 #include <itkSliceBySliceImageFilterPatched.txx>
181 #endif
182 
183 #endif
TInputImage::PixelType PixelType
Definition: itkSliceBySliceImageFilterPatched.h:104
ImageToImageFilter< TInputImage, TOutputImage > Superclass
Definition: itkSliceBySliceImageFilterPatched.h:86
ImageType::SizeType SizeType
Definition: niftkMakeLapUSProbeBasicModel.cxx:31
InternalOutputImageType::PixelType InternalOutputPixelType
Definition: itkSliceBySliceImageFilterPatched.h:121
~SliceBySliceImageFilter()
Definition: itkSliceBySliceImageFilterPatched.h:158
TInternalInputImage InternalInputImageType
Definition: itkSliceBySliceImageFilterPatched.h:113
TOutputFilter OutputFilterType
Definition: itkSliceBySliceImageFilterPatched.h:111
SmartPointer< Self > Pointer
Definition: itkSliceBySliceImageFilterPatched.h:87
Definition: niftkITKAffineResampleImage.cxx:74
ImageType::IndexType IndexType
Definition: niftkMakeLapUSProbeBasicModel.cxx:32
Apply a filter or a pipeline slice by slice on an image.
Definition: itkSliceBySliceImageFilterPatched.h:80
InternalInputImageType::RegionType InternalRegionType
Definition: itkSliceBySliceImageFilterPatched.h:114
TInputImage::SizeType SizeType
Definition: itkSliceBySliceImageFilterPatched.h:102
TInputFilter InputFilterType
Definition: itkSliceBySliceImageFilterPatched.h:110
TInputImage::RegionType RegionType
Definition: itkSliceBySliceImageFilterPatched.h:101
Superclass::InputImagePointer InputImagePointer
Definition: itkSliceBySliceImageFilterPatched.h:91
TInputImage InputImageType
Definition: itkSliceBySliceImageFilterPatched.h:97
InternalInputImageType::IndexType InternalIndexType
Definition: itkSliceBySliceImageFilterPatched.h:116
float PixelType
Definition: niftkBreastDCEandADC.cxx:88
ImageType::RegionType RegionType
Definition: niftkMakeLapUSProbeBasicModel.cxx:30
TOutputImage::PixelType OutputPixelType
Definition: itkSliceBySliceImageFilterPatched.h:108
TOutputImage OutputImageType
Definition: itkSliceBySliceImageFilterPatched.h:107
SmartPointer< const Self > ConstPointer
Definition: itkSliceBySliceImageFilterPatched.h:88
SliceBySliceImageFilter Self
Definition: itkSliceBySliceImageFilterPatched.h:85
TInternalOutputImage InternalOutputImageType
Definition: itkSliceBySliceImageFilterPatched.h:120
const InputFilterType * GetFilter() const
Definition: itkSliceBySliceImageFilterPatched.h:139
InputFilterType * GetFilter()
Definition: itkSliceBySliceImageFilterPatched.h:134
InternalInputImageType::OffsetType InternalOffsetType
Definition: itkSliceBySliceImageFilterPatched.h:117
GLint GLint GLint GLint GLint GLint GLint GLbitfield GLenum filter
Definition: glew.h:3751
Simultaneous itk::Image and itk::Array (and hence vnl_vector) class.
const unsigned int Dimension
Definition: niftkBreastDCEandADC.cxx:89
TInputImage::OffsetType OffsetType
Definition: itkSliceBySliceImageFilterPatched.h:105
TInputImage::IndexType IndexType
Definition: itkSliceBySliceImageFilterPatched.h:103
InternalInputImageType::SizeType InternalSizeType
Definition: itkSliceBySliceImageFilterPatched.h:115
InternalInputImageType::PixelType InternalInputPixelType
Definition: itkSliceBySliceImageFilterPatched.h:118