RTK  1.4.0
Reconstruction Toolkit
rtkMotionCompensatedFourDROOSTERConeBeamReconstructionFilter.h
Go to the documentation of this file.
1 /*=========================================================================
2  *
3  * Copyright RTK Consortium
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 rtkMotionCompensatedFourDROOSTERConeBeamReconstructionFilter_h
19 #define rtkMotionCompensatedFourDROOSTERConeBeamReconstructionFilter_h
20 
23 
24 namespace rtk
25 {
129 template<typename VolumeSeriesType, typename ProjectionStackType>
131 {
132 public:
137  typedef ProjectionStackType VolumeType;
138  typedef itk::CovariantVector< typename VolumeSeriesType::ValueType, VolumeSeriesType::ImageDimension - 1> CovariantVectorForSpatialGradient;
140  typedef CovariantVectorForSpatialGradient DVFVectorType;
141 
144 
145 #ifdef RTK_USE_CUDA
146  typedef itk::CudaImage<CovariantVectorForSpatialGradient, VolumeSeriesType::ImageDimension> SpatialGradientImageType;
147  typedef itk::CudaImage<CovariantVectorForTemporalGradient, VolumeSeriesType::ImageDimension> TemporalGradientImageType;
148  typedef itk::CudaImage<DVFVectorType, VolumeSeriesType::ImageDimension> DVFSequenceImageType;
149  typedef itk::CudaImage<DVFVectorType, VolumeSeriesType::ImageDimension - 1> DVFImageType;
150 #else
154  typedef itk::Image<DVFVectorType, VolumeSeriesType::ImageDimension - 1> DVFImageType;
155 #endif
156 
158  itkNewMacro(Self)
159 
160 
162 
164  <VolumeSeriesType, ProjectionStackType> MotionCompensatedFourDCGFilterType;
165 
167  void SetForwardProjectionFilter(ForwardProjectionType itkNotUsed(fwtype)) ITK_OVERRIDE {itkExceptionMacro(<< "ForwardProjection cannot be changed");}
168  void SetBackProjectionFilter(BackProjectionType itkNotUsed(bptype)) ITK_OVERRIDE {itkExceptionMacro(<< "BackProjection cannot be changed");}
170 
172  void SetSignal(const std::vector<double> signal) ITK_OVERRIDE;
173 
174 protected:
177 
179  void GenerateData() ITK_OVERRIDE;
180 
181  void GenerateOutputInformation() ITK_OVERRIDE;
182 
183  void GenerateInputRequestedRegion() ITK_OVERRIDE;
184 
185 private:
186  MotionCompensatedFourDROOSTERConeBeamReconstructionFilter(const Self &); //purposely not implemented
187  void operator=(const Self &); //purposely not implemented
188 
189 };
190 } //namespace ITK
191 
192 
193 #ifndef ITK_MANUAL_INSTANTIATION
194 #include "rtkMotionCompensatedFourDROOSTERConeBeamReconstructionFilter.hxx"
195 #endif
196 
197 #endif
void SetSignal(const std::vector< double > signal) override
itk::Image< CovariantVectorForTemporalGradient, VolumeSeriesType::ImageDimension > TemporalGradientImageType
itk::Image< CovariantVectorForSpatialGradient, VolumeSeriesType::ImageDimension > SpatialGradientImageType
Implements 4D RecOnstructiOn using Spatial and TEmporal Regularization (short 4D ROOSTER) ...
itk::CovariantVector< typename VolumeSeriesType::ValueType, VolumeSeriesType::ImageDimension-1 > CovariantVectorForSpatialGradient
itk::CovariantVector< typename VolumeSeriesType::ValueType, 1 > CovariantVectorForTemporalGradient
rtk::FourDROOSTERConeBeamReconstructionFilter< VolumeSeriesType, ProjectionStackType > Superclass
Implements Motion Compensated 4D RecOnstructiOn using Spatial and TEmporal Regularization (short MC-R...