RTK  2.7.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  * https://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 {
138 template <typename VolumeSeriesType, typename ProjectionStackType>
140  : public rtk::FourDROOSTERConeBeamReconstructionFilter<VolumeSeriesType, ProjectionStackType>
141 {
142 public:
144 
149  using VolumeType = ProjectionStackType;
151  itk::CovariantVector<typename VolumeSeriesType::ValueType, VolumeSeriesType::ImageDimension - 1>;
154 
155  using ForwardProjectionType = typename Superclass::ForwardProjectionType;
156  using BackProjectionType = typename Superclass::BackProjectionType;
158  typename VolumeSeriesType::template RebindImageType<CovariantVectorForSpatialGradient,
159  VolumeSeriesType::ImageDimension>;
161  typename VolumeSeriesType::template RebindImageType<CovariantVectorForTemporalGradient,
162  VolumeSeriesType::ImageDimension>;
163  using DVFSequenceImageType =
164  typename VolumeSeriesType::template RebindImageType<DVFVectorType, VolumeSeriesType::ImageDimension>;
165  using DVFImageType =
166  typename VolumeSeriesType::template RebindImageType<DVFVectorType, VolumeSeriesType::ImageDimension - 1>;
167 
169  itkNewMacro(Self);
170 
172  itkOverrideGetNameOfClassMacro(MotionCompensatedFourDROOSTERConeBeamReconstructionFilter);
173 
176 
178  void
179  SetSignal(const std::vector<double> signal) override;
180 
181 protected:
184 
186  void
187  GenerateData() override;
188 
189  void
190  GenerateOutputInformation() override;
191 
192  void
193  GenerateInputRequestedRegion() override;
194 };
195 } // namespace rtk
196 
197 
198 #ifndef ITK_MANUAL_INSTANTIATION
199 # include "rtkMotionCompensatedFourDROOSTERConeBeamReconstructionFilter.hxx"
200 #endif
201 
202 #endif
typename VolumeSeriesType::template RebindImageType< CovariantVectorForTemporalGradient, VolumeSeriesType::ImageDimension > TemporalGradientImageType
Implements 4D RecOnstructiOn using Spatial and TEmporal Regularization (short 4D ROOSTER) ...
typename VolumeSeriesType::template RebindImageType< DVFVectorType, VolumeSeriesType::ImageDimension - 1 > DVFImageType
typename VolumeSeriesType::template RebindImageType< CovariantVectorForSpatialGradient, VolumeSeriesType::ImageDimension > SpatialGradientImageType
Implements Motion Compensated 4D RecOnstructiOn using Spatial and TEmporal Regularization (short MC-R...
typename VolumeSeriesType::template RebindImageType< DVFVectorType, VolumeSeriesType::ImageDimension > DVFSequenceImageType