go home Home | Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Data Structures | File List | Namespace Members | Data Fields | Globals | Related Pages
itkGPUResampleImageFilter.h
Go to the documentation of this file.
1 /*=========================================================================
2  *
3  * Copyright UMC Utrecht and contributors
4  *
5  * Licensed under the Apache License, Version 2.0 (the "License");
6  * you may not use this file except in compliance with the License.
7  * You may obtain a copy of the License at
8  *
9  * http://www.apache.org/licenses/LICENSE-2.0.txt
10  *
11  * Unless required by applicable law or agreed to in writing, software
12  * distributed under the License is distributed on an "AS IS" BASIS,
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  * See the License for the specific language governing permissions and
15  * limitations under the License.
16  *
17  *=========================================================================*/
18 #ifndef __itkGPUResampleImageFilter_h
19 #define __itkGPUResampleImageFilter_h
20 
21 #include "itkResampleImageFilter.h"
22 
27 #include "itkGPUTransformBase.h"
29 
30 namespace itk
31 {
33 itkGPUKernelClassMacro( GPUResampleImageFilterKernel );
34 
46 template< typename TInputImage, typename TOutputImage, typename TInterpolatorPrecisionType = float >
47 class ITK_EXPORT GPUResampleImageFilter :
48  public GPUImageToImageFilter< TInputImage, TOutputImage,
49  ResampleImageFilter< TInputImage, TOutputImage, TInterpolatorPrecisionType > >
50 {
51 public:
52 
55  typedef ResampleImageFilter<
56  TInputImage, TOutputImage, TInterpolatorPrecisionType > CPUSuperclass;
57  typedef GPUImageToImageFilter<
58  TInputImage, TOutputImage, CPUSuperclass > GPUSuperclass;
60  typedef SmartPointer< const Self > ConstPointer;
61 
63  itkNewMacro( Self );
64 
67 
69  itkStaticConstMacro( InputImageDimension, unsigned int,
70  TInputImage::ImageDimension );
71  itkStaticConstMacro( OutputImageDimension, unsigned int,
72  TOutputImage::ImageDimension );
73 
75  typedef TInputImage InputImageType;
76  typedef TOutputImage OutputImageType;
79  typedef TInterpolatorPrecisionType InterpolatorPrecisionType;
80 
82  typedef typename CPUSuperclass::InterpolatorType InterpolatorType;
83  typedef typename CPUSuperclass::TransformType TransformType;
84  typedef typename CPUSuperclass::ExtrapolatorType ExtrapolatorType;
85  typedef typename CPUSuperclass::InputImageRegionType InputImageRegionType;
86  typedef typename CPUSuperclass::OutputImageRegionType OutputImageRegionType;
87  typedef typename CPUSuperclass::SizeType SizeType;
88  typedef typename CPUSuperclass::IndexType IndexType;
89 
91 
97 
104 
106  typedef GPUBSplineBaseTransform<
108 
110  virtual void SetInterpolator( InterpolatorType * _arg );
111 
113  virtual void SetExtrapolator( ExtrapolatorType * _arg );
114 
116  virtual void SetTransform( const TransformType * _arg );
117 
120  itkSetMacro( RequestedNumberOfSplits, unsigned int );
121  itkGetConstMacro( RequestedNumberOfSplits, unsigned int );
122 
123 protected:
124 
127  virtual void PrintSelf( std::ostream & os, Indent indent ) const ITK_OVERRIDE;
128 
129  virtual void GPUGenerateData( void );
130 
131  // Supported GPU transform types
132  typedef enum {
137  Else
138  } GPUTransformTypeEnum;
139 
142  const typename GPUOutputImage::Pointer & output );
143 
146  const typename GPUInputImage::Pointer & input,
147  const typename GPUOutputImage::Pointer & output );
148 
151  const std::size_t transformIndex );
152 
155  const typename GPUInputImage::Pointer & input,
156  const typename GPUOutputImage::Pointer & output );
157 
160  const std::size_t transformIndex );
161 
163  const GPUTransformTypeEnum GetTransformType( const int & transformIndex ) const;
164 
166  bool HasTransform( const GPUTransformTypeEnum type ) const;
167 
169  int GetTransformHandle( const GPUTransformTypeEnum type ) const;
170 
173  const std::size_t & index, std::size_t & kernelId ) const;
174 
177  const std::size_t transformIndex );
178 
179 private:
180 
181  GPUResampleImageFilter( const Self & ); // purposely not implemented
182  void operator=( const Self & ); // purposely not implemented
183 
186 
192 
193  typedef std::pair< int, bool > TransformHandle;
194  typedef std::map< GPUTransformTypeEnum, TransformHandle > TransformsHandle;
195 
196 #if 0
197  class TransformKernelHelper
198  {
199  GPUTransformTypeEnum m_TransformType;
200  std::string m_TransformTypeAsString;
201  std::: size_t m_TransformKernelHandle;
202  bool m_Compiled;
203  TransformKernelHelper()
204  {
205  m_TransformType = GPUResampleImageFilter::Else;
206  m_TransformTypeAsString = "Else";
207  m_TransformKernelHandle = 0; // ??
208  m_Compiled = false;
209  }
210 
211 
212  };
213 
214  std::vector< TransformKernelHelper > m_SupportedTransformKernels;
215 #endif
216 
217  std::vector< std::string > m_Sources;
218  std::size_t m_SourceIndex;
219 
222 
225 
229 
230  // GPU kernel managers
234 };
235 
236 } // end namespace itk
237 
238 #ifndef ITK_MANUAL_INSTANTIATION
239 #include "itkGPUResampleImageFilter.hxx"
240 #endif
241 
242 #endif /* __itkGPUResampleImageFilter_h */
itk::GPUResampleImageFilter::m_Sources
std::vector< std::string > m_Sources
Definition: itkGPUResampleImageFilter.h:217
itk::GPUResampleImageFilter::GPUResampleImageFilter
GPUResampleImageFilter(const Self &)
itk::GPUResampleImageFilter::GetGPUBSplineBaseTransform
GPUBSplineBaseTransformType * GetGPUBSplineBaseTransform(const std::vcl_size_t transformIndex)
itk::GPUResampleImageFilter::m_FilterParameters
GPUDataManagerPointer m_FilterParameters
Definition: itkGPUResampleImageFilter.h:189
itk::GPUResampleImageFilter::HasTransform
bool HasTransform(const GPUTransformTypeEnum type) const
itk::GPUResampleImageFilter::Self
GPUResampleImageFilter Self
Definition: itkGPUResampleImageFilter.h:54
itk::GPUResampleImageFilter::GPUBSplineBaseTransformType
GPUBSplineBaseTransform< InterpolatorPrecisionType, InputImageDimension > GPUBSplineBaseTransformType
Definition: itkGPUResampleImageFilter.h:107
itk::GPUResampleImageFilter::m_InputGPUImageBase
GPUDataManagerPointer m_InputGPUImageBase
Definition: itkGPUResampleImageFilter.h:187
itk::GPUResampleImageFilter::SetInterpolator
virtual void SetInterpolator(InterpolatorType *_arg)
itk::GPUResampleImageFilter::SetExtrapolator
virtual void SetExtrapolator(ExtrapolatorType *_arg)
itkGPUTransformBase.h
itk::GPUResampleImageFilter::itkStaticConstMacro
itkStaticConstMacro(OutputImageDimension, unsigned int, TOutputImage::ImageDimension)
itk::GPUResampleImageFilter::InputImageRegionType
CPUSuperclass::InputImageRegionType InputImageRegionType
Definition: itkGPUResampleImageFilter.h:85
itk::GPUResampleImageFilter::GPUTransformTypeEnum
GPUTransformTypeEnum
Definition: itkGPUResampleImageFilter.h:132
itk::GPUImage
Templated n-dimensional image class for the GPU.
Definition: itkGPUImage.h:64
itk::GPUResampleImageFilter::ExtrapolatorType
CPUSuperclass::ExtrapolatorType ExtrapolatorType
Definition: itkGPUResampleImageFilter.h:84
SmartPointer< Self >
itk::GPUResampleImageFilter::m_InterpolatorBase
GPUInterpolatorBase * m_InterpolatorBase
Definition: itkGPUResampleImageFilter.h:184
itk::GPUResampleImageFilter::m_DeformationFieldBuffer
GPUDataManagerPointer m_DeformationFieldBuffer
Definition: itkGPUResampleImageFilter.h:190
itk::GPUResampleImageFilter::SetArgumentsForPreKernelManager
void SetArgumentsForPreKernelManager(const typename GPUOutputImage::Pointer &output)
itk::GPUResampleImageFilter::InterpolatorPrecisionType
TInterpolatorPrecisionType InterpolatorPrecisionType
Definition: itkGPUResampleImageFilter.h:79
itk::GPUResampleImageFilter::ConstPointer
SmartPointer< const Self > ConstPointer
Definition: itkGPUResampleImageFilter.h:60
itk::GPUResampleImageFilter::GPUInputImage
GPUTraits< TInputImage >::Type GPUInputImage
Definition: itkGPUResampleImageFilter.h:77
itk::GPUResampleImageFilter::GPUDataManagerPointer
GPUDataManager::Pointer GPUDataManagerPointer
Definition: itkGPUResampleImageFilter.h:94
IdentityTransform
itk::GPUResampleImageFilter::InputImageType
TInputImage InputImageType
Definition: itkGPUResampleImageFilter.h:75
itk::GPUResampleImageFilter::SetBSplineTransformCoefficientsToGPU
void SetBSplineTransformCoefficientsToGPU(const std::vcl_size_t transformIndex)
itk::GPUResampleImageFilter::MatrixOffsetTransform
@ MatrixOffsetTransform
Definition: itkGPUResampleImageFilter.h:134
itk::GPUResampleImageFilter::m_RequestedNumberOfSplits
unsigned int m_RequestedNumberOfSplits
Definition: itkGPUResampleImageFilter.h:191
itk::GPUResampleImageFilter::InterpolatorType
CPUSuperclass::InterpolatorType InterpolatorType
Definition: itkGPUResampleImageFilter.h:82
itk::GPUResampleImageFilter::m_PreKernelManager
GPUKernelManagerPointer m_PreKernelManager
Definition: itkGPUResampleImageFilter.h:231
itk::GPUResampleImageFilter::GetTransformHandle
int GetTransformHandle(const GPUTransformTypeEnum type) const
itk::GPUResampleImageFilter
GPU version of ResampleImageFilter.
Definition: itkGPUResampleImageFilter.h:50
itk::GPUResampleImageFilter::GetKernelIdFromTransformId
bool GetKernelIdFromTransformId(const std::vcl_size_t &index, std::vcl_size_t &kernelId) const
itk::GPUResampleImageFilter::m_TransformSourceLoadedIndex
std::vcl_size_t m_TransformSourceLoadedIndex
Definition: itkGPUResampleImageFilter.h:221
itk::GPUResampleImageFilter::BSplineTransform
@ BSplineTransform
Definition: itkGPUResampleImageFilter.h:136
itk::GPUResampleImageFilter::SizeType
CPUSuperclass::SizeType SizeType
Definition: itkGPUResampleImageFilter.h:87
itk::GPUResampleImageFilter::Pointer
SmartPointer< Self > Pointer
Definition: itkGPUResampleImageFilter.h:59
itk::GPUResampleImageFilter::GPUKernelManagerPointer
OpenCLKernelManager::Pointer GPUKernelManagerPointer
Definition: itkGPUResampleImageFilter.h:93
itk::GPUResampleImageFilter::TranslationTransform
@ TranslationTransform
Definition: itkGPUResampleImageFilter.h:135
itk::GPUResampleImageFilter::GPUOutputImage
GPUTraits< TOutputImage >::Type GPUOutputImage
Definition: itkGPUResampleImageFilter.h:78
itk::GPUResampleImageFilter::TransformsHandle
std::map< GPUTransformTypeEnum, TransformHandle > TransformsHandle
Definition: itkGPUResampleImageFilter.h:194
itk::GPUResampleImageFilter::TransformHandle
std::pair< int, bool > TransformHandle
Definition: itkGPUResampleImageFilter.h:193
itk::GPUBSplineInterpolateImageFunction
GPU version of BSplineInterpolateImageFunction.
Definition: itkGPUBSplineInterpolateImageFunction.h:49
itk::GPUResampleImageFilter::SetArgumentsForPostKernelManager
void SetArgumentsForPostKernelManager(const typename GPUInputImage::Pointer &input, const typename GPUOutputImage::Pointer &output)
itkGPUImageToImageFilter.h
itk::GPUResampleImageFilter::Else
@ Else
Definition: itkGPUResampleImageFilter.h:137
itk::GPUInterpolatorBase
Base class fro all GPU interpolators.
Definition: itkGPUInterpolatorBase.h:37
itk::GPUResampleImageFilter::GetTransformType
const GPUTransformTypeEnum GetTransformType(const int &transformIndex) const
itk::GPUResampleImageFilter::GPUResampleImageFilter
GPUResampleImageFilter()
itk::itkGPUKernelClassMacro
itkGPUKernelClassMacro(GPUBSplineTransformKernel)
itk::GPUResampleImageFilter::OutputImagePixelType
GPUSuperclass::OutputImagePixelType OutputImagePixelType
Definition: itkGPUResampleImageFilter.h:90
itk::GPUResampleImageFilter::CPUSuperclass
ResampleImageFilter< TInputImage, TOutputImage, TInterpolatorPrecisionType > CPUSuperclass
Definition: itkGPUResampleImageFilter.h:56
itk::GPUBSplineBaseTransform
GPU base class for the BSplineTransform.
Definition: itkGPUBSplineBaseTransform.h:43
itk::GPUResampleImageFilter::PrintSelf
virtual void PrintSelf(std::ostream &os, Indent indent) const ITK_OVERRIDE
itk::GPUResampleImageFilter::m_InterpolatorSourceLoadedIndex
std::vcl_size_t m_InterpolatorSourceLoadedIndex
Definition: itkGPUResampleImageFilter.h:220
itk::GPUResampleImageFilter::m_LoopKernelManager
GPUKernelManagerPointer m_LoopKernelManager
Definition: itkGPUResampleImageFilter.h:232
itk::GPUResampleImageFilter::IndexType
CPUSuperclass::IndexType IndexType
Definition: itkGPUResampleImageFilter.h:88
itkGPUBSplineBaseTransform.h
itk::GPUResampleImageFilter::m_FilterLoopGPUKernelHandle
TransformsHandle m_FilterLoopGPUKernelHandle
Definition: itkGPUResampleImageFilter.h:227
itk::GPUResampleImageFilter::OutputImageType
TOutputImage OutputImageType
Definition: itkGPUResampleImageFilter.h:76
itkGPUCompositeTransformBase.h
itk::GPUResampleImageFilter::SetArgumentsForLoopKernelManager
void SetArgumentsForLoopKernelManager(const typename GPUInputImage::Pointer &input, const typename GPUOutputImage::Pointer &output)
itk::GPUImageToImageFilter
class to abstract the behaviour of the GPU filters.
Definition: itkGPUImageToImageFilter.h:65
itk::GPUResampleImageFilter::GPUBSplineInterpolatorDataManagerPointer
GPUBSplineInterpolatorType::GPUDataManagerPointer GPUBSplineInterpolatorDataManagerPointer
Definition: itkGPUResampleImageFilter.h:103
itk::GPUResampleImageFilter::GPUBSplineInterpolatorType
GPUBSplineInterpolateImageFunction< InputImageType, InterpolatorPrecisionType > GPUBSplineInterpolatorType
Definition: itkGPUResampleImageFilter.h:100
itk::GPUResampleImageFilter::m_TransformBase
GPUTransformBase * m_TransformBase
Definition: itkGPUResampleImageFilter.h:185
itk::GPUCompositeTransformBase
Definition: itkGPUCompositeTransformBase.h:39
itk::GPUResampleImageFilter::m_OutputGPUImageBase
GPUDataManagerPointer m_OutputGPUImageBase
Definition: itkGPUResampleImageFilter.h:188
itk::GPUResampleImageFilter::TransformType
CPUSuperclass::TransformType TransformType
Definition: itkGPUResampleImageFilter.h:83
itk::GPUResampleImageFilter::m_InterpolatorIsBSpline
bool m_InterpolatorIsBSpline
Definition: itkGPUResampleImageFilter.h:223
itk::GPUResampleImageFilter::m_PostKernelManager
GPUKernelManagerPointer m_PostKernelManager
Definition: itkGPUResampleImageFilter.h:233
itk::GPUResampleImageFilter::GPUBSplineInterpolatorCoefficientImagePointer
GPUBSplineInterpolatorType::GPUCoefficientImagePointer GPUBSplineInterpolatorCoefficientImagePointer
Definition: itkGPUResampleImageFilter.h:102
itk::GPUResampleImageFilter::~GPUResampleImageFilter
~GPUResampleImageFilter()
Definition: itkGPUResampleImageFilter.h:126
itk::GPUResampleImageFilter::operator=
void operator=(const Self &)
itk::GPUResampleImageFilter::GPUGenerateData
virtual void GPUGenerateData(void)
itkGPUBSplineInterpolateImageFunction.h
itk
Definition: itkAdvancedImageToImageMetric.h:40
itk::GPUResampleImageFilter::itkStaticConstMacro
itkStaticConstMacro(InputImageDimension, unsigned int, TInputImage::ImageDimension)
itk::GPUResampleImageFilter::SetTransform
virtual void SetTransform(const TransformType *_arg)
itkGPUInterpolateImageFunction.h
itk::GPUResampleImageFilter::GPUSuperclass
GPUImageToImageFilter< TInputImage, TOutputImage, CPUSuperclass > GPUSuperclass
Definition: itkGPUResampleImageFilter.h:58
itk::GPUTraits::Type
T Type
Definition: itkGPUImage.h:247
itk::GPUResampleImageFilter::SetTransformParametersForLoopKernelManager
void SetTransformParametersForLoopKernelManager(const std::vcl_size_t transformIndex)
itk::GPUTransformBase
Base class for all GPU transforms.
Definition: itkGPUTransformBase.h:37
itk::GPUResampleImageFilter::m_TransformIsCombo
bool m_TransformIsCombo
Definition: itkGPUResampleImageFilter.h:224
itk::GPUResampleImageFilter::CompositeTransformBaseType
GPUCompositeTransformBase< InterpolatorPrecisionType, InputImageDimension > CompositeTransformBaseType
Definition: itkGPUResampleImageFilter.h:96
itk::GPUResampleImageFilter::OutputImageRegionType
CPUSuperclass::OutputImageRegionType OutputImageRegionType
Definition: itkGPUResampleImageFilter.h:86
itk::GPUResampleImageFilter::m_SourceIndex
std::vcl_size_t m_SourceIndex
Definition: itkGPUResampleImageFilter.h:218
itk::GPUResampleImageFilter::m_FilterPreGPUKernelHandle
std::vcl_size_t m_FilterPreGPUKernelHandle
Definition: itkGPUResampleImageFilter.h:226
itk::GPUResampleImageFilter::m_FilterPostGPUKernelHandle
std::vcl_size_t m_FilterPostGPUKernelHandle
Definition: itkGPUResampleImageFilter.h:228
itk::GPUResampleImageFilter::GPUBSplineInterpolatorCoefficientImageType
GPUBSplineInterpolatorType::GPUCoefficientImageType GPUBSplineInterpolatorCoefficientImageType
Definition: itkGPUResampleImageFilter.h:101
itk::GPUImageToImageFilter::OutputImagePixelType
Superclass::OutputImagePixelType OutputImagePixelType
Definition: itkGPUImageToImageFilter.h:83


Generated on OURCE_DATE_EPOCH for elastix by doxygen 1.8.18 elastix logo